Вывод таблицы значений в табличный документ через СКД


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

Иногда бывают задачи, в которых нужно преобразовать таблицу значений в табличный документ.
Захотелось это сделать путем вывода через схему компоновки данных.

Опишу поэтапно самый простой способ:

  • На вход принимаем произвольную таблицу значений, которую нужно вывести в табличный документ.
  • Создаем объект типа СхемаКомпоновкиДанных, назовем его СКД.
  • В СКД добавляем источник данных.
  • В СКД добавляем в набор данных типа НаборДанныхОбъектСхемыКомпоновкиДанных.
  • Перебором колонок таблицы значений в цикле добавляем поля (ПолеНабораДанныхСхемыКомпоновкиДанных) в набор данных. Сразу же создаем ВыбранноеПолеКомпоновкиДанных в свойстве СКД — НастройкиПоУмолчанию.
  • Программно создаем группировку ГруппировкаКомпоновкиДанных в свойстве СКД — НастройкиПоУмолчанию.
  • Создаем объект типа КомпоновщикМакетаКомпоновкиДанных, выполняем его, получаем макет компоновки.
  • Создаем объект типа ПроцессорКомпоновкиДанных, инициализируем его. При инициализации передаем в него макет компоновки и структуру, содержащую таблицу значений, которую нужно вывести в табличный документ.
  • Создаем объект типа ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент (в названии все сказано). Выполняем метод УстановитьДокумент, тем самым объяснив процессору вывода в какой табличный документ нужно вывести результат.
  • Выполняем метод Вывести.

В приложенной внешней обработке — пример кода.

Тестировал на платформе 8.3.12.ХХХ
Если эта публикация оказалась полезна не забудьте поставить плюсик.
В комментариях жду отзывы.

3 Comments

  1. fancy

    Проще через построитель отчета

    ПостроительОтчета.Источник = Новый ОписаниеИсточникаДанных(ТЗ);
    ПостроительОтчета.Вывести(ТабличныйДокумент);
    
    Reply
  2. cool99

    Это частный случай, СКД идеально подходит подходит для формирования ТЗ и особенно дерева в управляемых формах без всяких там рекурсивных функций с расчетами. Запросом+языком СКД все посчитал, создал дерево через соответствующий процессов, создал элементы/реквизиты на форме -> профит + снятие нагрузки с клиента.

    Reply
  3. German_Tagil

    Хорошо — давно что-то подобное искал для управляемых форм

    Хочется доработать https://infostart.ru/public/976572/

    чтобы перед тем как грузить данные из Exel прочитать данные из табличной части

    то что предлагается в основном — записать в табличную часть

    а мне надо прочитать и записать а дальше можно размышлять что с эти делать

    у меня на обычных формах подобным образом реализован ввод данных в сменно-суточных

    заданиях

    а вообще-то такой ввод никогда не помешает

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *