--- title: Табличный документ в ТЗ и обратно slug: общие-обмен-данными/табличный-документ-в-тз-и-обратно --- ## Табличный документ в таблицу значений (табдок в ТЗ) ```bsl Построитель = Новый ПостроительЗапроса; Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область()); ТабДанные = Построитель.Результат.Выгрузить(); ``` ## Таблица значений в табличный документ (ТЗ в табдок) ```bsl ТабДокумент = Новый ТабличныйДокумент; Построитель = Новый ПостроительОтчета; Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаЗначений); Построитель.Вывести(ТабДокумент); ``` ### Вариант с собственной функцией ```bsl &НаСервере Функция ТабличныйДокументИзТаблицыЗначений(ТаблицаЗначений) ТабДок = Новый ТабличныйДокумент; // Формируем заголовки ОбластьЗаголовок = ТабДок.ПолучитьОбласть(1, 1, 1, ТаблицаЗначений.Колонки.Количество() + 1); ОбластьЗаголовок.Область(1, 1).Текст = "№ п/п"; Для НомерКолонки = 1 По ТаблицаЗначений.Колонки.Количество() Цикл ОбластьЗаголовок.Область(1, НомерКолонки + 1).Текст = ТаблицаЗначений.Колонки[НомерКолонки - 1].Имя; КонецЦикла; ТабДок.Вывести(ОбластьЗаголовок); // Заполняем данными Для НомерСтроки = 1 По ТаблицаЗначений.Количество() Цикл ОбластьСтрока = ТабДок.ПолучитьОбласть(НомерСтроки + 1, 1, НомерСтроки + 1, ТаблицаЗначений.Колонки.Количество() + 1); ОбластьСтрока.Область(1, 1).Текст = Формат(НомерСтроки, "ЧГ="); Для НомерКолонки = 1 По ТаблицаЗначений.Колонки.Количество() Цикл ОбластьСтрока.Область(1, НомерКолонки + 1).Текст = Строка(ТаблицаЗначений[НомерСтроки - 1][НомерКолонки - 1]); КонецЦикла; ТабДок.Вывести(ОбластьСтрока); КонецЦикла; Возврат ТабДок; КонецФункции ``` [Источник 1](https://infostart.ru/1c/articles/2110771) [Источник 2](https://helpf.pro/faq/view/1373.html)