Отборы на форме "Задачи мне" для бесшовной интеграции с документооборотом


В данной публикации я хочу поделиться расширением, которое позволяет наложить отборы на дерево задач в форме «Задачи мне».

Для наложения отборов используется простой рекурсивный обход дерева значений, если строки не попадают в условия отбора они просто удаляются из дерева. В основной конфигурации дерево задач заполняет процедура "ЗаполнитьСписокЗадач" модуля формы "Задачи мне". В расширении после данной процедуры я вызываю рекурсивный обход дерева значений в котором удаляются ненужные строки.

 

 

 Код процедуры пп_ЗаполнитьСписокЗадач из расширения

&После("ЗаполнитьСписокЗадач")
Процедура пп_ЗаполнитьСписокЗадач(ЗадачиXDTO)

пп_ИнициализироватьОтборыИСортировкиЗадач(Задачи.ПолучитьЭлементы());

КонецПроцедуры

 

 

 Код процедуры "пп_ИнициализироватьОтборыИСортировкиЗадач" из расширения

&НаСервере
Процедура пп_ИнициализироватьОтборыИСортировкиЗадач(Строки)

ВсегоСтрок = Строки.Количество();

Для Счетчик = 0 По ВсегоСтрок - 1 Цикл

ТекСтр = Строки[ВсегоСтрок - Счетчик - 1];

пп_ИнициализироватьОтборыИСортировкиЗадач(ТекСтр.ПолучитьЭлементы());

Если (СтрНайти(НРег(ТекСтр.Задача),НРег(пп_ОтборЗадача)) = 0 И пп_ОтборЗадачаИспользование) ИЛИ
(СтрНайти(НРег(ТекСтр.Автор),НРег(пп_ОтборАвтор)) = 0 И пп_ОтборАвторИспользование) ИЛИ
(Не (ТекСтр.СрокИсполнения >= пп_ОтборСрок.ДатаНачала И пп_ОтборСрок.ДатаОкончания >= ТекСтр.СрокИсполнения) И пп_ОтборСрокИспользование) ИЛИ
(Не (ТекСтр.Записана >= пп_ОтборСоздана.ДатаНачала И пп_ОтборСоздана.ДатаОкончания >= ТекСтр.Записана) И пп_ОтборСозданаИспользование) Тогда

Если ТекСтр.Группировка Тогда

Продолжить;

Иначе

Строки.Удалить(ТекСтр);

КонецЕсли;

КонецЕсли;

КонецЦикла;

КонецПроцедуры

 

 

Отборы и сортировки интерактивно добавлены на форму как новые реквизиты формы из расширения:

Данное расширение тестировалось в конфигурации ERP 2.4.10.56.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *