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

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

Что такое обработка в 1С:Предприятие и как с ней работать

Обработка в 1С:Предприятие — что это, чем отличается от отчёта, как открыть внешнюю обработку, создать свою и не навредить базе. Практическое руководство.

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

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

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

Чем обработка отличается от отчёта и других объектов 1С

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

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

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

Какие задачи решают обработки на практике

Типовой список задач, для которых применяют обработки, выглядит так:

  • Групповое изменение реквизитов — массовая замена значений в справочниках и документах по отбору.
  • Загрузка данных из Excel, CSV, DBF — перенос номенклатуры, цен, контрагентов из внешних источников.
  • Выгрузка данных — формирование файлов для обмена с банками, маркетплейсами, другими учётными системами.
  • Пакетное проведение или отмена проведения документов за период.
  • Поиск и удаление дублей справочников, помеченных на удаление объектов.
  • Тестирование и исправление данных — поиск битых ссылок, некорректных остатков, незаполненных реквизитов.
  • Обмен между конфигурациями по правилам конвертации.

Многие из этих задач закрываются штатными средствами типовых конфигураций. Например, в «1С:Бухгалтерии» и «1С:Управлении торговлей» есть встроенная обработка группового изменения реквизитов и универсальная загрузка из табличного документа. Прежде чем искать или покупать внешнюю обработку, стоит проверить, нет ли нужной функции в разделах «Администрирование» и «Все функции» вашей конфигурации.

Как открыть внешнюю обработку в 1С

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

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

Порядок безопасного запуска внешней обработки
  1. 1
    Сделайте резервную копию базы или выгрузку .dt — особенно если обработка изменяет данные
  2. 2
    Проверьте источник файла: обработки из неизвестных источников могут содержать вредоносный код
  3. 3
    Запустите обработку сначала на копии базы или в режиме без записи, если такой предусмотрен
  4. 4
    Откройте файл через меню Файл — Открыть или подключите через Дополнительные отчеты и обработки
  5. 5
    Выполните действие на малой выборке данных и проверьте результат
  6. 6
    Только после проверки запускайте обработку на полном объёме данных

Безопасный режим и права доступа

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

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

Как создать собственную обработку

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

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

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

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

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

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

Типичные ошибки
01
Запуск обработки на рабочей базе без копии — при ошибке в алгоритме данные придётся восстанавливать из архива, а изменения за день будут потеряны
02
Игнорирование несовместимости версий: обработка, написанная под обычные формы, не откроется в конфигурации на управляемых формах в режиме тонкого клиента
03
Массовое изменение данных без отбора — например, обработка очистила реквизит у всех элементов справочника вместо выбранной группы
04
Обработка в монопольном режиме в рабочее время — пользователи выбрасываются из базы, незавершённые документы теряются
05
Хранение единственной копии нужной обработки на локальном диске сотрудника — при его уходе инструмент теряется
06
Доверие обработкам из интернета без просмотра кода — файл может удалённо передавать данные или выполнять разрушительные действия

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

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

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

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

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

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

Совпадает с числом элементов в отборе, указанном перед запуском

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

Обработано больше или меньше объектов, чем ожидалось — отбор сработал неверно

Значения реквизитов на выборке
Норма

У 3–5 случайных объектов реквизиты заполнены ожидаемыми значениями

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

Значения пустые, обрезанные или относятся к другому периоду/организации

Целостность связанных данных
Норма

Документы проводятся, отчёты по остаткам сходятся с данными до обработки с учётом изменений

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

Появились битые ссылки, документы не проводятся, остатки изменились необъяснимо

Журнал регистрации
Норма

Видны события изменения объектов от имени запустившего пользователя, без ошибок

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

В журнале ошибки записи, отказы в доступе, незавершённые транзакции

Если проверка выявила проблему, не пытайтесь «откатить» изменения другой обработкой — это часто усугубляет ситуацию. Правильное действие — восстановить данные из резервной копии либо исправить конкретные объекты вручную, если объём повреждений невелик и хорошо локализован.

Когда обработка не нужна: альтернативы

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

Сравнение вариантов

Штатные обработки конфигурации

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

Внешняя обработка .epf

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

Доработка конфигурации

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

Регламентные задания и расширения

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

Практическое правило выбора простое: разовая сервисная операция — внешняя обработка; регулярная операция, выполняемая пользователем вручную, — кандидат на доработку или расширение; периодическая фоновая операция — регламентное задание. Использование внешней обработки как постоянного элемента учёта — антипаттерн, который рано или поздно приводит к проблемам при обновлении или смене сотрудника.

Итог

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

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

Часто задаваемые вопросы

Чем файл .epf отличается от файла .erf?

Расширение .epf — это внешняя обработка, а .erf — внешний отчёт. Технически форматы похожи, отличается тип объекта внутри файла. Отчёт ориентирован на формирование табличного документа с данными, обработка — на выполнение действий, хотя на практике оба могут и выводить данные, и что-то изменять.

Почему внешняя обработка не открывается в моей конфигурации?

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

Может ли обработка испортить базу 1С?

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

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

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

Как дать сотруднику доступ к обработке, не давая лишних прав?

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

Нужно ли обновлять внешние обработки при обновлении конфигурации?

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