Разработка и Конфигурация · 13 мин
Как создать внешнюю форму в 1С: пошаговое руководство
Как создать внешнюю форму в 1С: создание внешней обработки, добавление формы, подключение через «Дополнительные отчеты и обработки», типичные ошибки и проверка результата.
Внешняя форма в 1С — это форма, которая не хранится внутри конфигурации, а подключается из отдельного файла. Чаще всего она создаётся как часть внешней обработки или внешнего отчёта (файл с расширением .epf или .erf), но может выступать и как самостоятельный объект. Такой подход позволяет доработать типовую конфигурацию без её изменения, что критично для баз, находящихся на полной поддержке поставщика.
Типовой сценарий выглядит так: бухгалтеру нужна нестандартная печатная форма, а менеджеру — обработка для массового изменения цен. Изменять конфигурацию ради этого нельзя, иначе пропадёт автоматическое обновление. Выход — внешняя обработка с собственной формой, которую пользователь открывает через меню «Файл → Открыть» или которая подключается через механизм «Дополнительные отчеты и обработки» (БСП).
Ниже разобран полный цикл: от создания файла обработки в конфигураторе до подключения её в пользовательском режиме, с проверкой результата и разбором ошибок, которые встречаются чаще всего.
Что такое внешняя форма и когда она нужна
Внешняя форма — это интерфейсный объект (окно с полями, кнопками, таблицами), который хранится вне основной конфигурации. В подавляющем большинстве случаев форма создаётся внутри внешней обработки или внешнего отчёта, потому что «голая» форма без объекта-владельца в платформе 1С не существует как отдельный файл.
Типовые задачи, для которых применяют внешние формы:
- нестандартные печатные формы документов без изменения конфигурации;
- обработки для массовых операций: загрузка данных из Excel, групповое изменение реквизитов, заполнение табличных частей;
- диалоги с пользователем: выбор параметров перед выполнением операции;
- тестовые и сервисные инструменты разработчика, которые не должны попадать в конфигурацию.
Важно понимать ограничение: внешняя обработка работает в контексте текущей информационной базы и имеет доступ к её данным, но не может добавлять новые объекты метаданных (справочники, документы, регистры). Если задача требует новых объектов — нужна доработка конфигурации или расширение.
Подготовка: что проверить перед началом работы
Перед созданием внешней формы убедитесь, что у вас есть необходимый доступ и инструменты:
- установленная платформа 1С:Предприятие той же версии (или совместимой), что и у рабочей базы;
- право запуска конфигуратора и право открытия внешних обработок в пользовательском режиме;
- понимание режима работы: файловая база или клиент-серверная — от этого зависят нюансы тестирования;
- режим совместимости конфигурации — он определяет, какие возможности платформы доступны в коде.
Если конфигурация работает в режиме «Управляемое приложение» (так устроены все современные типовые решения — «Бухгалтерия предприятия», «Управление торговлей», «Зарплата и управление персоналом»), форму нужно создавать именно как управляемую. Обычная форма в таком приложении просто не откроется у пользователя.
Создание внешней обработки в конфигураторе
Запустите конфигуратор. Открывать конфигурацию рабочей базы для создания внешней обработки не обязательно — можно работать с пустой базой, но удобнее открыть целевую, чтобы видеть структуру метаданных (имена документов, справочников, реквизитов) при написании кода.
Порядок создания файла:
- В главном меню выберите «Файл → Новый» (или Ctrl+N).
- В списке типов документов выберите «Внешняя обработка» и нажмите «ОК».
- Откроется окно редактирования объекта: задайте имя обработки (например,
ЗагрузкаЦенИзExcel) и синоним — понятное название для пользователя. - Сохраните файл: «Файл → Сохранить как», укажите папку и имя файла. Получится файл с расширением .epf.
- 1Откройте конфигуратор и выберите «Файл → Новый»
- 2Выберите тип «Внешняя обработка» и подтвердите
- 3Задайте имя и синоним обработки
- 4Сохраните файл .epf в рабочую папку
- 5Добавьте форму (см. следующий раздел)
На этом этапе обработка существует, но не имеет интерфейса. При открытии в режиме 1С:Предприятие она ничего не покажет пользователю, пока не будет создана и назначена основная форма.
Добавление и настройка формы обработки
Форма добавляется в дереве объекта обработки. В окне редактирования внешней обработки перейдите на вкладку «Формы» (или найдите ветку «Формы» в дереве объекта) и нажмите кнопку добавления (значок «+» или пункт «Добавить» контекстного меню).
Откроется конструктор формы. Для управляемого приложения достаточно указать имя формы (например, ФормаОбработки) и оставить настройки по умолчанию. После нажатия «Готово» откроется редактор управляемой формы с двумя основными областями: дерево элементов формы слева и список реквизитов/команд справа.
Элементы, реквизиты и команды формы
Логика управляемой формы строится на трёх составляющих:
- Реквизиты формы — данные, которые форма хранит и отображает (строки, даты, ссылки на справочники, таблицы значений);
- Элементы формы — визуальные компоненты: поля ввода, кнопки, таблицы, надписи, связанные с реквизитами;
- Команды формы — действия, привязанные к кнопкам, с обработчиками в модуле формы.
Типовая последовательность: сначала создайте реквизит (например, ПутьКФайлу типа «Строка»), затем перетащите его из панели реквизитов в дерево элементов — платформа автоматически создаст поле ввода. Для кнопки создайте команду (например, Загрузить), перетащите её в командную панель формы и напишите обработчик.
&НаКлиенте
Процедура Загрузить(Команда)
Если ПустаяСтрока(ПутьКФайлу) Тогда
Сообщить("Укажите путь к файлу");
Возврат;
КонецЕсли;
ЗагрузитьНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗагрузитьНаСервере()
// Серверная логика обработки данных
КонецПроцедурыОбратите внимание на директивы компиляции &НаКлиенте и &НаСервере. В управляемой форме код делится между клиентом и сервером: работа с файловой системой пользователя — на клиенте, запросы к данным базы — на сервере. Прямой вызов серверных объектов из клиентского контекста вызовет ошибку.
Назначение основной формы обработки
Чтобы форма открывалась при запуске обработки, её нужно назначить основной. В окне редактирования внешней обработки на закладке «Общие» (или в палитре свойств объекта) найдите свойство «Основная форма» и выберите созданную форму из списка. Если этого не сделать, при открытии обработки пользователь увидит стандартную пустую форму или ошибку.
Открытие и проверка в режиме 1С:Предприятие
Самый быстрый способ проверить форму — запустить целевую базу в режиме 1С:Предприятие и открыть файл через меню «Файл → Открыть» (Ctrl+O), указав сохранённый .epf. Если форма назначена основной, она откроется сразу.
Как проверить результат
Форма открывается без сообщений об ошибках, элементы отображаются
Ошибка «Форма не найдена» или пустое окно — не назначена основная форма
Нажатие выполняет обработчик, сообщения выводятся
Ошибка «Процедура не обнаружена» — имя обработчика не совпадает с командой
Записанные тестовые данные корректны и отменяемы
Данные записались частично или с неверными значениями — проверяйте на копии базы
Если при открытии появляется сообщение о нарушении прав доступа — у текущего пользователя нет права «Интерактивное открытие внешних обработок». Это типично для рядовых пользователей в настроенных конфигурациях; выдайте право в настройках ролей или подключите обработку штатным механизмом (см. следующий раздел).
Подключение через «Дополнительные отчеты и обработки»
В типовых конфигурациях на базе Библиотеки стандартных подсистем (БСП) внешние обработки подключаются централизованно: администратор загружает файл один раз, и он становится доступен пользователям из интерфейса программы без права открывать произвольные файлы.
Порядок подключения:
- Откройте раздел «Администрирование → Печатные формы, отчеты и обработки» и включите флажок «Дополнительные отчеты и обработки».
- Перейдите по ссылке «Дополнительные отчеты и обработки» и нажмите «Создать».
- Укажите файл обработки. Если обработка содержит модуль регистрации (функция
СведенияОВнешнейОбработке()), параметры заполнятся автоматически. - Настройте размещение (в каких разделах показывать команду) и права доступа, запишите элемент.
Для автоматической регистрации в модуле объекта обработки должна быть экспортная функция СведенияОВнешнейОбработке(), возвращающая структуру с видом обработки, версией, назначением и таблицей команд. Без неё обработку придётся регистрировать вручную, и не все виды (например, дополнительные печатные формы) будут работать корректно.
Типичные ошибки и их решение
Отдельно стоит упомянуть проблему совместимости версий платформы. Обработка, сохранённая в более новой версии платформы, может не открыться в старой. Старайтесь разрабатывать в версии платформы, не новее той, что используется на рабочих базах.
Удобный приём при отладке: держите конфигуратор и режим предприятия открытыми одновременно. После правки формы сохраните файл в конфигураторе, а в режиме предприятия просто закройте и заново откройте обработку — перезапускать всю базу не нужно. Это заметно ускоряет итерации разработки.
Альтернативы внешней обработке
Внешняя обработка — не единственный способ добавить интерфейс без изменения конфигурации. В зависимости от задачи рассмотрите варианты:
Сравнение вариантов
Подходит для разовых операций, сервисных инструментов и дополнительных функций. Ограничение: не хранится в конфигурации, обновляется вручную на каждой базе
Подходит, когда нужно изменить поведение типовых форм и объектов, не снимая конфигурацию с поддержки. Ограничение: требует совместимости с режимом расширений и более аккуратной разработки
Подходит для задач формирования и вывода данных на базе СКД. Ограничение: ориентирован на отчётность, а не на интерактивные операции
Как выбрать действие
Если конфигурация не типовая и активно дорабатывается собственными силами, иногда проще встроить форму прямо в конфигурацию. Но для баз на поддержке внешняя обработка остаётся самым безопасным путём: она не влияет на обновление и легко удаляется.
Что важно запомнить
Внешняя форма создаётся внутри внешней обработки: «Файл → Новый → Внешняя обработка», добавление управляемой формы, назначение её основной. Проверка — через «Файл → Открыть» в режиме предприятия, постоянное использование — через «Дополнительные отчеты и обработки». Всегда тестируйте обработки, изменяющие данные, на копии базы.
Часто задаваемые вопросы
Можно ли создать внешнюю форму без конфигуратора?
Нет. Формы и модули внешних обработок создаются только в конфигураторе. В режиме 1С:Предприятие можно лишь открывать и подключать готовые файлы. Альтернатива для разработки — среда 1C:Enterprise Development Tools (EDT) на базе Eclipse, но итоговый файл всё равно собирается как .epf.
Почему обработка открывается у администратора, но не у пользователя?
У пользователя нет права «Интерактивное открытие внешних отчетов и обработок» в его роли. Либо выдайте это право, либо (предпочтительно) подключите обработку через справочник «Дополнительные отчеты и обработки» — тогда она запускается штатной командой и не требует права открытия произвольных файлов.
Чем внешняя обработка отличается от расширения конфигурации?
Внешняя обработка — отдельный файл, который запускается по команде и не меняет конфигурацию. Расширение подключается к конфигурации и может изменять типовые формы, модули и роли. Обработка проще и безопаснее для разовых задач; расширение — когда нужно встроиться в стандартные механизмы программы.
Обработка работает на тестовой базе, а на рабочей выдаёт ошибку. В чём причина?
Чаще всего — различия в версиях конфигурации или платформы: на рабочей базе может отсутствовать реквизит, к которому обращается код, или версия платформы старше. Также проверьте права пользователя и различия в данных (например, код рассчитывает на заполненный справочник, который на рабочей базе пуст).
Можно ли защитить код внешней обработки от просмотра?
Да, при сохранении обработки можно поставить пароль на модуль: в конфигураторе «Действия → Поставить пароль» (или через свойства при сохранении). Однако такая защита не считается надёжной — существуют инструменты снятия пароля. Критичную логику лучше выносить на серверную сторону или в защищённые компоненты.
Как обновить внешнюю обработку у всех пользователей?
Если обработка открывается через «Файл → Открыть», файл нужно раздать заново или положить в общую сетевую папку с корректными правами. Если она подключена через «Дополнительные отчеты и обработки», достаточно открыть элемент справочника, загрузить новую версию файла и записать — обновление применится для всех пользователей автоматически.