Инструменты пользователя

Инструменты сайта


1c:общие:табличный_документ

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

Табличные документы в 1С обычно используются для вывода отчетов и печатных форм. Его структура на внешний вид напоминает Excel и доступны похожие средства форматирования и оформления. Следует отметить, что хорошим в 1С считается построение отчетов в системе СКД, а вывод данных напрямую в табличный документ, оставлен для печатных форм.

Макет

Макет – описание полей или областей табличного документа, которые будут выведены пользователю. Другими словами это каркас или схема итогового табличного документа.
Области в отчете выводятся сверху вниз и слева направо. Область может иметь имя, через которое к ней можно обращаться. Имя области задается следующим образом: нужно выделить область которой вы хотите задать имя (можно выделить целиком строку\строки или колонку\колонки) и после этого выбрать меню Таблица - Имена - Назначить имя.

Макеты используются не только для хранения заранее заготовленного оформления отчета, но и к примеру для настройки авторегистрации отчета(так сделано в большинстве типовых конфигураций построенных на обычном приложении), там могут быть какие то бинарные данные или отчет СКД. Макеты могут быть у документов, справочников или у большинства других типов метаданных. Предусмотрены помощники создания печатных форм, которые на основании реквизитов выбранного объекта строят макет, генерируют процедуру и установку кнопки на форму по его заполнению и выводу на печать готового табличного документа.(FIXME Куда нить приляпать замечание о том что можно сделать у одной строки свою ширину колонок) Ячейки в макете могут иметь следующий тип:

  • Текст – будет выведен текст указанный в ячейке
  • Параметр – при формировании табличного документа можно установить значение параметра указанного в ячейке макета.
  • Шаблон – этот тип ячейки который необходим для вывода текста и параметра одновременно, например в ячейке с типом "Шаблон" можно указать: "Итоговая сумма: [СуммаИтого]", затем при формировании табличного документа мы получим такой вывод: "Итоговая сумма: 1350". Бывает очень удобно при построении сложных макетов.

Общий пример работы с макетом

Заполнение макета конструктором печати документа реализация товаров и услуг

	//{{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ(Печать1)
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	ТабДок = Новый ТабличныйДокумент;
	Макет = Документы.РеализацияТоваровУслуг.ПолучитьМакет("Печать");
	// Заголовок
	Область = Макет.ПолучитьОбласть("Заголовок");
	ТабДок.Вывести(Область);
	// Шапка
	Шапка = Макет.ПолучитьОбласть("Шапка");
	Шапка.Параметры.Заполнить(ЭтотОбъект);
	ТабДок.Вывести(Шапка);
	// Товары
	Область = Макет.ПолучитьОбласть("ТоварыШапка");
	ТабДок.Вывести(Область);
	ОбластьТовары = Макет.ПолучитьОбласть("Товары");
	Для Каждого ТекСтрокаТовары Из Товары Цикл
		ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары);
		ТабДок.Вывести(ОбластьТовары);
	КонецЦикла;
	// Подвал
	Подвал = Макет.ПолучитьОбласть("Подвал");
	Подвал.Параметры.Заполнить(ЭтотОбъект);
	ТабДок.Вывести(Подвал);
 
	ТабДок.ОтображатьСетку = Ложь;
	ТабДок.Защита = Ложь;
	ТабДок.ТолькоПросмотр = Ложь;
	ТабДок.ОтображатьЗаголовки = Ложь;
	ТабДок.Показать();
	//}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ

Вкратце, схема следующая:

  1. Создание табличного документа, который будет показан пользователю.
  2. Получение макета с нужной нам структурой.
  3. Получение из макета области которую нужно вывести(можно использовать разные макеты).
  4. Заполнение параметров, области, если они есть.
  5. Вывод области в табличный документ
  6. Вывод табличного документа.

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

ТабДок = Новый ТабличныйДокумент;

Получаем нужный нам макет:

Макет = Документы.РеализацияТоваровУслуг.ПолучитьМакет("Печать");

Получаем область из этого макета

Шапка = Макет.ПолучитьОбласть("Шапка");

Устанавливаем значения параметров существующих в этой области

Шапка.Параметры.Заполнить(ЭтотОбъект); //если есть коллекция откуда заполнять данные
//или
Шапка.Параметры. Номер = ЭтотОбъект.Номер;

Выводим эту область в табличном документе

ТабДок.Вывести(Шапка);

Показываем табличный документ

ТабДок.Показать();

Табличный документ можно вывести не только на экран пользователю, но и например в эксель, этот метод бывает чрезвычайно полезным, так как бывает гораздо удобнее сделать печатную форму, и сохранить ее средствами платформы в эксель, чем самому его «мастерить» с помощью com. Делается это следующим образом:

ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLS);
Только авторизованные участники могут оставлять комментарии.
1c/общие/табличный_документ.txt · Последнее изменение: 2014/12/24 18:24 — admin