Преобразование дерева в таблицу

21.11.25

Разработка - Запросы

Преобразование дерева в таблицу значений через запрос.

Шпаргалка.

Простой способ преобразования дерева значений в таблицу значений через запрос.

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

Мне понадобилось для того, чтобы вывести печатную форму объединив строки по одинаковым артикулам в разных коллекциях строк.

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

	Дерево = ДанныеФормыВЗначение(ТЗ, Тип("ДеревоЗначений")); //дерево на форме
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ * Поместить врТаб ИЗ &Таб КАК Таб;
		|ВЫБРАТЬ * ИЗ врТаб КАК Таб";      
	Запрос.Параметры.Вставить("Таб", Дерево);
	Таб = Запрос.Выполнить().Выгрузить(); //таблица значений

 

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    261367    1458    421    

1170

WEB-интеграция Запросы Программист 1С 8.3 Абонемент ($m)

Post1C - это внешняя обработка, которая превращает 1С в полноценный инструмент для тестирования REST API. Всё управление сосредоточено в одном окне: настройка запроса, выполнение, просмотр ответа и генерация кода - без переключения между формами. Аналог Postman, но работающий в привычной среде 1С.

1 стартмани

02.04.2026    2426    72    priem_nv    23    

65

Инструментарий разработчика Запросы Программист 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Представляю новую версию подсистемы работы со схемой запроса, которая завершает её эволюцию от библиотеки по работе со схемой запроса до объектной реализации модели запроса 2. Теперь есть выбор между классическим и текучим стилем написанию кода - оба варианта взаимозаменяемы. Ключевое улучшение - использование объектов в качестве источников данных, значений полей и параметров в условиях виртуальных таблиц, а также новые операторы позиционирования в схеме

1 стартмани

29.03.2026    2156    kalyaka    16    

24

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

QueryConsole1C — расширение, включающее консоль запросов с поддержкой исполняемых представлений — аналогов виртуальных таблиц, основанных на методах программного интерфейса ЗУП. Оно позволяет выполнять запросы с учётом встроенной бизнес-логики, отлаживать алгоритмы получения данных и автоматически генерировать код на встроенном языке 1С.

1 стартмани

16.05.2025    11453    150    zup_dev    30    

83

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

В данной публикации рассказывается о решении, которое позволяет находить сразу все ошибки в тексте запроса за раз, а не только самую первую.

2 стартмани

05.03.2025    6615    21    XilDen    12    

29

Обновление 1С Запросы Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

Данный инструмент помогает анализировать доработанную конфигурацию после обновления на новый релиз и находить «битые» тексты запросов, в которых участвуют несуществующие в новом релизе метаданные.

3 стартмани

06.02.2025    5898    36    XilDen    26    

42

Запросы Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

В статье приведена удобная возможность отладки исполняемого запроса динамического списка.

03.12.2024    13328    artemusII    11    

27
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. so-lf 2 24.11.25 17:26 Сейчас в теме
крутяк.....знай одному человеку ты помог этим способом!!
asdfgcom; +1 Ответить
2. German 415 26.11.25 10:50 Сейчас в теме
Дерево.Строки.НайтиСтроки(Новый Структура("НоваяКолонка",Ложь),Истина)
starik-2005; asdfgcom; +2 Ответить
3. asdfgcom 449 26.11.25 12:30 Сейчас в теме
(2) Добавляем в дерево колонку "НоваяКолонка" булево, истина.
Возвращает массив строк.
Массив потом надо преобразовать в таблицу значений +цикл.
По-моему будет работать медленнее и кода немного больше. Но, вцелом, хороший вариант!
	
Дерево = ДанныеФормыВЗначение(ТЗ,Тип("ДеревоЗначений"));           
	найденные = Дерево.Строки.НайтиСтроки(Новый Структура("фл1",Ложь),Истина);   
	
	массивКолонок = Новый Массив;
	для каждого кол из Дерево.Колонки Цикл   
		массивКолонок.Добавить(кол.Имя);	
	КонецЦикла;
	Для Каждого эл Из найденные Цикл
		Для Каждого имяКолонки Из массивКолонок Цикл
			// что-то делаем
		КонецЦикла;
	КонецЦикла;
Показать
4. starik-2005 3272 09.12.25 17:50 Сейчас в теме
(3)
Массив потом надо преобразовать в таблицу значений
А зачем? Если нужно просто пробежаться по всему дереву, то для каждого строка из массив. Не нужно плодить сущности без необходимости.
5. asdfgcom 449 09.12.25 19:01 Сейчас в теме
(4) Задача была: свернуть по артикулу и распечатать. Дерево из колонок артикул, характеристика, товар, цены, количество и т.д.
И вот надо было на печать вывести без характеристик, но просуммировав по суммам и по количеству продаж.
Конечно проще всего преобразовать дерево в ТЗ, а затем свернуть по нужным колонкам, просуммировав суммы. И вывести на печать.
Вот лень было обходить дерево циклами.
Для отправки сообщения требуется регистрация/авторизация