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