К статье
Практический материал

Документы и Печать · 11 мин

Как создать кнопку печати в 1С

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

Кнопка печати в 1С нужна, когда шаблонной печатной формы не хватает: компания использует свой бланк договора, счёт с логотипом или акт по отраслевому образцу. В зависимости от задачи кнопку можно добавить тремя способами: через встроенный механизм «Дополнительные отчеты и обработки» без изменения конфигурации, через расширение конфигурации или прямой доработкой в конфигураторе. Первый вариант подходит большинству пользователей типовых решений и не требует прав на изменение конфигурации.

Ниже разобраны все подходы: от подключения готовой внешней печатной формы до написания собственной команды печати с макетом табличного документа. Примеры ориентированы на управляемые формы (1С:Предприятие 8.3, библиотека стандартных подсистем), но логика применима и к другим конфигурациям.

Какие способы добавить кнопку печати существуют

Прежде чем открывать конфигуратор, определите, какой сценарий подходит под вашу задачу. От этого зависит объём работ и риски для базы.

Внешняя печатная форма (.epf) — файл обработки, который подключается к типовой конфигурации без её изменения. Кнопка появляется в стандартном меню «Печать» документа или справочника. Конфигурация остаётся на поддержке, обновления проходят штатно.

Расширение конфигурации — механизм платформы, позволяющий добавить свою команду, форму или макет поверх типовой конфигурации, не снимая её с поддержки. Подходит, когда нужна нестандартная логика, которую внешняя форма не покрывает.

Прямая доработка конфигурации — добавление команды и макета в конфигураторе. Даёт максимальную гибкость, но требует снятия объекта с полной поддержки, что усложняет обновления. Используйте только когда первые два варианта невозможны.

Сравнение вариантов

Внешняя печатная форма (.epf)

Подходит для типовых конфигураций с БСП. Быстро, без доработок, конфигурация остаётся на поддержке. Ограничение: нужна подсистема дополнительных отчетов и обработок.

Расширение конфигурации

Подходит, когда нужна своя команда, форма или сложная логика. Конфигурация не снимается с поддержки. Ограничение: требует навыков разработки.

Доработка в конфигураторе

Полный контроль над командой и макетом. Ограничение: усложняет обновление, требует аккуратного переноса изменений при выходе новых релизов.

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

Это основной сценарий для типовых конфигураций (1С:Бухгалтерия, Управление торговлей, ERP и других на базе БСП). Понадобится файл внешней печатной формы с расширением .epf — его можно взять из готовой разработки или создать самостоятельно (об этом ниже).

Сначала включите сам механизм. Откройте раздел «Администрирование» → «Печатные формы, отчеты и обработки» и установите флажок «Дополнительные отчеты и обработки». Без этого флажка пункт загрузки внешних форм будет недоступен.

Далее перейдите по появившейся ссылке «Дополнительные отчеты и обработки», нажмите «Добавить из файла» и укажите файл .epf. В карточке обработки проверьте, для каких объектов назначена форма (например, документ «Реализация товаров и услуг»), и при необходимости скорректируйте список назначений. После записи кнопка появится в меню «Печать» соответствующего документа.

Порядок действий
  1. 1
    Откройте «Администрирование → Печатные формы, отчеты и обработки»
  2. 2
    Включите флажок «Дополнительные отчеты и обработки»
  3. 3
    Перейдите в список дополнительных обработок и нажмите «Добавить из файла»
  4. 4
    Укажите файл .epf и проверьте назначение объектов
  5. 5
    Запишите обработку и откройте документ — проверьте наличие кнопки в меню «Печать»

Если кнопка не появилась, проверьте три вещи: включён ли механизм дополнительных обработок, назначена ли форма именно тому виду документа, который вы открываете, и нет ли у пользователя ограничений по правам доступа к дополнительным обработкам.

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

Если готового файла .epf нет, его можно разработать в конфигураторе. Откройте конфигуратор, выберите «Файл → Новый → Внешняя обработка». В модуле объекта обработки должны быть стандартные экспортные процедуры, через которые БСП получает сведения о форме и формирует табличный документ.

Минимальный каркас включает функцию СведенияОВнешнейОбработке(), которая возвращает структуру с видом обработки «ПечатнаяФорма», назначением и списком команд, и процедуру Печать(), формирующую табличный документ по переданному массиву ссылок.

Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации = Новый Структура;

ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");

ПараметрыРегистрации.Вставить("Назначение",

Новый Массив); // например "Документ.РеализацияТоваровУслуг"

ПараметрыРегистрации.Вставить("Наименование", "Моя печатная форма");

ПараметрыРегистрации.Вставить("Версия", "1.0");

ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);

Возврат ПараметрыРегистрации;

КонецФункции

Макет добавляется в обработку через палитру свойств: правой кнопкой по обработке → «Добавить → Макет → Табличный документ». В макете создайте области (шапка, строка, подвал) и задайте имена параметров в фигурных скобках — они будут заполняться из кода процедуры печати.

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

Когда внешней формы недостаточно — например, кнопка должна вызывать сложную обработку данных или располагаться на форме документа, а не в меню «Печать» — команду добавляют напрямую в конфигурации или расширении.

Откройте конфигуратор, найдите нужный документ в дереве конфигурации, раскройте ветку «Команды» и добавьте новую команду, например ПечатьМоейФормы. В свойствах команды укажите режим использования параметра — как правило, передаётся ссылка на документ. В модуле менеджера документа или общем модуле опишите формирование табличного документа.

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

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

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

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

ОбластьШапка.Параметры.НомерДокумента = Выборка.Номер;

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

ТабДок.Показать("Моя печатная форма");

Чтобы кнопка отображалась на форме, в форме документа перетащите команду из панели команд в командную панель формы. Для вывода в стандартное меню «Печать» команда должна быть зарегистрирована в модуле менеджера объекта через процедуру добавления команд печати БСП.

Как настроить макет печатной формы

Макет табличного документа — это визуальный шаблон будущей печатной формы. В нём выделяют именованные области: «Шапка» с реквизитами документа, «Строка» для табличной части (выводится в цикле), «Подвал» с итогами и подписями.

Ячейки макета заполняются тремя способами: статический текст, параметр (заполняется из кода, указывается в свойстве «Заполнение» как «Параметр») и шаблон (текст с вставками в квадратных скобках, например Договор № [Номер] от [Дата]). Для большинства полей удобнее параметры — они дают явный контроль в коде.

Обратите внимание на настройки печати самого табличного документа: ориентацию страницы, поля, масштаб и повторение шапки таблицы на каждой странице (свойство «ПовторятьПриПечатиСтроки»). Именно из-за пропущенных настроек чаще всего форма «обрезается» или разъезжается при выводе на принтер.

Перед тем как рисовать макет с нуля, скопируйте макет ближайшей типовой печатной формы и измените его. Так сохранятся привычные пользователям шрифты и структура, а работа сократится в разы.
ПЗ
Практическое замечание

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

После добавления кнопки пройдите полный цикл: откройте документ, нажмите кнопку, сформируйте форму и выведите её на предпросмотр. Проверяйте не только факт появления кнопки, но и корректность данных: номера, даты, суммы прописью, подписи.

Контрольные точки

Как проверить результат

Кнопка в меню «Печать» документа
Норма

Кнопка видна и нажимается у пользователя с рабочими правами

Тревожный признак

Кнопки нет — проверьте назначение обработки и флажок дополнительных обработок

Заполнение полей формы
Норма

Все параметры заполнены данными документа

Тревожный признак

Пустые поля или имена параметров в тексте — не совпали имена параметров в макете и коде

Вывод на принтер
Норма

Форма помещается на страницу, шапка таблицы повторяется

Тревожный признак

Обрезанные колонки, лишние пустые страницы — настройте поля и масштаб

Типичные ошибки
01
Несовпадение имён параметров в макете и в коде — поля остаются пустыми или выводятся как текст
02
Отсутствие процедуры Печать() во внешней обработке — БСП не видит форму, кнопка не появляется
03
Доработка типовой конфигурации без резервной копии — потеря изменений при обновлении
04
Назначение внешней формы не тому виду документа — кнопка есть в одном документе, но её ищут в другом
05
Игнорирование прав доступа — у разработчика кнопка работает, у пользователя нет

Частые вопросы о кнопках печати в 1С

Можно ли добавить кнопку печати без программирования?

Частично. Если у вас есть готовый файл внешней печатной формы (.epf), достаточно загрузить его через «Администрирование → Печатные формы, отчеты и обработки» — код писать не нужно. Создание самой формы с нуля без навыков разработки не обойдётся.

Почему кнопка печати не появляется в документе?

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

Слетит ли конфигурация с поддержки при добавлении кнопки?

При подключении внешней печатной формы или расширения — нет, обновления будут проходить штатно. При прямом изменении объектов конфигурации в конфигураторе объекты снимаются с полной поддержки, и обновления потребуют ручного сопоставления изменений.

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

Во внешней печатной форме процедура печати получает массив ссылок — достаточно в цикле сформировать табличный документ по каждой ссылке и вывести их последовательно, добавив разрыв страницы между документами. В списке документов пользователь выделяет нужные строки и вызывает печать.

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

В макете табличного документа вставьте картинку через меню «Таблица → Рисунки» или загрузите изображение из файла/хранилища в коде и выведите его в область макета. Убедитесь, что размер картинки соответствует ячейке, иначе макет «разъедется» при печати.

Что выбрать: расширение или внешнюю обработку?

Если нужна только печатная форма в стандартном меню «Печать» — внешнюю обработку: это проще и быстрее. Если требуется своя кнопка на форме, изменение команд или дополнительная логика проведения — расширение конфигурации.

Итог

Что важно запомнить

Оптимальный путь — внешняя печатная форма через «Дополнительные отчеты и обработки»: конфигурация остаётся на поддержке, а кнопка появляется в меню «Печать» без доработок. Собственную форму создавайте по шаблону БСП с макетом табличного документа, а прямую доработку конфигурации оставляйте крайним вариантом и только после резервной копии.