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

81 lines
4.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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