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