3.1 KiB
3.1 KiB
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]);
КонецЦикла;
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
Возврат ТабДок;
КонецФункции