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

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

Как создать обработку в 1С: практическое руководство

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

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

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

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

Что понадобится перед началом работы

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

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

Обязательно работайте на копии базы, если обработка изменяет данные. Массовая замена реквизита или удаление объектов без резервной копии — самая частая причина необратимых потерь данных при самостоятельной разработке.

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

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

Сохраните обработку через «Файл → Сохранить как» в отдельную папку — получится файл с расширением .epf. Именно этот файл затем открывается в режиме предприятия. Храните исходники обработок в папке с понятной структурой и версиями: при доработках легко потерять рабочую версию, если файлы лежат в «Загрузках».

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

Создание формы и размещение элементов управления

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

На форму перетаскиваются реквизиты и элементы. Типовой набор для обработки загрузки данных: реквизит «ПутьКФайлу» (строка) с кнопкой выбора файла, реквизит-ссылка на справочник или документ, флажки режимов и командная панель с кнопкой «Выполнить». Каждой кнопке сопоставляется команда формы, а команде — обработчик в модуле формы.

Учитывайте, что в управляемой форме реквизиты типа «ТаблицаЗначений» отображаются пользователю, но их нельзя напрямую передать между клиентом и сервером без преобразования — для передачи используйте параметры обработчиков или временное хранилище. Это частая причина ошибок «Недопустимый тип данных» у начинающих.

Написание кода: модуль формы и модуль объекта

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

Типовая структура кнопки «Выполнить» в управляемой форме выглядит так: клиентская процедура-обработчик вызывает серверную процедуру с директивой &НаСервере, где выполняется запрос к данным и их изменение. Результат возвращается на клиент и выводится пользователю сообщением или в таблицу на форме.

bsl
&НаКлиенте
Процедура ВыполнитьОбработку(Команда)
    ВыполнитьОбработкуНаСервере();
    ПоказатьПредупреждение(, "Обработка завершена");
КонецПроцедуры

&НаСервере
Процедура ВыполнитьОбработкуНаСервере()
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура ГДЕ НЕ ПометкаУдаления";
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        // действия с объектом
    КонецЦикла;
КонецПроцедуры

При изменении объектов базы получайте объект через ПолучитьОбъект(), изменяйте реквизиты и вызывайте Записать(). Работа через объект гарантирует срабатывание проверок и подписок на события, заложенных в конфигурации. Прямая запись через наборы записей или запросы типа «ИЗМЕНИТЬ» обходит эти механизмы и допустима только при полном понимании последствий.

Открытие и подключение обработки в режиме предприятия

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

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

Способы запуска обработки

Открытие файла .epf вручную

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

Дополнительные отчеты и обработки (БСП)

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

Встроенная обработка в конфигурации

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

Проверка работы и отладка

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

Проверяйте результат на контрольных примерах: выберите 2–3 объекта, запомните их состояние до запуска, выполните обработку и сравните после. Для обработок, изменяющих данные, полезно сначала выводить список объектов, которые будут затронуты, в режиме «только просмотр» — это стандартная практика безопасной разработки.

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

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

Обработка открывается в режиме предприятия
Норма

Форма отображается, ошибок при открытии нет

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

Ошибка компиляции модуля или «внешние обработки запрещены»

Выполнение основной команды
Норма

Команда завершается без исключений, данные изменились как ожидалось

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

Ошибка «поле не обнаружено», обращение к данным с клиента, пустой результат

Повторный запуск
Норма

Повторный запуск не создаёт дублей и не портит данные

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

Каждый запуск дублирует записи или строки табличных частей

Типичные ошибки при создании обработок

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

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

Типичные ошибки
01
Выполнение запроса в клиентской процедуре управляемой формы — ошибка компиляции или «метод не обнаружен». Переносите работу с данными в серверные процедуры
02
Запуск обработки, изменяющей данные, сразу в рабочей базе без теста на копии — риск необратимой порчи данных
03
Отсутствие функции СведенияОВнешнейОбработке при подключении через БСП — обработка не регистрируется или регистрируется с ошибкой
04
Изменение одного файла .epf несколькими разработчиками без контроля версий — потеря доработок и конфликтующие копии

Частые вопросы о создании обработок в 1С

Чем обработка отличается от отчёта?

Назначением: отчёт формирует и выводит данные, обработка выполняет действия. Технически внешний отчёт хранится в файле .erf, обработка — в .epf. В остальном механика создания почти одинакова: формы, макеты, модули работают одинаково.

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

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

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

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

Как сделать обработку выполняемой по расписанию?

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

Будет ли обработка работать в другой конфигурации?

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

Как передать обработку другому пользователю?

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

Итог

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

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