Печатные формы 1С — создание и настройка
Как создать свою печатную форму в 1С 8.3: от простого макета до сложных отчётов. Практические примеры и готовый код.
📋 Способы создания печатных форм
- Табличный документ — классический способ через макет
- СКД (Система компоновки данных) — гибкие настраиваемые отчёты
- Внешняя печатная форма — без изменения конфигурации
- Расширение — добавление через механизм расширений
Способ 1. Табличный документ (макет)
Шаг 1. Создание макета
- Откройте документ в Конфигураторе
- Добавьте макет: ПКМ → Добавить → Макет
- Тип макета: Табличный документ
- Нарисуйте форму в редакторе макета
Шаг 2. Области макета
Создайте именованные области для заполнения данными:
- Шапка — реквизиты организации, номер, дата
- СтрокаТЧ — строка табличной части
- Подвал — итоги, подписи
Шаг 3. Код печати
Функция Печать(МассивОбъектов, КоллекцияПечатныхФорм)
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"МояПечатнаяФорма",
"Моя печатная форма",
СформироватьПечатнуюФорму(МассивОбъектов));
КонецФункции
Функция СформироватьПечатнуюФорму(МассивОбъектов)
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("МояПечатнаяФорма");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаТЧ");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
Для Каждого Ссылка Из МассивОбъектов Цикл
Объект = Ссылка.ПолучитьОбъект();
// Шапка
ОбластьШапка.Параметры.Номер = Объект.Номер;
ОбластьШапка.Параметры.Дата = Формат(Объект.Дата, "ДЛФ=DD");
ТабДок.Вывести(ОбластьШапка);
// Табличная часть
Для Каждого Строка Из Объект.Товары Цикл
ОбластьСтрока.Параметры.Заполнить(Строка);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
// Подвал
ОбластьПодвал.Параметры.Итого = Объект.Товары.Итог("Сумма");
ТабДок.Вывести(ОбластьПодвал);
КонецЦикла;
Возврат ТабДок;
КонецФункции
Способ 2. Внешняя печатная форма
Позволяет добавить печатную форму без изменения конфигурации.
Структура обработки:
- Создайте внешнюю обработку (.epf)
- Добавьте макет
- Реализуйте обязательные функции:
СведенияОВнешнейОбработке()Печать()
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Наименование", "Моя печатная форма");
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление");
Команды.Колонки.Добавить("Идентификатор");
Команды.Колонки.Добавить("Использование");
Команды.Колонки.Добавить("Модификатор");
Команда = Команды.Добавить();
Команда.Представление = "Моя печатная форма";
Команда.Идентификатор = "МояПечатнаяФорма";
Команда.Использование = "ВызовСерверногоМетода";
Команда.Модификатор = "ПечатьMXL";
ПараметрыРегистрации.Вставить("Команды", Команды);
Назначение = Новый Массив;
Назначение.Добавить("Документ.РеsлизацияТоваровУслуг");
ПараметрыРегистрации.Вставить("Назначение", Назначение);
Возврат ПараметрыРегистрации;
КонецФункции
Полезные приёмы
Добавление логотипа
// В макете создайте ячейку с картинкой // В коде: ОбластьШапка.Рисунки.Логотип.Картинка = Организация.Логотип.Получить();
Настройка полей страницы
ТабДок.ПолеСлева = 20; ТабДок.ПолеСправа = 10; ТабДок.ПолеСверху = 15; ТабДок.ПолеСнизу = 15;
Авторазмер колонок
ТабДок.АвтоМасштаб = Истина;
Нужна печатная форма?
Разработаю печатную форму любой сложности. Счета, акты, накладные, этикетки.
Заказать разработку →