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