У бухгалтера пятнадцать поставщиков. Каждый присылает прайс-лист в своём формате Excel: у одного цены в третьей колонке, у другого — в пятой, у третьего артикул разбит на две ячейки, а четвёртый каждый месяц меняет структуру файла. Бухгалтер тратит два дня на ручной перенос цен в 1С. Каждый квартал. Четыре раза в год.
Расширение конфигурации для этой задачи — избыточно. Менять конфигурацию — тем более. Здесь нужна внешняя обработка: файл с расширением EPF, который запускается, делает своё дело и не оставляет следов в конфигурации. Мы уже разбирали выбор между расширениями и доработкой конфигурации. Эта статья — про третий инструмент, который часто оказывается самым практичным.
Что такое внешняя обработка и чем она отличается от расширения
Внешняя обработка — это скомпилированный файл формата EPF (External Processing File) или ERF (External Report File), который выполняется в контексте информационной базы 1С, но не входит в состав конфигурации. Физически это отдельный файл на диске или в справочнике «Дополнительные отчёты и обработки» внутри БСП.
Расширение конфигурации встраивается в платформу: перехватывает процедуры, добавляет реквизиты, модифицирует формы. Оно живёт внутри информационной базы постоянно, загружается при старте сеанса и работает на протяжении всей сессии. Расширение — это часть системы, даже если формально отделимая.
Внешняя обработка — другая философия. Она не встраивается, а вызывается. Пользователь открывает EPF-файл, выполняет операцию и закрывает. Обработка не модифицирует конфигурацию, не перехватывает события, не добавляет объекты метаданных. Она работает с существующими данными через штатные программные интерфейсы — создаёт документы, изменяет записи регистров, формирует отчёты. Но делает это как гость: пришла, сделала, ушла.
У внешних обработок есть важное техническое свойство: они не требуют монопольного режима для обновления. Заменить файл EPF можно прямо во время работы пользователей. Расширение тоже обновляется без монопольного режима, но требует перезапуска сеансов. Замена файла обработки — мгновенная: следующий запуск уже использует новую версию.
Формат ERF — это то же самое, но для отчётов. Внешний отчёт строится на системе компоновки данных (СКД) и возвращает табличный результат. Разница чисто функциональная: EPF выполняет действия, ERF показывает данные.
Пять задач, которые EPF решает лучше всего
Внешние обработки — не универсальный инструмент. Но в определённых сценариях они выигрывают и у расширений, и у доработок конфигурации.
1. Загрузка данных из внешних файлов. Тот самый случай с прайс-листами. Мы разрабатывали обработку загрузки прайсов из Excel для торговой компании с пятнадцатью поставщиками. Каждый поставщик — свой формат: у кого-то артикул в первой колонке, у кого-то в четвёртой, у кого-то цена с НДС, у кого-то без. Обработка содержит настраиваемый маппинг колонок: пользователь один раз указывает, где какое поле, сохраняет профиль — и дальше загрузка выполняется в два клика. Пятнадцать профилей на пятнадцать поставщиков. Два дня ручной работы превратились в двадцать минут. Расширение для этой задачи не нужно: обработка не перехватывает типовые процедуры, не добавляет реквизиты, не модифицирует формы. Она читает Excel и создаёт документы установки цен. Всё.
2. Периодические массовые операции. Пересчёт цен по формуле — задача, которая возникает раз в квартал. Наценить всю номенклатуру группы на 8%, округлить до рублей, исключить позиции с фиксированной ценой. Обработка принимает параметры (группу номенклатуры, процент наценки, правило округления), формирует предварительную таблицу, показывает пользователю результат до применения и по подтверждению создаёт документ установки цен. Держать такую логику в конфигурации постоянно — нет смысла. Она нужна четыре раза в год. EPF лежит в сетевой папке, запускается по необходимости, обновляется без перезапуска сеансов.
3. Нестандартные печатные формы. Клиенту нужна накладная с дополнительной таблицей комплектующих, или акт сверки в нетиповом формате, или упаковочный лист с QR-кодом. Печатная форма как внешняя обработка подключается через механизм БСП «Дополнительные отчёты и обработки» и становится доступна пользователям без изменения конфигурации. Об этом механизме — подробнее ниже.
4. Сервисные инструменты для разработки и администрирования. Генератор тестовых данных — наш внутренний инструмент. EPF создаёт 500 тестовых заказов покупателей с рандомными товарами, контрагентами и датами. Используем для нагрузочного тестирования после оптимизации. Запускаем на копии базы, прогоняем сценарий, замеряем время. Такой инструмент не должен существовать в рабочей конфигурации — он опасен. Но как EPF-файл, который сознательно открывает разработчик на тестовой базе, — идеален.
5. Разовые миграции и исправления данных. Нужно перенести остатки из одного склада на другой, пересчитать себестоимость за прошлый период, массово заполнить новый реквизит. Задачи, которые выполняются один раз и больше не нужны. Писать расширение ради одноразовой операции — траты, несопоставимые с результатом. EPF разрабатывается, выполняется, архивируется на случай повторной необходимости. Если не понадобится — файл просто лежит в архиве, не занимая места в конфигурации и не увеличивая её сложность.
Подключение через БСП: дополнительные отчёты и обработки
Отдельный файл на диске — самый простой способ использовать EPF. Но у него есть проблемы: файл нужно раздать всем пользователям, контролировать версию, обеспечить доступ с терминальных серверов. Библиотека стандартных подсистем (БСП) решает это через механизм «Дополнительные отчёты и обработки».
Суть механизма: EPF- или ERF-файл загружается в справочник внутри информационной базы. Платформа хранит двоичные данные файла в реквизите справочника. При запуске — извлекает, создаёт экземпляр внешней обработки и выполняет. Пользователю не нужен доступ к файловой системе: обработка запускается из интерфейса 1С, через раздел «Дополнительные обработки» или прямо из формы документа.
БСП поддерживает несколько типов подключения:
Дополнительная обработка. Появляется в общем списке дополнительных обработок. Пользователь открывает раздел, выбирает обработку, запускает. Подходит для самостоятельных инструментов: загрузка данных, массовые операции, генерация отчётов.
Заполнение объекта. Обработка привязывается к конкретному виду документа или справочника. В форме документа появляется кнопка «Заполнить» — и обработка заполняет табличную часть, реквизиты шапки или выполняет другие действия с текущим объектом. Удобно для нестандартного заполнения: загрузить состав заказа из Excel, заполнить реквизиты по шаблону, скопировать данные из связанного документа.
Печатная форма. Обработка формирует печатный макет для документа. В меню «Печать» документа появляется дополнительный пункт. Пользователь нажимает — получает нестандартную печатную форму. Конфигурация при этом не изменена: типовые печатные формы работают как прежде, новая — добавлена поверх.
Создание связанных объектов. Из формы документа по кнопке создаётся другой документ, заполненный данными текущего. Например, из заказа покупателя — заявка на перемещение со склада.
Для подключения через БСП обработка должна реализовать определённый программный интерфейс: экспортную функцию СведенияОВнешнейОбработке(), которая возвращает структуру с описанием команд, типов назначения и прав доступа. Это контракт между EPF и БСП: обработка сообщает, что она умеет, а БСП — размещает её в нужном месте интерфейса.
Обновление обработки в БСП — загрузка нового файла в тот же элемент справочника. Все пользователи при следующем запуске получат обновлённую версию. Без перезапуска сеансов, без монопольного режима, без деплоя на терминальные серверы.
Ограничения: когда EPF не подойдёт
Внешние обработки — инструмент с чётко очерченными границами. Понимание этих границ экономит время и деньги.
EPF не может перехватывать события. Расширение умеет выполнить код перед проведением документа, после записи справочника, вместо стандартной процедуры. Внешняя обработка — не может. Она не встроена в жизненный цикл объектов. Если задача — «при проведении реализации автоматически создавать заявку на транспорт», EPF не подходит. Нужен либо перехват в расширении, либо подписка на событие в конфигурации.
EPF не добавляет реквизиты. Внешняя обработка работает с существующей структурой метаданных. Она не может добавить колонку в табличную часть документа, создать новый регистр или справочник. Если для решения задачи требуется хранить дополнительные данные в новых объектах — это территория расширений или конфигурации. Исключение — использование регистров сведений БСП для хранения произвольных данных, но это скорее обходной путь, чем архитектурное решение.
EPF не встраивается в интерфейс глубоко. Через БСП можно добавить кнопку в форму документа — но нельзя изменить саму форму: переставить элементы, добавить закладку, скрыть реквизит в зависимости от условия. Всё, что касается модификации пользовательского интерфейса типовых объектов, — расширения.
EPF не работает в фоновых заданиях напрямую. Регламентное задание не может вызвать внешнюю обработку из файла. Через БСП есть механизм запуска дополнительных обработок по расписанию, но он сложнее в настройке и менее надёжен, чем код в расширении или конфигурации. Если задача должна выполняться автоматически по расписанию без участия пользователя, EPF — не лучший выбор.
Безопасность. EPF-файл из непроверенного источника — это исполняемый код с полными правами текущего пользователя. Открыл обработку — она выполнила всё, что в ней написано: удалила данные, отправила информацию наружу, изменила настройки. Загружать EPF только из доверенных источников и только через контролируемый канал — обязательное правило. В продуктивных базах рекомендуем запретить интерактивное открытие внешних обработок для всех, кроме администраторов, а штатные EPF подключать исключительно через БСП.
Сводная таблица поможет определить инструмент:
| Критерий | EPF | Расширение | Доработка конфигурации |
|---|---|---|---|
| Перехват событий | Нет | Да | Да |
| Добавление реквизитов | Нет | Да | Да |
| Модификация форм | Ограниченно | Да | Да |
| Обновление без перезапуска | Да | Нет | Нет |
| Работа по расписанию | Через БСП | Да | Да |
| Влияние на обновляемость | Нулевое | Среднее | Высокое |
| Скорость деплоя | Мгновенно | Минуты | Часы |
Когда типовая конфигурация не покрывает задачу, выбор инструмента доработки определяет стоимость владения системой. EPF занимает свою нишу — и в этой нише не имеет конкурентов.
Как заказать разработку внешней обработки
Процесс разработки EPF укладывается в четыре шага.
Формулировка задачи. Что делает обработка, с какими данными работает, кто будет запускать, как часто. Чем конкретнее описание, тем точнее оценка. «Загрузка прайс-листов из Excel» — это понятная задача с предсказуемым объёмом. «Автоматизация работы с поставщиками» — нет.
Разработка и тестирование. Мы разрабатываем обработку на копии базы клиента. Тестируем на реальных данных: загружаем настоящие прайсы, обрабатываем реальные документы, проверяем граничные случаи. EPF-файл не зависит от конфигурации жёстко — но зависит от структуры данных. Если у клиента нестандартная номенклатура или особые типы цен, это учитывается при разработке.
Подключение. Если обработка разовая — передаём файл с инструкцией. Если будет использоваться регулярно — подключаем через БСП, настраиваем права доступа, при необходимости создаём инструкцию для пользователей. Для работы по расписанию настраиваем вызов из регламентного задания. Если задача предполагает не только локальную автоматизацию, но и обмен данными с внешними системами, мы можем выстроить связку EPF + REST API, где обработка обращается к HTTP-сервису или наоборот — сервис запускает обработку по входящему запросу.
Поддержка. При обновлении конфигурации EPF, как правило, продолжает работать без изменений — в этом её главное преимущество. Но если вендор изменит программный интерфейс, который использует обработка (переименует процедуру, изменит состав параметров), потребуется адаптация. Мы ведём реестр разработанных обработок и проверяем совместимость при крупных обновлениях конфигурации.
Стоимость разработки внешней обработки, как правило, ниже стоимости расширения: меньше точек интеграции, проще тестирование, нет рисков для обновляемости. Для задач из категории «загрузка, выгрузка, массовая обработка, нестандартная печать» — EPF остаётся самым экономичным инструментом в арсенале разработчика 1С.


