Продвинутый курс. Домашнее задание №7

Второе задание по 1-му блоку продвинутого курса.

Для выполнения рекомендуется изучить следующие главы 1-го курса.
Глава 2. Обработчики событий.
Глава 3. Объектные типы данных.
Глава 4. Критерий отбора.
Глава 5. Команды.

В этой же теме необходимо написать отчет о выполнении задания.

К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь. Если Вы оплачивали курс, у Вас активирован токен доступа, Вы залогинены, но Вы видите эту запись — напишите нам на e-mail поддержки.

комментария 53 на “Продвинутый курс. Домашнее задание №7”

  1. Верховцев Николай 30.01.2013 в 20:19

    сделал обработку, на форму который вынес Дерево значений, общая команда открывает ее

    форму с передачей параметра – ссылки документа. Дерево строю рекурсией, правда у

    меня вызывает сомнение насчет производительности, так как запрос в цикле получается.

    Заполнение документов тоже сделал, а из-за разворота пришлось весь алгоритм

    переписывать, так как видите ли он разворачивается только на клиенте…

    &НаКлиенте
    Процедура ВывестиТекущийДокументИЕгоВетки()

    НоваяСтрока = ДеревоСтруктуры.ПолучитьЭлементы().Добавить();

    НоваяСтрока.ДокументДерева = Объект.Документ;
    ВывестиВетки(НоваяСтрока, Объект.Документ);

    Элементы.ДеревоСтруктуры.Развернуть(НоваяСтрока.ПолучитьИдентификатор(),

    Истина);

    КонецПроцедуры // ВывестиТекущийДокументИЕгоВетки()

    &НаКлиенте
    Процедура ВывестиВетки(ВеткаРодитель, Документ)

    МассивДокументов = ПолучитьМассивПодчиненныхДокументов(Документ);

    Для каждого ЭлементМассива Из МассивДокументов Цикл

    НоваяСтрока = ВеткаРодитель.ПолучитьЭлементы().Добавить();
    НоваяСтрока.ДокументДерева = ЭлементМассива;

    ВывестиВетки(НоваяСтрока, ЭлементМассива);

    КонецЦикла;

    КонецПроцедуры // ВывестиВетку()

    &НаСервереБезКонтекста
    Функция ПолучитьМассивПодчиненныхДокументов(Документ)

    Запрос = Новый Запрос;
    Запрос.Текст =
    “ВЫБРАТЬ
    | СтруктураПодчиненности.Ссылка КАК ПодчиненныйДокумент
    |ИЗ
    | КритерийОтбора.СтруктураПодчиненности(&Документ) КАК

    СтруктураПодчиненности”;

    Запрос.УстановитьПараметр(“Документ”, Документ);

    Результат = Запрос.Выполнить();

    Возврат Результат.Выгрузить().ВыгрузитьКолонку(“ПодчиненныйДокумент”);

    КонецФункции // МассивПодчиненныхДокументов()

  2. Создал реквизит «ДокументОснование» в документах ПТУ и РТУ.
    Создал критерий отбора.

  3. Андрей Антипенко 31.01.2011 в 07:27

    Задание выполнил.
    Настроил ввод на основании у документов, добивал реквизит ДокументОснование заполняется в подписке.
    Для построения отчета по структуре подчиненности используется:общая форма, критерий отбора и рекурсивный вызов с защитой от зацикливания.

  4. V.Platonov 23.01.2011 в 12:42

    Сделал.
    Добавил в документы реквизит -ДокументОснование.
    Добавил критерий отбора и отчет. Но можно обойтись и без отчёта и формировать структуру подчиненных документов в форме критерия отборов.

  5. В документах создал реквизит документ-основание, рекурсией заполняю дерево значений для структуры подчиненности.