---
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)