Динамический список в дерево значений

1. imbaZeratul 16 25.08.14 16:29 Сейчас в теме
Всем привет! Есть форма списка документа с произвольным запросом который выводит данные в динамический список, подскажите пожалуйста как можно вывести табличную часть документа в форму списка в виде дерева значений, чтобы была возможно раскрывать ветку только у тех документов у которых количество элементов в таб часте больше 1
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
9. Vovan58 65 27.08.14 13:46 Сейчас в теме
(1) imbaZeratul, Понравился мне вопрос. Очень.
А вот ответы:

1) Это будет не динамический список а ДеревоЗначений
на скриншоте приведен образец конфигурации и форма обработки
2) А вот и текст модуля формы :
&НаСервере
Процедура ОбновитьДеревоДокументов()
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ПроизвестиЗатратуПроизведенныеЗатраты.Ссылка.Дата КАК ДатаДокумента,
		|	ПроизвестиЗатратуПроизведенныеЗатраты.Ссылка КАК Документ,
		|	ПроизвестиЗатратуПроизведенныеЗатраты.Затрата КАК Затрата,
		|	ПроизвестиЗатратуПроизведенныеЗатраты.Сумма КАК Сумма
		|ИЗ
		|	Документ.ПроизвестиЗатрату.ПроизведенныеЗатраты КАК ПроизвестиЗатратуПроизведенныеЗатраты
		|
		|СГРУППИРОВАТЬ ПО
		|	ПроизвестиЗатратуПроизведенныеЗатраты.Ссылка,
		|	ПроизвестиЗатратуПроизведенныеЗатраты.Ссылка.Дата,
		|	ПроизвестиЗатратуПроизведенныеЗатраты.Затрата,
		|	ПроизвестиЗатратуПроизведенныеЗатраты.Сумма
		|ИТОГИ
		|	СУММА(Сумма)
		|ПО
		|	Документ";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Рез = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
	
	ЗначениеВРеквизитФормы(Рез, "СписокДокументов");

КонецПроцедуры // ОбновитьДеревоДокументов()
  
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	ОбновитьДеревоДокументов();
КонецПроцедуры
Показать


3) так как список не динамический, то крайне желательно вставить какие-то отборы в форму и соответственно менять и/или параметризовать запрос. Я бы это точно сделал по датам!
Прикрепленные файлы:
magv; wunderland; user639498_dar8313; maXon777; +4 Ответить
10. Vovan58 65 27.08.14 13:55 Сейчас в теме
(9) Vovan58, А вот результат в режиме Приложения :
Прикрепленные файлы:
r.zdorkin; user639498_dar8313; stupidgamer; ya.Avoronov; Andrsan; imbaZeratul; duck; Salavat; Boneman; +9 Ответить
14. jane_de_rio 15.10.18 18:56 Сейчас в теме
(9) Подскажите, пожалуйста, почему отладчику может не нравиться реквизит формы?

{ВнешняяОбработка.АдресноеХранение.Форма.Форма.Форма(80)}: Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы)
ЗначениеВРеквизитФормы(Рез, "Деревце");
по причине:
Недопустимое значение параметра (параметр номер '2')



Запрос.Текст = 
	"ВЫБРАТЬ
	|	ГСК_АдресноеХранение.Номенклатура КАК Номенклатура,
	|	ГСК_АдресноеХранение.Характеристика КАК Характеристика,
	|	ГСК_АдресноеХранение.Серия КАК Серия,
	|	ГСК_АдресноеХранение.Склад КАК Склад,
	|	ГСК_АдресноеХранение.Ячейка КАК Ячейка,
	|	СУММА(ГСК_АдресноеХранение.Количество) КАК Количество
	|ИЗ
	|	РегистрСведений.ГСК_АдресноеХранение КАК ГСК_АдресноеХранение
	|
	|СГРУППИРОВАТЬ ПО
	|	ГСК_АдресноеХранение.Ячейка,
	|	ГСК_АдресноеХранение.Серия,
	|	ГСК_АдресноеХранение.Характеристика,
	|	ГСК_АдресноеХранение.Номенклатура,
	|	ГСК_АдресноеХранение.Склад
	|ИТОГИ
	|	СУММА(Количество)
	|ПО
	|	Номенклатура,
	|	Характеристика,
	|	Серия,
	|	Склад";             	
	
РезультатЗапроса = Запрос.Выполнить();    
Рез = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);    
ЗначениеВРеквизитФормы(Рез, "Деревце");
Показать
Прикрепленные файлы:
15. bmk74 234 15.10.18 19:17 Сейчас в теме
(14)
Деревце.Загрузить(РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам));

Чет вы в такое старье полезли ?, сейчас список можно вывести в виде дерева вообще без проблем, группировку в нем тупо указать
16. jane_de_rio 15.10.18 19:26 Сейчас в теме
(15)
Деревце.Загрузить(РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам));


Метод объекта не обнаружен (Загрузить).
Тип значения "Деревце" - реквизит формы, точно к нему надо применять этот метод?
18. Altez50 1 30.11.22 17:10 Сейчас в теме
(15) если не считать проблемой запросы в цикле по каждому элементу для уточнения иерархии в случае вывода дерева иерархического справочника
17. Hexed 2 04.03.21 12:28 Сейчас в теме
(14) Поработаю некромантом.
Набор полей в дереве и в запросе должны совпадать. В запросе не хватает полей "ИД" и "РодительИД"
Из за этого ошибка
"Недопустимое значение параметра (параметр номер '2')"
2. imbaZeratul 16 25.08.14 16:51 Сейчас в теме
вот допустим есть типовой документ "реализация товаров и услуг", мне нужно чтобы его таб.часть товары выводилась с форме списка документов в виде дерева
5. Boneman 298 25.08.14 17:24 Сейчас в теме
(2) imbaZeratul, список и дерево, немного разные вещи.
Поэтому так вот, просто, динамически не получится.
В списке, можно заюзать группы, и перегруппировать по всякому разному, потестить можно через "все действия" "изменить форму".
Можно сделать, что докуммент, как бы группировать будет номенклатуру. Вот то, и можно сделать программно.
Но в чистом виде дерево вы не получите.
По крайней мере, я такого способа не знаю.
3. imbaZeratul 16 25.08.14 16:51 Сейчас в теме
4. Prikum 3 25.08.14 17:15 Сейчас в теме
(3) imbaZeratul, зачем теперь апать каждые полчаса?
6. hiduk 124 25.08.14 17:25 Сейчас в теме
Изменить текст запроса: собственно делать выборку из таблицы табличных частей документов а не из таблицы документов, и добавить группировку по ссылке... не?
kentavr27; +1 Ответить
7. TimonPODmuzon 26.08.14 11:40 Сейчас в теме
Создай в форме списка документов реквизит "Дерево" с Типом значения "ДеревоЗначений"...Затем в свойствах табличного поля формы списка поменяй "Данные" на свой созданный реквизит с типом ДеревоЗначений.. В него выводи программно, что тебе нужно..
Прикрепленные файлы:
8. Salavat 13 27.08.14 06:31 Сейчас в теме
(7) TimonPODmuzon,
что тебе нужно..
ему ещё надо будет запрос сделать с нужными итогами.
потом просто
Результатапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам)
в ДеревоЗначений.
Документ (итоговое поле) - насколько я понял.
если нужно (но, чтото сдаётся мне, что и без этого - всё норм будет), то и отфильтровать с количеством строк >1
11. ipoloskov 162 27.08.14 14:07 Сейчас в теме
смотри как это реализовано в УПП, ЗаявкиНаРасходованиеСредств
Team leader; smielka; Salavat; +3 Ответить
12. Din 27.08.14 14:59 Сейчас в теме
хорошая идея, надо использовать :) спасибо
13. Vovan58 65 27.08.14 17:57 Сейчас в теме
(12) Din, плюсуйте, кому спасибо. А то и не понятно, чья идея хороша, чья- не очень :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот