Element_Test_V2/Koncept/Testovoe/Пресейл/КонтактныеЛица.xbsl
Vladislav_k0ncept f16c003f46 Initial commit
2025-02-20 15:05:58 +00:00

41 lines
2.5 KiB
Plaintext

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