Документы и Печать · 10 мин
Как добавить кнопку печати в 1С
Как добавить кнопку печати в 1С: через внешние печатные формы, механизм «Дополнительные отчеты и обработки» и изменение конфигурации. Пошаговые инструкции и ошибки.
Кнопка печати в 1С появляется в документах и справочниках автоматически, если для объекта зарегистрирована хотя бы одна печатная форма. Когда нужной формы нет — например, требуется нестандартная накладная или договор с фирменным шаблоном — кнопку приходится добавлять вручную. Сделать это можно двумя принципиально разными способами: без изменения конфигурации через подключение внешней печатной формы либо доработкой конфигурации в конфигураторе.
Выбор способа зависит от того, какая у вас конфигурация и есть ли навыки программирования на встроенном языке 1С. Типовые конфигурации на базе Библиотеки стандартных подсистем (Управление торговлей, Бухгалтерия предприятия, ERP, Зарплата и управление персоналом) поддерживают внешние печатные формы «из коробки» — это безопасный путь, не требующий снятия конфигурации с поддержки. Самописные и сильно доработанные решения часто требуют прямого вмешательства в код.
Ниже разобраны оба подхода: от проверки возможностей вашей конфигурации до регистрации кнопки и проверки результата. Отдельно описаны типичные ошибки, из-за которых кнопка не появляется или печатная форма выводится пустой.
Определите, какой способ подходит вашей конфигурации
Прежде чем что-то менять, откройте раздел «Администрирование» и найдите пункт «Печатные формы, отчеты и обработки». Если там есть флажок «Дополнительные отчеты и обработки» — конфигурация построена на БСП, и вам подходит способ с внешней печатной формой без изменения кода. Включите этот флажок, если он снят: без него механизм регистрации внешних форм не работает.
Если такого пункта нет, конфигурация либо самописная, либо построена на старых подходах. В этом случае остаются два варианта: доработка в конфигураторе (добавление команды в форму документа и процедуры формирования табличного документа) или встраивание подсистемы БСП, что оправдано только при большом объёме доработок. Для одиночной кнопки проще добавить команду напрямую.
Как выбрать действие
Способ 1: кнопка печати через внешнюю печатную форму
Внешняя печатная форма — это файл с расширением .epf, который содержит макет и код формирования табличного документа. Чтобы 1С приняла такой файл, в его модуле объекта должна быть экспортная функция СведенияОВнешнейОбработке(), возвращающая структуру с описанием: вид обработки «ПечатнаяФорма», перечень назначений (к каким документам привязана) и таблица команд с идентификаторами и представлениями кнопок.
После регистрации файла кнопка появляется в меню «Печать» формы документа, а также в списке документов при выделении строк. Отдельную кнопку на командную панель формы этот механизм не выводит — все внешние формы группируются в подменю «Печать», и это нормальное поведение БСП.
- 1Включите флажок «Дополнительные отчеты и обработки» в разделе «Администрирование» → «Печатные формы, отчеты и обработки»
- 2Перейдите по ссылке «Дополнительные отчеты и обработки» и нажмите «Добавить из файла»
- 3Выберите файл .epf и подтвердите предупреждение безопасности
- 4В карточке обработки проверьте таблицу «Назначение»: там должен быть нужный вид документа
- 5Нажмите «Записать и закрыть», откройте документ и проверьте меню «Печать»
Если в карточке обработки список назначений пуст, форма не будет видна ни в одном документе. Назначения можно дополнить вручную кнопкой «Добавить», но только если разработчик формы предусмотрел такую возможность — иначе файл нужно доработать, добавив документ в массив назначений в функции СведенияОВнешнейОбработке().
Способ 2: добавление команды печати в конфигураторе
Когда внешние механизмы недоступны, команду добавляют напрямую. Для этого конфигурацию нужно снять с полной поддержки (или включить возможность изменений), поэтому предварительно сделайте выгрузку информационной базы через «Администрирование» → «Выгрузить информационную базу».
Общая схема такова: в модуле менеджера документа создаётся процедура, которая формирует табличный документ по макету; в форме документа добавляется команда и кнопка на командную панель; обработчик команды вызывает формирование печатной формы и выводит результат через Показать() или коллекцию печатных форм.
Макет и процедура печати
Сначала в дереве конфигурации у документа создайте макет типа «Табличный документ» и разметьте области: шапка, строка табличной части, подвал. В ячейках укажите параметры (например, [НомерДокумента] через свойство «Заполнение» — «Параметр»), которые код будет заполнять данными.
Затем в модуле менеджера документа добавьте функцию печати. Упрощённый пример:
Функция ПечатьАкта(СсылкаНаДокумент) Экспорт
Макет = ПолучитьМакет("Акт");
ТабДок = Новый ТабличныйДокумент;
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.НомерДокумента = СсылкаНаДокумент.Номер;
ТабДок.Вывести(ОбластьШапка);
Возврат ТабДок;
КонецФункцииКоманда и кнопка на форме
Откройте форму документа, на закладке «Команды» добавьте команду, например ПечатьАкта, с обработчиком на клиенте. В обработчике вызовите серверную процедуру, получите табличный документ и покажите его пользователю. После этого перетащите команду на командную панель формы — появится видимая кнопка. Обновите конфигурацию базы данных (F7) и проверьте результат в режиме предприятия.
Как проверить, что кнопка работает правильно
После добавления кнопки проверьте не только её наличие, но и корректность самой печатной формы. Откройте проведённый документ с заполненной табличной частью, нажмите кнопку и убедитесь, что все поля заполнены реальными данными, а не пустыми параметрами. Затем проверьте форму на документе с минимальным набором данных — частые дефекты (обрезанные строки, пустые области) проявляются именно на «коротких» документах.
Как проверить результат
Кнопка видна у документов нужного вида и активна
Кнопки нет — проверьте назначение обработки и права пользователя
Номер, дата, контрагент и суммы подставляются из документа
Пустые ячейки или имена параметров вместо значений — ошибка в макете или коде
Форма помещается на страницу, ориентация и поля корректны
Таблица обрезана — настройте параметры страницы табличного документа
Типичные ошибки и как их избежать
Самая частая ситуация — зарегистрированная внешняя форма не появляется в документе. Причины почти всегда одни и те же: не указано назначение в сведениях обработки, выключен механизм дополнительных отчетов и обработок, у пользователя нет права «Использование дополнительных отчетов и обработок», либо файл открыт через «Файл → Открыть» вместо регистрации в базе. Разовое открытие файла работает только в текущем сеансе и кнопку в документе не создаёт.
Вторая группа ошибок относится к доработке конфигурации: кнопка добавлена на форму, но обработчик вызывает несуществующую процедуру, или формирование табличного документа выполняется на клиенте с обращением к серверным данным. В тонком клиенте такой код завершится ошибкой. Выносите получение данных и построение табличного документа в серверную процедуру, а на клиенте оставляйте только вызов и показ результата.
Расширения конфигурации как альтернатива доработке
Если конфигурация типовая и важно сохранить простое обновление, добавляйте кнопку через расширение конфигурации. Расширение позволяет заимствовать форму документа, добавить в неё команду и кнопку, не изменяя основную конфигурацию. При обновлении типового релиза расширение не конфликтует с обновляемыми объектами, а при проблемах его можно просто отключить.
Порядок действий: «Конфигурация» → «Расширения конфигурации» → «Создать», затем добавьте в расширение форму нужного документа, создайте команду и обработчик по той же логике, что и при обычной доработке. Учтите ограничение: в расширениях есть рамки по изменению ролей и некоторых объектов, поэтому сложные сценарии иногда всё же требуют доработки основной конфигурации.
Сравнение способов добавления кнопки печати
Подходит для типовых конфигураций на БСП; не требует изменения кода, но кнопка попадает только в подменю «Печать»
Полный контроль над размещением кнопки; требует снятия с поддержки и навыков программирования
Сохраняет обновляемость типовой конфигурации; есть ограничения по изменяемым объектам
Частые вопросы
Можно ли добавить кнопку печати без доступа к конфигуратору?
Да, если конфигурация поддерживает механизм «Дополнительные отчеты и обработки». Достаточно прав администратора в режиме предприятия и готового файла внешней печатной формы .epf. Сам файл придётся заказать у разработчика или найти готовый под вашу конфигурацию.
Почему кнопка появилась, но печатная форма выходит пустой?
Чаще всего параметры макета не совпадают по именам с параметрами, которые заполняет код, либо процедура получает данные из непроведённого документа. Проверьте имена параметров в макете и в коде посимвольно и тестируйте на проведённом документе с заполненными реквизитами.
Как добавить кнопку печати сразу в список документов, а не в карточку?
В механизме БСП внешние печатные формы автоматически доступны и в списке: выделите строки и откройте меню «Печать». При доработке в конфигураторе команду нужно добавить в форму списка документа отдельно, с обработкой массива выделенных ссылок.
Пропадёт ли добавленная кнопка после обновления конфигурации?
Внешние печатные формы и кнопки, добавленные через расширение, обновление не затрагивает. Кнопки, внесённые прямым изменением типовой формы, могут пропасть или вызвать конфликт при обновлении — поэтому для типовых конфигураций предпочтительны первые два способа.
Можно ли вывести кнопку отдельно, а не в подменю «Печать»?
Штатный механизм внешних форм группирует все кнопки в подменю. Отдельную кнопку на командную панель можно вывести только доработкой формы — напрямую или через расширение конфигурации.
Что делать, если при регистрации файла появляется ошибка безопасности?
1С предупреждает о запуске внешнего кода — это нормально, но открывайте только файлы из доверенных источников: обработка получает доступ к данным базы. Если загрузка блокируется полностью, проверьте, не включён ли запрет в настройках профиля безопасности кластера или в параметрах подсистемы.
Что важно запомнить
В типовых конфигурациях кнопку печати добавляют регистрацией внешней печатной формы через «Дополнительные отчеты и обработки» — без изменения кода. Для самописных решений команду создают в конфигураторе, а для типовых с перспективой обновлений — через расширение. Перед любой доработкой делайте выгрузку базы и тестируйте печатную форму на реальных проведённых документах.