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