Продвинутый курс. Домашнее задание №7
Второе задание по 1-му блоку продвинутого курса.
Для выполнения рекомендуется изучить следующие главы 1-го курса.
Глава 2. Обработчики событий.
Глава 3. Объектные типы данных.
Глава 4. Критерий отбора.
Глава 5. Команды.
В этой же теме необходимо написать отчет о выполнении задания.
К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь. Если Вы оплачивали курс, у Вас активирован токен доступа, Вы залогинены, но Вы видите эту запись — напишите нам на e-mail поддержки.
сделал обработку, на форму который вынес Дерево значений, общая команда открывает ее
форму с передачей параметра – ссылки документа. Дерево строю рекурсией, правда у
меня вызывает сомнение насчет производительности, так как запрос в цикле получается.
Заполнение документов тоже сделал, а из-за разворота пришлось весь алгоритм
переписывать, так как видите ли он разворачивается только на клиенте…
&НаКлиенте
Процедура ВывестиТекущийДокументИЕгоВетки()
НоваяСтрока = ДеревоСтруктуры.ПолучитьЭлементы().Добавить();
НоваяСтрока.ДокументДерева = Объект.Документ;
ВывестиВетки(НоваяСтрока, Объект.Документ);
Элементы.ДеревоСтруктуры.Развернуть(НоваяСтрока.ПолучитьИдентификатор(),
Истина);
КонецПроцедуры // ВывестиТекущийДокументИЕгоВетки()
&НаКлиенте
Процедура ВывестиВетки(ВеткаРодитель, Документ)
МассивДокументов = ПолучитьМассивПодчиненныхДокументов(Документ);
Для каждого ЭлементМассива Из МассивДокументов Цикл
НоваяСтрока = ВеткаРодитель.ПолучитьЭлементы().Добавить();
НоваяСтрока.ДокументДерева = ЭлементМассива;
ВывестиВетки(НоваяСтрока, ЭлементМассива);
КонецЦикла;
КонецПроцедуры // ВывестиВетку()
&НаСервереБезКонтекста
Функция ПолучитьМассивПодчиненныхДокументов(Документ)
Запрос = Новый Запрос;
Запрос.Текст =
“ВЫБРАТЬ
| СтруктураПодчиненности.Ссылка КАК ПодчиненныйДокумент
|ИЗ
| КритерийОтбора.СтруктураПодчиненности(&Документ) КАК
СтруктураПодчиненности”;
Запрос.УстановитьПараметр(“Документ”, Документ);
Результат = Запрос.Выполнить();
Возврат Результат.Выгрузить().ВыгрузитьКолонку(“ПодчиненныйДокумент”);
КонецФункции // МассивПодчиненныхДокументов()
Создал реквизит «ДокументОснование» в документах ПТУ и РТУ.
Создал критерий отбора.
Задание выполнил.
Настроил ввод на основании у документов, добивал реквизит ДокументОснование заполняется в подписке.
Для построения отчета по структуре подчиненности используется:общая форма, критерий отбора и рекурсивный вызов с защитой от зацикливания.
Сделал.
Добавил в документы реквизит -ДокументОснование.
Добавил критерий отбора и отчет. Но можно обойтись и без отчёта и формировать структуру подчиненных документов в форме критерия отборов.
В документах создал реквизит документ-основание, рекурсией заполняю дерево значений для структуры подчиненности.