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

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

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

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

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

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

Какие бывают обработки и что выбрать

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

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

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

Как выбрать вариант

Нужно один раз выполнить действие над даннымиСделайте простую внешнюю обработку с кнопкой и запускайте через Файл → Открыть
Обработкой будут пользоваться постоянно несколько сотрудниковПодключите её через подсистему дополнительных отчётов и обработок (БСП) с настройкой прав
Функционал нужен постоянно и тесно связан с конфигурациейРассмотрите встраивание в конфигурацию или расширение вместо внешней обработки

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

Откройте конфигуратор базы, для которой пишется обработка. В меню выберите «Файл → Новый» и в списке типов документов укажите «Внешняя обработка». Конфигуратор создаст пустой объект с модулем объекта и возможностью добавить формы, макеты и реквизиты.

Сразу задайте имя обработки без пробелов и русских символов в имени объекта метаданных — это упростит обращение из кода. Синоним (отображаемое название) можно писать по-русски, он будет виден пользователям при подключении через механизм дополнительных обработок.

Сохраните заготовку через «Файл → Сохранить как» в отдельный каталог проекта. Работайте с копией файла, если обработка уже используется в рабочей базе: случайное сохранение недоделанной версии может прервать работу пользователей.

Проектирование формы и реквизитов

Форма создаётся в дереве обработки: правый клик по объекту → «Добавить форму». В конструкторе формы добавьте реквизиты, которые будут хранить введённые пользователем значения: период отбора, ссылку на организацию, путь к файлу загрузки. Реквизиты формы перетаскиваются в дерево элементов, где для них настраиваются вид поля, заголовок и обязательность.

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

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

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

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

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

Для массовых изменений получайте объект через ПолучитьОбъект(), меняйте реквизиты и вызывайте Записать(). Учитывайте, что запись объекта запускает все обработчики подписок и проверки конфигурации — на больших объёмах это существенно влияет на скорость.

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

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

Проверяйте результат на копии базы или на тестовом контуре. После выполнения обработки убедитесь, что изменилось ожидаемое количество объектов, движения документов корректны, а связанные отчёты не «развалились».

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

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

Количество обработанных объектов
Норма

Совпадает с числом в выборке отбора

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

Меньше или больше — есть ошибки записи или лишние строки

Поведение при ошибке
Норма

Транзакция откатывается, данные не меняются

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

Часть объектов изменена, часть нет

Права пользователя
Норма

Обработка работает под целевой ролью

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

Ошибки доступа у обычных пользователей

Подключение обработки к рабочей базе

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

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

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

Типичные ошибки
01
Запись данных вне транзакции — при сбое база остаётся в несогласованном состоянии
02
Код, завязанный на толстый клиент, — обработка не работает у пользователей тонкого или веб-клиента
03
Обращение к реквизитам, которых нет в конкретной конфигурации, — ошибка при переносе обработки в другую базу
04
Отсутствие функции СведенияОВнешнейОбработке — файл не загружается в справочник дополнительных обработок
05
Изменение данных напрямую запросом в обход объектной модели — пропускаются проверки и подписки на события

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

Итог

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

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

Частые вопросы

Можно ли сделать обработку без навыков программирования?

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

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

Отчёт (.erf) предназначен для вывода информации и построен на СКД или макете, а обработка (.epf) — для выполнения действий над данными. Технически обработка тоже может выводить табличный документ, поэтому граница условна, но для анализа данных правильнее использовать отчёт.

Безопасно ли открывать обработки из интернета?

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

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

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

Как обновить обработку, которая уже подключена к базе?

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

Можно ли отлаживать обработку на рабочей базе без риска?

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