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

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

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

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

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

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

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

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

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

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

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

Как выбрать способ

Конфигурация типовая, на поддержке, обновляется регулярноИспользуйте внешнюю печатную форму через «Дополнительные отчеты и обработки»
Конфигурация собственная или снята с поддержкиДобавляйте команду в конфигураторе: макет + команда + обработчик
Нет доступа к конфигураторуТолько внешняя печатная форма — попросите разработчика подготовить файл .epf
Печатная форма нужна разово, одному пользователюПроще сформировать печать через конструктор или универсальную обработку, без добавления команды

Добавление команды печати через конфигуратор

Откройте конфигуратор, найдите нужный объект (например, документ «РеализацияТоваров») и раскройте его ветку. Порядок работы такой: сначала создаётся макет печатной формы, затем команда, затем код, который заполняет макет данными и выводит результат.

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

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

bsl
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати) Экспорт

    ТабДок = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("МакетПечати");
    Шапка = Макет.ПолучитьОбласть("Шапка");

    Для Каждого Ссылка Из МассивОбъектов Цикл
        Шапка.Параметры.НомерДокумента = Ссылка.Номер;
        Шапка.Параметры.ДатаДокумента = Ссылка.Дата;
        ТабДок.Вывести(Шапка);
    КонецЦикла;

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

КонецПроцедуры

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

Добавление печатной формы без изменения конфигурации

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

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

После сохранения откройте документ нужного вида и проверьте меню «Печать» — там должна появиться новая команда. Если её нет, проверьте размещение обработки и права текущего пользователя.

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

Настройка прав и видимости команды

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

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

Проверка результата и типичные ошибки

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

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

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

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

Команда видна у всех пользователей с нужными правами

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

Кнопки нет — проверяйте размещение обработки или вывод команды на форму

Заполнение макета
Норма

Все параметры подставлены, нет пустых квадратных скобок

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

Видны [ИмяПараметра] — имя параметра в коде не совпадает с макетом

Формирование без ошибок
Норма

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

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

Ошибка «Метод не обнаружен» — проверьте модуль менеджера и экспортность процедуры

Повторное формирование
Норма

Для нескольких документов формируются отдельные листы

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

Данные документов накладываются друг на друга — не очищается табличный документ

Типичные ошибки
01
Несовпадение имён параметров в макете и в коде — вместо значений выводятся пустые поля или текст в скобках
02
Процедура печати объявлена без ключевого слова «Экспорт» — команда не может её вызвать
03
Команда создана, но не выведена на форму — пользователи её просто не видят
04
Внешняя форма загружена, но не указано размещение — команда не появляется ни в одном документе
05
Доработка типового модуля вместо внешней формы — конфликты при обновлении конфигурации

Ограничения и альтернативные варианты

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

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

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

Команда в конфигураторе

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

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

Не меняет конфигурацию, безопасна для обновлений; требует разработки файла и настройки прав на дополнительные обработки

Отчет на СКД

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

Конструктор печати

Быстрый старт для новой формы; создаёт только заготовку, логику заполнения всё равно нужно дорабатывать вручную

Итог

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

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

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

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

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

Почему команда печати видна администратору, но не видна менеджеру?

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

Внешняя печатная форма пропала после обновления конфигурации. Что делать?

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

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

В обработчике команды параметр приходит как массив ссылок. Организуйте цикл по этому массиву: для каждого документа получайте области макета, заполняйте параметры и выводите в общий табличный документ, между документами вставляя разрыв страницы методом ВывестиГоризонтальныйРазделительСтраниц.

Ошибка «Поле объекта не обнаружено» при формировании печати — в чём причина?

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

Можно ли добавить кнопку печати прямо на форму документа, а не в меню «Печать»?

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