Простой способ вывода таблицы значений в табличный документ, используя схему компоновки данных.
Иногда бывают задачи, в которых нужно преобразовать таблицу значений в табличный документ.
Захотелось это сделать путем вывода через схему компоновки данных.
Опишу поэтапно самый простой способ:
- На вход принимаем произвольную таблицу значений, которую нужно вывести в табличный документ.
- Создаем объект типа СхемаКомпоновкиДанных, назовем его СКД.
- В СКД добавляем источник данных.
- В СКД добавляем в набор данных типа НаборДанныхОбъектСхемыКомпоновкиДанных.
- Перебором колонок таблицы значений в цикле добавляем поля (ПолеНабораДанныхСхемыКомпоновкиДанных) в набор данных. Сразу же создаем ВыбранноеПолеКомпоновкиДанных в свойстве СКД — НастройкиПоУмолчанию.
- Программно создаем группировку ГруппировкаКомпоновкиДанных в свойстве СКД — НастройкиПоУмолчанию.
- Создаем объект типа КомпоновщикМакетаКомпоновкиДанных, выполняем его, получаем макет компоновки.
- Создаем объект типа ПроцессорКомпоновкиДанных, инициализируем его. При инициализации передаем в него макет компоновки и структуру, содержащую таблицу значений, которую нужно вывести в табличный документ.
- Создаем объект типа ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент (в названии все сказано). Выполняем метод УстановитьДокумент, тем самым объяснив процессору вывода в какой табличный документ нужно вывести результат.
- Выполняем метод Вывести.
В приложенной внешней обработке — пример кода.
Тестировал на платформе 8.3.12.ХХХ
Если эта публикация оказалась полезна не забудьте поставить плюсик.
В комментариях жду отзывы.
Проще через построитель отчета
Это частный случай, СКД идеально подходит подходит для формирования ТЗ и особенно дерева в управляемых формах без всяких там рекурсивных функций с расчетами. Запросом+языком СКД все посчитал, создал дерево через соответствующий процессов, создал элементы/реквизиты на форме -> профит + снятие нагрузки с клиента.
Хорошо — давно что-то подобное искал для управляемых форм
https://infostart.ru/public/976572/
Хочется доработать
чтобы перед тем как грузить данные из Exel прочитать данные из табличной части
то что предлагается в основном — записать в табличную часть
а мне надо прочитать и записать а дальше можно размышлять что с эти делать
у меня на обычных формах подобным образом реализован ввод данных в сменно-суточных
заданиях
а вообще-то такой ввод никогда не помешает