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

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

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

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

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

Выбор способа зависит от того, какая у вас конфигурация и есть ли навыки программирования на встроенном языке 1С. Типовые конфигурации на базе Библиотеки стандартных подсистем (Управление торговлей, Бухгалтерия предприятия, ERP, Зарплата и управление персоналом) поддерживают внешние печатные формы «из коробки» — это безопасный путь, не требующий снятия конфигурации с поддержки. Самописные и сильно доработанные решения часто требуют прямого вмешательства в код.

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

Определите, какой способ подходит вашей конфигурации

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

Если такого пункта нет, конфигурация либо самописная, либо построена на старых подходах. В этом случае остаются два варианта: доработка в конфигураторе (добавление команды в форму документа и процедуры формирования табличного документа) или встраивание подсистемы БСП, что оправдано только при большом объёме доработок. Для одиночной кнопки проще добавить команду напрямую.

Маршрут решения

Как выбрать действие

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

Способ 1: кнопка печати через внешнюю печатную форму

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

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

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

Если в карточке обработки список назначений пуст, форма не будет видна ни в одном документе. Назначения можно дополнить вручную кнопкой «Добавить», но только если разработчик формы предусмотрел такую возможность — иначе файл нужно доработать, добавив документ в массив назначений в функции СведенияОВнешнейОбработке().

Способ 2: добавление команды печати в конфигураторе

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

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

Макет и процедура печати

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

Затем в модуле менеджера документа добавьте функцию печати. Упрощённый пример:

bsl
Функция ПечатьАкта(СсылкаНаДокумент) Экспорт
	Макет = ПолучитьМакет("Акт");
	ТабДок = Новый ТабличныйДокумент;
	ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
	ОбластьШапка.Параметры.НомерДокумента = СсылкаНаДокумент.Номер;
	ТабДок.Вывести(ОбластьШапка);
	Возврат ТабДок;
КонецФункции

Команда и кнопка на форме

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

Как проверить, что кнопка работает правильно

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

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

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

Кнопка в меню «Печать» или на форме
Норма

Кнопка видна у документов нужного вида и активна

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

Кнопки нет — проверьте назначение обработки и права пользователя

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

Номер, дата, контрагент и суммы подставляются из документа

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

Пустые ячейки или имена параметров вместо значений — ошибка в макете или коде

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

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

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

Таблица обрезана — настройте параметры страницы табличного документа

Типичные ошибки и как их избежать

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

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

Типичные ошибки
01
Открытие .epf через «Файл → Открыть» вместо регистрации — кнопка не сохраняется в базе
02
Пустое назначение обработки — форма не видна ни в одном документе
03
Формирование табличного документа на клиенте — ошибка вызова серверных методов в тонком клиенте
04
Доработка рабочей базы без выгрузки .dt — невозможно быстро откатить изменения
05
Изменение типовой формы вместо расширения — конфликты при обновлении конфигурации

Расширения конфигурации как альтернатива доработке

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

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

Сравнение способов добавления кнопки печати

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

Подходит для типовых конфигураций на БСП; не требует изменения кода, но кнопка попадает только в подменю «Печать»

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

Полный контроль над размещением кнопки; требует снятия с поддержки и навыков программирования

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

Сохраняет обновляемость типовой конфигурации; есть ограничения по изменяемым объектам

Частые вопросы

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

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

Почему кнопка появилась, но печатная форма выходит пустой?

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

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

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

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

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

Можно ли вывести кнопку отдельно, а не в подменю «Печать»?

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

Что делать, если при регистрации файла появляется ошибка безопасности?

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

Итог

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

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