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