наверх
Справка / табличный документ, текстовый документ

Табличный документ, текстовый документ

  • Как вывести результат запроса в табличный документ?
  • Как вывести данные в табличный документ с возможностью сворачивания и разворачивания данных по группировкам?
  • Как при выводе данных в табличный документ свернуть все выводимые группировки?
  • Как при выводе данных в табличный документ произвольно определить состав свернутых и развернутых группировок?
  • Как выгрузить результат запроса с показом иерархии?
  • Как из построителя отчета передать данные в сводную таблицу?
  • Отчет формируется построителем отчета. Как убрать одну из колонок, поместив ее данные в расшифровку другой?
  • Как сохранить настройки построителя отчета до следующего открытия формы отчета?
  • Как организовать показ примечаний в формируемом табличном документе?
  • Как обеспечить, чтобы при вводе на печать не печатались первая колонка и первая строка табличного документа "ДокументРезультат"?
  • Как обеспечить фиксацию верхней части табличного документа, генерируемого построителем отчета, по срезу шапки таблицы?
  • Табличный документ формируется построителем отчета. Как при печати табличного документа обеспечить вывод шапки таблицы на каждой странице?
  • Как при выводе на печать "длинного" документа указать в колонтитулах страниц номер документа, дату и номер страницы?
  • Табличный документ формируется по макету, автоматически генерируемому построителем отчета. Как задать ориентацию страницы при печати?
  • Табличный документ формируется построителем отчета. Как для всех выводимых числовых показателей установить вывод без дробной части?
  • Как для построителя отчета совместить назначение своего макета и применение одного из стандартных макетов оформления?
  • Как при получении данных из запроса обойти только итоговые записи?
  • Как при получении данных из запроса обойти только иерархические итоговые записи?
  • Как вывести картинку в табличный документ?
  • Как вывести картинку в табличный документ без изменения макета?
  • Как работать со сводной таблицей?
  • Как программно разместить данные в сводной таблице и оформить ее?
  • Как создать печатную форму посредством текстового шаблона?
  • Как вывести результат запроса в табличный документ?

    Запрос = Новый Запрос; 
    Запрос.Текст = "ВЫБРАТЬ 
    	|	ОстаткиТоваровКомпанииОстатки.СкладКомпании КАК СкладКомпанииСсылка, 
    	|	ОстаткиТоваровКомпанииОстатки.Номенклатура КАК НоменклатураСсылка, 
    	|	СУММА(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток) КАК Остаток, 
    	|	ОстаткиТоваровКомпанииОстатки.Номенклатура.Представление КАК Номенклатура, 
    	|	ОстаткиТоваровКомпанииОстатки.СкладКомпании.Представление КАК Склад 
    	|ИЗ 
    	|	РегистрНакопления.ОстаткиТоваровКомпании.Остатки(&Момент) КАК ОстаткиТоваровКомпанииОстатки 
    	|СГРУППИРОВАТЬ ПО 
    	|	ОстаткиТоваровКомпанииОстатки.СкладКомпанииСсылка, 
    	|	ОстаткиТоваровКомпанииОстатки.НоменклатураСсылка 
    	|ИТОГИ СУММА(Остаток) ПО 
    	|	Общие, 
    	|	Склад"; 
    
    Запрос.УстановитьПараметр("Момент", Неопределено); 
    
    Результат = Запрос.Выполнить(); 
    
    // Получить поле табличного документа, в которое будем выводить результат. 
    ТабДок = ЭлементыФормы.ПолеТабличногоДокумента; 
    
    // Очистить данные в табличном документе 
    // (возможно данные уже выводились ранее). 
    ТабДок.Очистить(); 
    
    Макет = ПолучитьМакет("Макет"); 
    
    // Получить именованные области из макета. 
    ОбластьОбщийИтог = Макет.ПолучитьОбласть("ОбщийИтог"); 
    ОбластьСклад = Макет.ПолучитьОбласть("Склад"); 
    ОбластьНоменклатура = Макет.ПолучитьОбласть("Номенклатура"); 
    
    // Получить выборку по первой итоговой группировке (первый уровень). 
    ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); 
    
    // Запись общего итога всегда одна, поэтому можно обойтись без организации цикла. 
    ВыборкаОбщийИтог.Следующий(); 
    
    // Произвести запись данных из полей выборки в именованные 
    // области с совпадающими именами. 
    ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог); 
    
    // Включить область с заполненными параметрами в табличный документ. 
    ТабДок.Вывести(ОбластьОбщийИтог); 
    
    // "От" записи первого уровня получить подчиненную выборку 
    // записей второго уровня (по итоговой группировке "Склад"). 
    ВыборкаПоСкладу = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); 
    
    Пока ВыборкаПоСкладу.Следующий() Цикл 
    	ОбластьСклад.Параметры.Заполнить(ВыборкаПоСкладу); 
    	ТабДок.Вывести(ОбластьСклад); 
    
    	// Получить подчиненную выборку, содержащую детальные записи. 
    	ВыборкаПоНоменклатуре = ВыборкаПоСкладу.Выбрать(); 
    
    	Пока ВыборкаПоНоменклатуре.Следующий() Цикл 
    		ОбластьНоменклатура.Параметры.Заполнить(ВыборкаПоНоменклатуре); 
    		ТабДок.Вывести(ОбластьНоменклатура); 
    	КонецЦикла; 
    КонецЦикла;

    Как вывести данные в табличный документ с возможностью сворачивания и разворачивания данных по группировкам?

    // Перед выводом данных в табличный документ используется метод: 
    ТабДок.НачатьАвтогруппировкуСтрок();
    
    // Выести область с указанием уровня. 
    ТабДок.Вывести(ОбластьОбщийИтог, ВыборкаОбщийИтог.Уровень()); 
    
    // В конце работы с табличным документом необходимо выполнить 
    // следующий метод: 
    ТабДок.ЗакончитьАвтогруппировкуСтрок();

    Как при выводе данных в табличный документ свернуть все выводимые группировки?

    УровеньГруппировки = 1; //содержит индекс, с нуля 
    ТабДок.ЗакончитьАвтогруппировкуСтрок(); 
    ТабДок.ПоказатьУровеньГруппировокСтрок(УровеньГруппировки);

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

    ТабДок.Вывести(ОбластьНоменклатура, ВыборкаПоНоменклатуре.Уровень(), , Ложь);

    Как выгрузить результат запроса с показом иерархии?

    Запрос = Новый Запрос; 
    Запрос.Текст = "ВЫБРАТЬ 
    	|	ПродажиКомпанииОбороты.Номенклатура КАК Номенклатура, 
    	|	ПродажиКомпанииОбороты.КоличествоОборот КАК КоличествоОборот 
    	|ИЗ 
    	|	РегистрНакопления.ПродажиКомпании.Обороты(&НачПериода, &КонПериода, , ) КАК ПродажиКомпанииОбороты 
    	|ИТОГИ СУММА(КоличествоОборот) ПО 
    	|	Номенклатура ИЕРАРХИЯ"; 
    
    Запрос.УстановитьПараметр("НачПериода", НачПериода); 
    Запрос.УстановитьПараметр("КонПериода", КонПериода); 
    
    Результат = Запрос.Выполнить();
    
    // Осуществить выгрузку с сохранением иерархии.
    ЭлементыФормы.ТП.Значение = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); 
    
    ЭлементыФормы.ТП.СоздатьКолонки();

    Где и как можно увидеть макет, автоматически генерируемый построителем отчета?

    ПостроительОтчета.Макет.Показать()

    Как из построителя отчета передать данные в сводную таблицу?

    ЭлементыФормы.ДокументРезультат.ВстроенныеТаблицы.СводнаяТаблица.ИсточникДанных = ПостроительОтчетаОтчет; 
    ЭлементыФормы.ДокументРезультат.ВстроенныеТаблицы.СводнаяТаблица.ОтображатьПоля = Истина;

    Отчет формируется построителем отчета. Как убрать одну из колонок, поместив ее данные в расшифровку другой?

    Процедура АлфавитныйПереченьКандидатовСРасшифровкой() 
    
    	ПостроительОтчета = Новый ПостроительОтчета; 
    	ПостроительОтчета.Текст ="ВЫБРАТЬ 
    		|	РегистрацияСобеседованияКандидата.ФизЛицо КАК Кандидат, 
    		|	РегистрацияСобеседованияКандидата.РезультатСобеседования КАК Результат, 
    		|	РегистрацияСобеседованияКандидата.Ссылка 
    		|ИЗ 
    		|	Документ.РегистрацияСобеседованияКандидата КАК РегистрацияСобеседованияКандидата 
    		|УПОРЯДОЧИТЬ ПО 
    		|	РегистрацияСобеседованияКандидата.ФизЛицо.Наименование"; 
    
    	ПостроительОтчета.Выполнить(); 
    
    	Макет = ПостроительОтчета.Макет; 
    
    	// Очистить области, связанные с ссылкой. 
    	ТекущаяОбласть = Неопределено; 
    
    	Пока Истина Цикл ТекущаяОбласть = Макет.НайтиТекст("Ссылка", ТекущаяОбласть, Макет.Область()); 
    		Если ТекущаяОбласть = Неопределено Тогда 
    			Прервать; 
    		Иначе 
    			ТекущаяОбласть.Очистить(Истина, Истина, Истина); 
    		КонецЕсли; 
    	КонецЦикла; 
    
    	// Заполнить параметр расшифровки для областей, где параметр = "Результат". 
    	ТекущаяОбласть = Неопределено; 
    	Пока Истина Цикл ТекущаяОбласть = Макет.НайтиТекст("Результат", ТекущаяОбласть, Макет.Область()); 
    		Если ТекущаяОбласть = Неопределено Тогда 
    			Прервать; 
    		Иначе 
    			Если ТекущаяОбласть.Параметр = "Результат" Тогда 
    				ТекущаяОбласть.ПараметрРасшифровки = "Ссылка"; 
    			КонецЕсли; 
    		КонецЕсли; 
    	КонецЦикла; 
    
    	ПостроительОтчета.Макет = Макет; 
    	ПостроительОтчета.Вывести(); 
    
    КонецПроцедуры

    Как сохранить настройки построителя отчета до следующего открытия формы отчета?

    СохранитьЗначение("НастройкаПостроителяДляОтчетаПродажи" + Метаданные().Имя, ПостроительОтчета.ПолучитьНастройки()); 
    
    // До установки настроек они ранее должны были быть заполнены 
    // по тексту запроса. 
    ПостроительОтчета.ЗаполнитьНастройки(); 
    
    // Установить настройки построителя отчета. 
    Настройка = ВосстановитьЗначение("НастройкаПостроителяДляОтчетаПродажи" + Метаданные().Имя); 
    Если Настройка <> Неопределено Тогда 
    	ПостроительОтчета.УстановитьНастройки(Настройка); 
    КонецЕсли;

    Как организовать показ примечаний в формируемом табличном документе?

    Процедура Отчет(ДатаНач, ДатаКон) Экспорт 
    
    	Запрос = Новый Запрос; 
    
    	// Сбор данных. 
    	Запрос.Текст = "ВЫБРАТЬ 
    		|	Событие.Ответственный КАК Ответственный, 
    		|	Событие.Дата, 
    		|	Событие.ВидСобытия, 
    		|	Событие.Контрагент, 
    		|	Событие.СодержаниеСобытия, 
    		|	Событие.ОписаниеСобытия 
    		|ИЗ 
    		|	Документ.Событие КАК Событие 
    		|ГДЕ 
    		|	Событие.Дата МЕЖДУ &ДатаНач И &ДатаКон И (Событие.Проведен) И Событие.СостояниеСобытия = &Завершено 
    		|УПОРЯДОЧИТЬ ПО 
    		|	Ответственный"; 
    
    	Запрос.УстановитьПараметр("ДатаКон", ДатаКон); 
    	Запрос.УстановитьПараметр("ДатаНач", ДатаНач); 
    	Запрос.УстановитьПараметр("Завершено", Перечисления.СостоянияСобытий.Завершено); 
    
    	Результат = Запрос.Выполнить(); 
    
    	// Сформировать табличный документ. 
    	Макет = ПолучитьМакет("Отчет"); 
    	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); 
    	ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); 
    	ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); 
    	ТабДок = Новый ТабличныйДокумент; 
    	ОбластьЗаголовок.Параметры.ДатаНач = ДатаНач; 
    	ОбластьЗаголовок.Параметры.ДатаКон = ДатаКон; 
    	ТабДок.Вывести(ОбластьЗаголовок); 
    	ТабДок.Вывести(ОбластьШапкаТаблицы); 
    
    	ВыборкаДетали = Результат.Выбрать(); 
    	Пока ВыборкаДетали.Следующий() Цикл 
    		ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали); 
    		ОбластьДетальныхЗаписей.Область("Описание").Примечание.Текст = ВыборкаДетали.СодержаниеСобытия; 
    		ТабДок.Вывести(ОбластьДетальныхЗаписей); 
    	КонецЦикла; 
    
    	ТабДок.Показать(); 
    
    КонецПроцедуры

    Как обеспечить, чтобы при вводе на печать не печатались первая колонка и первая строка табличного документа "ДокументРезультат"?

    ДокументРезультат.ОбластьПечати = ДокументРезультат.Область(2, 2, ДокументРезультат.ВысотаТаблицы, ДокументРезультат.ШиринаТаблицы );

    Как обеспечить фиксацию верхней части табличного документа, генерируемого построителем отчета, по срезу шапки таблицы?

    ДокументРезультат.ФиксацияСверху = ПостроительОтчета.Макет.Области.ШапкаТаблицы.Низ;

    Табличный документ формируется построителем отчета. Как при печати табличного документа обеспечить вывод шапки таблицы на каждой странице?

    ОбластьШапки = ПостроительОтчета.Макет.Области.ШапкаТаблицы; 
    ДокументРезультат.ПовторятьПриПечатиСтроки = ДокументРезультат.Область(ОбластьШапки.Верх, , ОбластьШапки.Низ);

    Как при выводе на печать "длинного" документа указать в колонтитулах страниц номер документа, дату и номер страницы?

    ТабДокумент.ВерхнийКолонтитул.Выводить = Истина; 
    ТабДокумент.ВерхнийКолонтитул.НачальнаяСтраница = 2; 
    ТабДокумент.ВерхнийКолонтитул.ТекстСлева = Метаданные().Представление() + " № " + Номер; 
    ТабДокумент.ВерхнийКолонтитул.ТекстСправа = "[&НомерСтраницы]";

    Табличный документ формируется по макету, автоматически генерируемому построителем отчета. Как задать ориентацию страницы при печати?

    ПостроительОтчета.Вывести(ДокументРезультат); 
    ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

    Табличный документ формируется построителем отчета. Как для всех выводимых числовых показателей установить вывод без дробной части?

    // Получить макет построителя отчета. 
    Макет = ПостроительОтчета.Макет; 
    
    // Сформатировать все области, где встречается слово "Стоимость". 
    ТекущаяОбласть = Неопределено; 
    
    Пока Истина Цикл 
    	ТекущаяОбласть = Макет.НайтиТекст("Стоимость", ТекущаяОбласть, Макет.Область()); 
    
    	Если ТекущаяОбласть = Неопределено Тогда 
    		Прервать; 
    	Иначе 
    		Если ТекущаяОбласть.Параметр <> "" Тогда 
    			ТекущаяОбласть.Формат = "ЧДЦ=0"; 
    		КонецЕсли; 
    	КонецЕсли; 
    КонецЦикла; 
    
    // Сформатировать все области, где встречается слово "Количество". 
    ТекущаяОбласть = Неопределено; 
    
    Пока Истина Цикл 
    	ТекущаяОбласть = Макет.НайтиТекст("Количество", ТекущаяОбласть, Макет.Область()); 
    	Если ТекущаяОбласть = Неопределено Тогда 
    		Прервать; 
    	Иначе 
    		Если ТекущаяОбласть.Параметр <> "" Тогда 
    			ТекущаяОбласть.Формат = "ЧДЦ=0"; 
    		КонецЕсли; 
    	КонецЕсли; 
    КонецЦикла; 
    
    // Назначить построителю измененный макет. 
    ПостроительОтчета.Макет = Макет; 
    
    // Вывести результат работы построителя отчета в табличный документ.

    Как для построителя отчета совместить назначение своего макета и применение одного из стандартных макетов оформления?

    ПостроительОтчета.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Апельсин); 
    ПостроительОтчета.Макет = ПолучитьМакет("МакетЭтогоОтчета"); 
    ПостроительОтчета.ОформитьМакет();

    Как при получении данных из запроса обойти только итоговые записи?

    ТабДок = ЭлементыФормы.ПолеТабличногоДокумента; 
    ТабДок.Очистить(); 
    Макет = ПолучитьМакет("Отчет"); 
    Запрос = Новый Запрос; 
    Запрос.Текст = "ВЫБРАТЬ 
    	|	ПродажиКомпанииОбороты.Номенклатура КАК Номенклатура, 
    	|	ПродажиКомпанииОбороты.Номенклатура.Представление, 
    	|	ПродажиКомпанииОбороты.КоличествоОборот КАК КоличествоОборот, 
    	|	ПродажиКомпанииОбороты.СуммаПродажиОборот КАК СуммаПродажиОборот 
    	|ИЗ 
    	|	РегистрНакопления.ПродажиКомпании.Обороты(&НачПериода,&КонПериода) КАК ПродажиКомпанииОбороты 
    	|ИТОГИ СУММА(КоличествоОборот), СУММА(СуммаПродажиОборот) ПО 
    	|	ОБЩИЕ, 
    	|	Номенклатура Иерархия"; 
    
    Запрос.УстановитьПараметр("&НачПериода", НачПериода); 
    Запрос.УстановитьПараметр("&КонПериода", КонецДня(КонПериода)); 
    
    Результат = Запрос.Выполнить(); 
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); 
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); 
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); 
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы"); 
    ОбластьОбщийИтог = Макет.ПолучитьОбласть("ОбщиеИтоги"); 
    ОбластьНоменклатура = Макет.ПолучитьОбласть("Номенклатура"); 
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); 
    
    ТабДок.Вывести(ОбластьЗаголовок); 
    ТабДок.Вывести(ОбластьШапкаТаблицы); 
    
    // Обход по определенным в запросе итоговым группировкам. 
    ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); 
    
    // Запись общих итогов одна, поэтому нет необходимости в цикле. 
    ВыборкаОбщийИтог.Следующий(); 
    ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог); 
    ТабДок.Вывести(ОбластьОбщийИтог); 
    
    // Получить подчиненную выборку по итоговой группировке "номенклатура". 
    ВыборкаНоменклатура = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); 
    Пока ВыборкаНоменклатура.Следующий() Цикл 
    	ОбластьНоменклатура.Параметры.Заполнить(ВыборкаНоменклатура); 
    	ТабДок.Вывести(ОбластьНоменклатура); 
    
    	// Несмотря на то, что можем получить еще одну подчиненную 
    	// выборку (по детальным записям) мы это не делаем, т.е. фактически 
    	// при обходе пропускаем детальные записи. 
    
    КонецЦикла; 
    
    ТабДок.Вывести(ОбластьПодвалТаблицы); 
    ТабДок.Вывести(ОбластьПодвал);

    Как при получении данных из запроса обойти только иерархические итоговые записи?

    ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); 
    ВыборкаОбщийИтог.Следующий(); 
    ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог); 
    ТабДок.Вывести(ОбластьОбщийИтог); 
    ВыборкаНоменклатура = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); 
    
    Пока ВыборкаНоменклатура.Следующий() Цикл 
    	ОбластьНоменклатура.Параметры.Заполнить(ВыборкаНоменклатура); 	
    	ТабДок.Вывести(ОбластьНоменклатура); 
    КонецЦикла;

    Как вывести картинку в табличный документ?

    ТабДок = Новый ТабличныйДокумент; 
    Макет = ОбработкаОбъект.ПолучитьМакет("Макет"); 
    ОбластьКартинки = Макет.ПолучитьОбласть("ОбластьСКартинкой"); 
    Картинка = Новый Картинка(ПутьККартинке); 
    
    // Элемент управления "Логотип" входит в коллекцию картинок области. 
    ОбластьКартинки.Рисунки.Логотип.Картинка = Картинка; 
    ТабДок.Вывести(ОбластьКартинки); 
    
    ТабДок.Показать();

    Как вывести картинку в табличный документ без изменения макета?

    Область = Макет.ПолучитьОбласть("Шапка"); 
    Рисунок = Область.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка); 
    Рисунок.Верх = 5; 
    Рисунок.Высота = 10; 
    Рисунок.Ширина = 10; 
    Рисунок.Лево = 5; 
    Рисунок.Картинка = Новый Картинка(ПутьККартинке); 
    Рисунок.РазмерКартинки = РазмерКартинки.РеальныйРазмер; 
    
    ТабДок.Вывести(Область);

    Как работать со сводной таблицей?

    Запрос = Новый Запрос; 
    Запрос.Текст = "ВЫБРАТЬ 
    	|	ПродажиКомпанииОбороты.ДоговорВзаиморасчетовПокупателя.Владелец КАК ДоговорВзаиморасчетовПокупателяВладелец, 
    	|	ПродажиКомпанииОбороты.Номенклатура КАК Номенклатура, 
    	|	ПродажиКомпанииОбороты.ПодразделениеКомпании КАК ПодразделениеКомпании, 
    	|	СУММА(ПродажиКомпанииОбороты.КоличествоОборот) КАК КоличествоОборот, 
    	|	СУММА(ПродажиКомпанииОбороты.СуммаПродажиОборот) КАК СуммаПродажиОборот 
    	|ИЗ 
    	|	РегистрНакопления.ПродажиКомпании.Обороты(&НачПериода,&КонПериода) КАК ПродажиКомпанииОбороты 
    	|СГРУППИРОВАТЬ ПО 
    	|	ПродажиКомпанииОбороты.ДоговорВзаиморасчетовПокупателя.Владелец, 
    	|	ПродажиКомпанииОбороты.Номенклатура, 
    	|	ПродажиКомпанииОбороты.ПодразделениеКомпании 
    	|ИТОГИ СУММА(КоличествоОборот), СУММА(СуммаПродажиОборот) ПО 
    	|	ДоговорВзаиморасчетовПокупателяВладелец, 
    	|	Номенклатура, 
    	|	ПодразделениеКомпании"; 
    
    // На состав полей, которые могут быть размещены в измерениях, 
    // данных сводной таблицы влияет раздел "Итоги". 
    Запрос.УстановитьПараметр("НачПериода", НачПериода); 
    Запрос.УстановитьПараметр("КонПериода", КонПериода); 
    
    Результат = Запрос.Выполнить(); 
    
    Сводная = ЭлементыФормы.ПолеДокумента.ВстроенныеТаблицы.СводнаяТаблица1; 
    Сводная.ИсточникДанных = Результат;

    Как программно разместить данные в сводной таблице и оформить ее?

    Построитель = Новый ПостроительОтчета(); 
    Построитель.Текст = "ВЫБРАТЬ 
    	|	ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад, 
    	|	ТоварыНаСкладахОстаткиИОбороты.Склад.Представление, 
    	|	ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, 
    	|	ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Представление, 
    	|	СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход, 
    	|	СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот) КАК КоличествоОборот, 
    	|	СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход 
    	|ИЗ 
    	|	РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты 
    	|СГРУППИРОВАТЬ ПО 
    	|	ТоварыНаСкладахОстаткиИОбороты.Склад, 
    	|	ТоварыНаСкладахОстаткиИОбороты.Номенклатура, 
    	|	ТоварыНаСкладахОстаткиИОбороты.Склад.Представление, 
    	|	ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Представление 
    	|ИТОГИ СУММА(КоличествоПриход), СУММА(КоличествоОборот), СУММА(КоличествоРасход) ПО 
    	|	ОБЩИЕ, 
    	|	Номенклатура ИЕРАРХИЯ, 
    	|	Склад ИЕРАРХИЯ "; 
    
    Построитель.ЗаполнитьНастройки(); 
    Таблица = ЭлементыФормы.ПолеТабличногоДокумента1.ВстроенныеТаблицы.СводнаяТаблица1; 
    Таблица.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Лед); 
    
    Таблица.ИсточникДанных = Построитель; 
    
    Таблица.Строки.Добавить("Номенклатура"); 
    Таблица.Колонки.Добавить("Склад"); 
    Таблица.Данные.Добавить("КоличествоПриход"); 
    
    Таблица.ОтображатьЛинии = ТипОтображенияЛинийСводнойТаблицы.Всегда;

    Как создать печатную форму посредством текстового шаблона?

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