gifts2017

Дерево реквизитов документа

Опубликовал Олег Пономаренко (O-Planet) в раздел Программирование - Практика программирования

Ничего навороченного. Просто формочка выбора реквизитов документа (и его т.ч.) с любого уровня вложенности.

Особенность этого дерева в том, что оно строится "на лету", т.е. при разворачивании ветки достраивается уровень. Таким образом, реализована защита от зацикливания, и достигнута скорость построения дерева документа любой сложности.

Обработку можно встраивать в свою конфигурацию и использовать в качестве диалога выбора.

Имеются рабочие реквизиты формы:

ВыбранныеРеквизиты - список полного пути к выбранному реквизиту

ИмяДокумента - строка с именем документа, по реквизитам которого строим дерево

МножественныйВыбор - признак (булево) возможности выбора нескольких строк одновременно

Ок - признак (булево), что не была нажата отмена

 

В общем случае, вызов обработки осуществляется таким образом:

ФормаВыбора=Обработки.ДеревоДокумента.ПолучитьФорму("Форма");
ФормаВыбора.ИмяДокумента="РеализацияТоваровУслуг";
ФормаВыбора.МножественныйВыбор=Истина;
ФормаВыбора.ОткрытьМодально();
Если ФормаВыбора.Ок Тогда
    Для Каждого Эл Из ФормаВыбора.ВыбранныеРеквизиты Цикл
        Сообщить(Эл.Значение);
    КонецЦикла;
КонецЕсли;

Желаю всем успехов!

Выкладываю доработанный вариант этой разработки от Александра Ершова. В его версии можно просматривать не только реквизиты документов, но и справочников, а также выбирать документ или справочник прямо на форме. Не забудьте поблагодарить Александра, поставив плюсик в его топике, где, кстати, имеется много полезного и интересного.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Дерево документа
.epf 10,63Kb
28.09.14
118
.epf 10,63Kb 118 Скачать
Дерево документа и справочника от А.Ершова
.1253624260 10,63Kb
28.09.14
48
.1253624260 10,63Kb 48 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. rasswet (rasswet) 26.08.09 09:25
расширение файла следует указывать.
2. rasswet (rasswet) 26.08.09 09:26
{Форма.Форма(10)}: Поле объекта не обнаружено (РеализацияТоваровУслуг)
ЗаполнитьДерево(Коряга,Метаданные.Документы[ИмяДокумента].Реквизиты);
в базе ЗУП.
3. Олег Пономаренко (O-Planet) 26.08.09 15:07
(2) Конечно! В ЗУП этого документа нету. Это ж тестовый пример. И в коде написано, что эту строчку при использовании нужно закомментировать. Ну, можно для ЗУП указать другой документ по умолчанию.
4. rasswet (rasswet) 26.08.09 15:18
(3) в код не посмотрел. Сорри.
5. Святослав Самсонов (Eriksson) 27.08.09 11:53
{Форма.Форма(68)}: Значение не является значением объектного типа (ПолноеИмя)
Стр=ВыбранныеРеквизиты.НайтиПоЗначению(ВыбраннаяСтрока[0].ПолноеИмя);

Возникает при щелчке.
6. Олег Пономаренко (O-Planet) 27.08.09 15:52
7. Олег Пономаренко (O-Planet) 22.09.09 17:00
Выкладываю доработанный вариант этой разработки от Александра Ершова. В его версии можно просматривать не только реквизиты документов но и справочников, а также выбирать документ или справочник прямо на форме. Не забудьте поблагодарить Александра, поставив плюсик в его топике, где, кстати, имеется много полезного и интересного.
8. alernik@mail.ru Александр Ершов (alexer) 22.09.09 18:17
(7) Спасибо на добром слове
9. Игорь Исхаков (Ish_2) 22.09.09 18:29
Олег , есть форма, в которой можно выбрать какие-то реквизиты .
Это хорошо . А зачем ? Что это дает пользователю ?
10. Олег Пономаренко (O-Planet) 22.09.09 18:57
(9) Пользователю - ничего. Это для программиста, чтобы велосипед не изобретать.
11. Игорь Исхаков (Ish_2) 22.09.09 19:03
Из описания совершенно непонятно для чего это нужно.
Вставить это в какую-то пользовательскую программу твою обработку невозможно.
Значит это обучающий пример для программиста , желающего узнать, как работать с деревом .
Может быть так и написать в описании ?
А то сижу , ломаю голову : Что ? Зачем ?
12. alernik@mail.ru Александр Ершов (alexer) 22.09.09 19:09
(11) я уже применил структуру дерева в обработке по выгрузке данных из v6 в v8, скоро выложу
13. Игорь Исхаков (Ish_2) 22.09.09 19:25
Я вторую обработку не смотрел . По скриншоту вроде функциональнее.
Пока я вижу только один пример применения обработки в пользовательской программе.
В настройках отчета в БП или УТ пользователю необходимо определить :
в каком виде он хочет видеть отображение элемента справочника в отчете.
Например : бухгалтеры часто просят выводить "Номенклатуру" как :
Код, Наименование,ЕдИзм.
Обработка - это сервис для набора этих самых реквизитов.
Я правильно понял ?
14. Олег Пономаренко (O-Planet) 22.09.09 21:15
(13) В любом месте, где нужно выбрать реквизиты дока или справочника. Я использую при настройке различных переносов.
15. Игорь Исхаков (Ish_2) 22.09.09 22:25
(14) Чего только люди не придумают , лишь бы КД не изучать.
Сам такой. Понимаю.
16. Эстер Коган (e.kogan) 26.11.09 22:49
С большим удовольствием вклеила в одну из своих разработок. Спасибо. Легкопортируемая штука.
17. Олег Пономаренко (O-Planet) 26.11.09 23:02
Завсегда пожалуйста хорошим людям )
18. Станислав Викторович (mailwood) 11.03.12 16:46
Реквизит СпрДок сделал типом ПланВидовХарактеристик, тогда в обработке заменяем СпрДок на СпрДок.ТипЗначения. В плане видов характеристик выставляю: "Поступление товаров и услуг" Тип "ДокументСсылка.ПоступлениеТоваровИУслуг" и так далее. Удобство значительно увеличивается.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа