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