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

Разработка и Конфигурация · 12 мин

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

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

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

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

Ниже разобран полный цикл: от выбора вида внешнего объекта и создания формы в конфигураторе до подключения, проверки результата и типичных ошибок. Материал ориентирован на типовые конфигурации на управляемых формах (УТ 11, ERP, БП 3.0, КА 2), но общие принципы применимы и к обычным формам.

Что такое внешняя форма и когда она нужна

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

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

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

Выбор типа объекта: обработка, отчёт или печатная форма

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

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

Внешняя печатная форма

Подходит для документов и справочников. Требует функцию СведенияОВнешнейОбработке и процедуру Печать. Выводится кнопкой «Печать» в карточке объекта.

Внешний отчёт

Подходит для аналитики на СКД или программном формировании табличного документа. Подключается в раздел отчётов, не привязан к конкретному документу.

Внешняя обработка действий

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

Простое открытие файла

Подходит для разовых задач и отладки: «Файл — Открыть» и выбор .epf/.erf. Не требует регистрации, но форма не появится в интерфейсе постоянно.

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

Создание внешней обработки в конфигураторе

Откройте конфигуратор под пользователем с правами разработчика. Выполните «Файл — Новый» и выберите «Внешняя обработка». Задайте имя и синоним — они будут видны при подключении. Сохраните файл с расширением .epf в рабочий каталог.

Чтобы добавить форму, в дереве объекта перейдите на вкладку «Формы» и нажмите «Добавить». Конструктор предложит создать основную форму обработки. На форму поместите нужные элементы: поля ввода параметров, кнопки, табличное поле результата. Для печатной формы собственная форма диалога часто не нужна — достаточно макета и кода.

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

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

Ниже минимальный каркас модуля внешней печатной формы для конфигураций на БСП:

bsl
Функция СведенияОВнешнейОбработке() Экспорт
  ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
  ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
  ПараметрыРегистрации.Версия = "1.0";
  ПараметрыРегистрации.Назначение.Добавить("Документ.РеализацияТоваровУслуг");
  НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
  НоваяКоманда.Представление = НСтр("ru = 'Моя печатная форма'");
  НоваяКоманда.Идентификатор = "МояПечатнаяФорма";
  НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
  Возврат ПараметрыРегистрации;
КонецФункции

Подключение формы в режиме 1С:Предприятие

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

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

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

Проверка результата и отладка

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

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

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

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

Форма появилась в меню «Печать» документа
Норма

Пункт с заданным представлением виден для нужных видов документов

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

Формы нет — проверьте массив Назначение и вид обработки в СведенияОВнешнейОбработке

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

Параметры выводят значения реквизитов текущего документа

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

Пустые поля или данные другого документа — ошибка в обходе МассивОбъектов

Многостраничная печать
Норма

Области строк и подвала выводятся циклично, итоги корректны

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

Строки обрезаны или дублируется шапка — проверьте порядок вывода областей

Права пользователей
Норма

Форма доступна пользователям с правами на документ

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

Ошибка доступа — проверьте права на дополнительные обработки в профиле группы доступа

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

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

Типичные ошибки
01
Разработка в старой версии платформы: файл, созданный в более новой платформе, не откроется на сервере со старой — соблюдайте совместимость версий
02
Изменение конфигурации вместо внешнего файла: доработка макета прямо в конфигураторе снимает объект с поддержки и ломает обновления
03
Игнорирование безопасного режима: на сервере с включённым профилем безопасности обращения к файловой системе из обработки блокируются
04
Отсутствие версионирования файла: без поля Версия в сведениях сложно понять, какая редакция формы подключена в базе
05
Прямые запросы к данным без проверки прав: обработка выполняется от имени пользователя, и обход RLS в коде приводит к утечке данных

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

Альтернативы внешним формам

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

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

Итог

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

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

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

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

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

Почему внешняя печатная форма не появляется в кнопке «Печать»?

Чаще всего не заполнен массив «Назначение» в сведениях об обработке или назначение не совпадает с видом открытого документа. Также проверьте, что вид обработки указан именно «ПечатнаяФорма», а сама обработка записана и включена в справочнике дополнительных отчётов и обработок.

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

Нет, файл .epf/.erf создаётся только в конфигураторе. Однако пользователь без навыков разработки может в ряде типовых конфигураций отредактировать пользовательский макет печатной формы прямо в режиме 1С:Предприятие — это покрывает простые изменения текста и оформления.

Безопасно ли подключать внешние обработки, найденные в интернете?

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

Что происходит с внешними формами при обновлении конфигурации?

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

Как отладить внешнюю обработку, если точка останова не срабатывает?

В настройках отладки конфигуратора включите автоматическое подключение предметов отладки «Внешние обработки» и перезапустите сеанс. Альтернатива — временно открывать файл через «Файл — Открыть» и вызывать печать из этой копии: тогда отладчик гарантированно остановится в модуле.