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

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

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

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

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

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

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

Как устроен механизм печати в 1С 8.3

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

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

Способ 1: подключить внешнюю печатную форму без изменения конфигурации

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

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

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

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

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

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

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

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

bsl
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "МойАкт";
	КомандаПечати.Представление = НСтр("ru = 'Акт (своя форма)'");
	КомандаПечати.Порядок = 10;
КонецПроцедуры

После внесения изменений обновите конфигурацию базы данных (F7) и проверьте результат в режиме предприятия. Если команда не появилась, убедитесь, что процедура объявлена с ключевым словом Экспорт и что объект включен в подсистему печати — в типовых конфигурациях это настраивается в общем модуле УправлениеПечатьюПереопределяемый или автоматически по наличию процедур в менеджере.

Способ 3: произвольная команда на форме документа

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

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

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

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

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

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

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

Команда на форме

Для точечных задач — отдельная кнопка с особым поведением. Не попадает в общее меню «Печать», код привязан к конкретной форме.

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

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

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

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

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

Наличие команды в меню «Печать»
Норма

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

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

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

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

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

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

Пустые области или ошибка «Поле не найдено» — ошибка в параметрах макета

Печать нескольких документов
Норма

Формируются формы по каждому выделенному документу

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

Печатается только один документ или возникает ошибка

Типичные ошибки и ограничения

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

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

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

Как выбрать подходящий вариант

Критерий выбора простой: если конфигурация типовая и находится на поддержке — используйте только внешние печатные формы. Это сохранит простое обновление и не потребует участия разработчика при каждом релизе. Готовые внешние формы часто поставляются партнёрами или разрабатываются под конкретную задачу за один-два дня.

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

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

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

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

Часто задаваемые вопросы

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

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

Почему команда «Печать» есть, а нужной формы в списке нет?

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

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

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

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

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

Можно ли вывести команду печати кнопкой на форму, а не в подменю?

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

Что делать, если при печати возникает ошибка «Метод объекта не обнаружен»?

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

Итог

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

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