Vladislav_k0ncept f16c003f46 Initial commit
2025-02-20 15:05:58 +00:00

39 lines
2.4 KiB
Plaintext

импорт Основное
импорт Пресейл
@Обработчик
метод ВычислитьРазрешенияДоступа(): Массив<РазрешениеДоступа>
возврат [ПользователиКлиентИСервер.ПолныеПраваНаСправочникДляАутентифицированных()]
;
@Обработчик
метод ВычислитьРазрешенияДоступаДляОбъектов(Объекты: ЧитаемыйМассив<События.ДанныеРасчетаРазрешений>): ЧитаемоеСоответствие<События.ДанныеРасчетаРазрешений, ЧитаемаяКоллекция<РазрешениеДоступа>>
знч СделкиСобытий = Объекты
.Фильтровать(Объект -> Объект.Владелец != Неопределено)
.Преобразовать(Объект -> Объект.Владелец!)
знч РегионыСделок = Сделки.ПолучитьРегионыСделок(СделкиСобытий)
знч Результат = <События.ДанныеРасчетаРазрешений, Массив<РазрешениеДоступа>>{:}
для Объект из Объекты
знч Разрешения = <РазрешениеДоступа>[]
Разрешения.Добавить(ПользователиКлиентИСервер.ПолныеПраваНаСправочникДляРуководителя())
знч Регион = РегионыСделок.ПолучитьИлиУмолчание(Объект.Владелец)
если Регион != Неопределено
Разрешения.Добавить(
новый РазрешениеДоступа(
[новый КлючДоступаМенеджера.Объект(Владелец = Регион)],
[Сущность.Право.Создание, Сущность.Право.Чтение, Сущность.Право.Изменение, Сущность.Право.Удаление])
)
;
Результат.Вставить(Объект, Разрешения)
;
возврат Результат
;