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

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

Как создать внешнюю форму в 1С: пошаговое руководство

Как создать внешнюю форму в 1С: создание внешней обработки, добавление формы, подключение через «Дополнительные отчеты и обработки», типичные ошибки и проверка результата.

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

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

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

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

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

Типовые задачи, для которых применяют внешние формы:

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

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

Подготовка: что проверить перед началом работы

Перед созданием внешней формы убедитесь, что у вас есть необходимый доступ и инструменты:

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

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

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

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

Порядок создания файла:

  1. В главном меню выберите «Файл → Новый» (или Ctrl+N).
  2. В списке типов документов выберите «Внешняя обработка» и нажмите «ОК».
  3. Откроется окно редактирования объекта: задайте имя обработки (например, ЗагрузкаЦенИзExcel) и синоним — понятное название для пользователя.
  4. Сохраните файл: «Файл → Сохранить как», укажите папку и имя файла. Получится файл с расширением .epf.
Порядок создания внешней обработки
  1. 1
    Откройте конфигуратор и выберите «Файл → Новый»
  2. 2
    Выберите тип «Внешняя обработка» и подтвердите
  3. 3
    Задайте имя и синоним обработки
  4. 4
    Сохраните файл .epf в рабочую папку
  5. 5
    Добавьте форму (см. следующий раздел)

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

Добавление и настройка формы обработки

Форма добавляется в дереве объекта обработки. В окне редактирования внешней обработки перейдите на вкладку «Формы» (или найдите ветку «Формы» в дереве объекта) и нажмите кнопку добавления (значок «+» или пункт «Добавить» контекстного меню).

Откроется конструктор формы. Для управляемого приложения достаточно указать имя формы (например, ФормаОбработки) и оставить настройки по умолчанию. После нажатия «Готово» откроется редактор управляемой формы с двумя основными областями: дерево элементов формы слева и список реквизитов/команд справа.

Элементы, реквизиты и команды формы

Логика управляемой формы строится на трёх составляющих:

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

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

bsl
&НаКлиенте
Процедура Загрузить(Команда)
	Если ПустаяСтрока(ПутьКФайлу) Тогда
		Сообщить("Укажите путь к файлу");
		Возврат;
	КонецЕсли;
	ЗагрузитьНаСервере();
КонецПроцедуры

&НаСервере
Процедура ЗагрузитьНаСервере()
	// Серверная логика обработки данных
КонецПроцедуры

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

Назначение основной формы обработки

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

Открытие и проверка в режиме 1С:Предприятие

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

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

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

Открытие обработки
Норма

Форма открывается без сообщений об ошибках, элементы отображаются

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

Ошибка «Форма не найдена» или пустое окно — не назначена основная форма

Кнопки и команды
Норма

Нажатие выполняет обработчик, сообщения выводятся

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

Ошибка «Процедура не обнаружена» — имя обработчика не совпадает с командой

Работа с данными
Норма

Записанные тестовые данные корректны и отменяемы

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

Данные записались частично или с неверными значениями — проверяйте на копии базы

Если при открытии появляется сообщение о нарушении прав доступа — у текущего пользователя нет права «Интерактивное открытие внешних обработок». Это типично для рядовых пользователей в настроенных конфигурациях; выдайте право в настройках ролей или подключите обработку штатным механизмом (см. следующий раздел).

Подключение через «Дополнительные отчеты и обработки»

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

Порядок подключения:

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

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

Типичные ошибки и их решение

Типичные ошибки
01
Создана обычная форма вместо управляемой — в управляемом приложении она не откроется; пересоздайте форму с типом «Управляемая форма»
02
Не назначена основная форма обработки — при открытии пустое окно или ошибка; укажите форму в свойстве «Основная форма»
03
Серверный код в клиентском контексте — ошибка компиляции или выполнения; разделите логику директивами &НаКлиенте и &НаСервере
04
Обращение к реквизитам, которых нет в конфигурации, — обработка писалась под другую конфигурацию; сверьте имена объектов метаданных
05
Тестирование на рабочей базе без копии — ошибка в коде массовой обработки испортила реальные данные
06
Нет функции СведенияОВнешнейОбработке при подключении через БСП — регистрация не заполняется, команды не появляются в интерфейсе

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

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

Альтернативы внешней обработке

Внешняя обработка — не единственный способ добавить интерфейс без изменения конфигурации. В зависимости от задачи рассмотрите варианты:

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

Внешняя обработка (.epf)

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

Расширение конфигурации

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

Внешний отчёт (.erf)

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

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

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

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

Если конфигурация не типовая и активно дорабатывается собственными силами, иногда проще встроить форму прямо в конфигурацию. Но для баз на поддержке внешняя обработка остаётся самым безопасным путём: она не влияет на обновление и легко удаляется.

Итог

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

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

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

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

Нет. Формы и модули внешних обработок создаются только в конфигураторе. В режиме 1С:Предприятие можно лишь открывать и подключать готовые файлы. Альтернатива для разработки — среда 1C:Enterprise Development Tools (EDT) на базе Eclipse, но итоговый файл всё равно собирается как .epf.

Почему обработка открывается у администратора, но не у пользователя?

У пользователя нет права «Интерактивное открытие внешних отчетов и обработок» в его роли. Либо выдайте это право, либо (предпочтительно) подключите обработку через справочник «Дополнительные отчеты и обработки» — тогда она запускается штатной командой и не требует права открытия произвольных файлов.

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

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

Обработка работает на тестовой базе, а на рабочей выдаёт ошибку. В чём причина?

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

Можно ли защитить код внешней обработки от просмотра?

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

Как обновить внешнюю обработку у всех пользователей?

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