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