kb-personal/src/content/docs/knowledge-base/Общие/Обмен данными/Табличный документ в ТЗ и обратно.md
2025-10-07 14:16:34 +05:00

3.1 KiB
Raw Blame History

title, slug
title slug
Табличный документ в ТЗ и обратно общие-обмен-данными/табличный-документ-в-тз-и-обратно

Табличный документ в таблицу значений (табдок в ТЗ)

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

Таблица значений в табличный документ (ТЗ в табдок)

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

Вариант с собственной функцией

&НаСервере
Функция ТабличныйДокументИзТаблицыЗначений(ТаблицаЗначений)
    
    ТабДок = Новый ТабличныйДокумент;
    
    // Формируем заголовки
    ОбластьЗаголовок = ТабДок.ПолучитьОбласть(1, 1, 1, ТаблицаЗначений.Колонки.Количество() + 1);
    ОбластьЗаголовок.Область(1, 1).Текст = "№ п/п";
    
    Для НомерКолонки = 1 По ТаблицаЗначений.Колонки.Количество() Цикл
        ОбластьЗаголовок.Область(1, НомерКолонки + 1).Текст = ТаблицаЗначений.Колонки[НомерКолонки - 1].Имя;
    КонецЦикла;
    ТабДок.Вывести(ОбластьЗаголовок);
    
    // Заполняем данными
    Для НомерСтроки = 1 По ТаблицаЗначений.Количество() Цикл
        ОбластьСтрока = ТабДок.ПолучитьОбласть(НомерСтроки + 1, 1, НомерСтроки + 1, ТаблицаЗначений.Колонки.Количество() + 1);
        ОбластьСтрока.Область(1, 1).Текст = Формат(НомерСтроки, "ЧГ=");
        
        Для НомерКолонки = 1 По ТаблицаЗначений.Колонки.Количество() Цикл
            ОбластьСтрока.Область(1, НомерКолонки + 1).Текст = Строка(ТаблицаЗначений[НомерСтроки - 1][НомерКолонки - 1]);
        КонецЦикла;
        
        ТабДок.Вывести(ОбластьСтрока);
    КонецЦикла;
    
    Возврат ТабДок;
    
КонецФункции

Источник 1 Источник 2