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

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, плюсуйте, кому спасибо. А то и не понятно, чья идея хороша, чья- не очень :)
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)