Запуск обработки в 1С 8.3: встроенной и внешней из файла .epf

· 9 мин

Содержание

Встроенную обработку в 1С 8.3 применяют двумя путями: через Главное меню → Все функции → Обработки или из раздела конфигурации, где её разместил разработчик. Внешнюю обработку (файл .epf) запускают либо напрямую через Файл → Открыть, либо подключают в справочник Дополнительные отчёты и обработки.

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

Речь о платформе 8.3 с интерфейсом «Такси» и управляемыми формами. В старых версиях (7.7, 8.2) меню и часть механизмов называются иначе.

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

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

Отсюда простое правило:

  • 📊 нужно посмотреть цифры, свод, печатную форму — это отчёт (.erf для внешнего);
  • 🔧 нужно что-то изменить в базе массово или по алгоритму — это обработка (.epf для внешней).

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

Обработка способна изменить данные необратимо. Перед запуском незнакомой обработки, которая пишет в базу (групповое изменение, удаление, загрузка), сделайте резервную копию или проверьте её на копии базы.

Где лежат встроенные обработки и как их открыть

Типовые обработки конфигурации разработчик обычно выносит в разделы интерфейса — например, Администрирование или Операции. Но многие сервисные обработки прямой команды в меню не имеют. Их открывают через список «Все функции».

По умолчанию команда «Все функции» скрыта. Включите её один раз:

  1. Нажмите кнопку Главное меню (значок слева вверху, с горизонтальными полосами).
  2. Откройте Сервис → Параметры.
  3. Поставьте флажок Отображать команду «Все функции» и нажмите ОК.

После этого путь к списку обработок такой:

Главное меню → Все функции → Обработки

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

Если «Все функции» открываются, но дерево пустое или усечённое, у пользователя не хватает прав на административные объекты. Проверьте профиль доступа в Администрирование → Настройки пользователей и прав.

Как применить внешнюю обработку из файла .epf

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

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

Способ 1. Прямое открытие через Файл → Открыть

Самый быстрый путь для разового запуска:

  1. Главное меню → Файл → Открыть.
  2. Выберите файл .epf на диске.
  3. Платформа покажет предупреждение безопасности — внешний код может навредить базе. Если источник файла надёжный, подтвердите открытие.
  4. Откроется форма обработки — работайте с ней как с обычной формой.

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

Способ 2. Через справочник «Дополнительные отчёты и обработки»

Этот способ — для конфигураций на Библиотеке стандартных подсистем (БП 3.0, ЗУП 3.1, УТ 11 и другие типовые). Сначала включите механизм:

Администрирование → Печатные формы, отчёты и обработки → флажок Дополнительные отчёты и обработки.

Затем:

  1. В том же разделе откройте список Дополнительные отчёты и обработки.
  2. Нажмите Добавить из файла и укажите .epf.
  3. Подтвердите предупреждение безопасности.
  4. В карточке обработки задайте, в каких разделах и у каких пользователей она будет доступна (Размещение), и при необходимости — быстрые команды.
  5. Запишите карточку.

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

Когда нужна не обработка, а расширение

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

Перед подключением стоит пройти короткий список проверок:

Что проверить перед подключением внешней обработки
Выполнено: 0 / 5

Для чего применяют обработки на практике

Обработки закрывают задачи, которые нельзя или неудобно решать руками. Самые частые сценарии:

  • 🔁 Групповое изменение реквизитов. Типовая обработка (ищите в списке «Все функции» или в разделе администрирования) меняет один реквизит сразу у множества объектов — например, проставляет статью затрат во всех выбранных документах.
  • 📥 Загрузка данных из файла. Перенос номенклатуры, контрагентов, остатков из Excel или .csv в справочники и документы без ручного ввода.
  • 🗑️ Удаление помеченных объектов. Отдельная обработка (Администрирование → Удаление помеченных объектов) контролирует ссылки и удаляет только то, что больше нигде не используется.
  • 👬 Поиск и удаление дублей. Находит одинаковые элементы справочников и склеивает их, перенаправляя ссылки на один оставшийся.
  • 🧮 Перепроведение документов . Массово перепроводит документы за период после изменения настроек учёта.
  • 🔗 Обмен данными. Выгрузка в файл и загрузка из файла при обмене между базами, которые не связаны автоматической синхронизацией.
  • 🖨️ Доработанные печатные формы. Внешняя обработка может подключаться как печатная форма к документу — тогда она не открывается отдельно, а добавляет свою кнопку печати в карточку документа.

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

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

Запуск обработки из кода и обработка ошибок

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

Обработка = ВнешниеОбработки.Создать(ПутьКФайлу);
Форма = Обработка.ПолучитьФорму();
Форма.Открыть();

Метод Создать() подключает файл .epf и возвращает объект обработки. У второго параметра — признак безопасного режима: в безопасном режиме платформа запрещает коду обработки опасные действия (работу с файлами, COM и т. п.).

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

Попытка
    Обработка = ВнешниеОбработки.Создать(ПутьКФайлу);
    Форма = Обработка.ПолучитьФорму();
Исключение
    Сообщить("Не удалось открыть обработку: " + ОписаниеОшибки());
    Возврат;
КонецПопытки;
Форма.Открыть();

Функция ОписаниеОшибки() возвращает текст исключения строкой. Если нужна структурированная информация (строка кода, стек), используйте ИнформацияОбОшибке().

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

Отладка, когда обработка падает

Чтобы пошагово пройти код внешней обработки:

  1. Запустите 1С:Предприятие в режиме отладки. Включить отладку можно в Конфигураторе: Сервис → Параметры → Запуск 1С:Предприятия → Отладка, флажок Устанавливать режим разрешения отладки.
  2. Откройте файл .epf в Конфигураторе (Файл → Открыть) и расставьте точки останова в нужных строках модуля.
  3. В Конфигураторе выполните Отладка → Подключение и выберите сеанс запущенного предприятия.
  4. Запустите обработку в предприятии — выполнение остановится на точке останова, дальше идите по шагам (F11, F10).

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

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

Как настроить автоматический запуск обработки

Регулярную обработку (ночная выгрузка, обмен, пересчёт) запускают без участия человека. Есть два подхода.

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

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

Из командной строки. Платформу можно запустить так, что она откроет базу, выполнит внешнюю обработку и закроется. За это отвечает параметр /Execute:

1cv8 ENTERPRISE /S "сервер\база" /N "Пользователь" /P "пароль" /Execute "C:\Обработки\Выгрузка.epf"

Для файловой базы вместо /S укажите путь: /F "C:\Базы\МояБаза". Передать в обработку параметр можно через /C, а внутри кода прочитать его из свойства ПараметрЗапуска. Такую команду удобно поставить в планировщик задач Windows — получится запуск по расписанию средствами операционной системы, без регламентного задания.

Храните пароль не в тексте bat-файла, а используйте отдельную служебную учётную запись с минимальными правами — ровно теми, что нужны обработке.

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

Чем .epf отличается от .erf?
.epf — внешняя обработка (может менять данные), .erf — внешний отчёт (только читает и выводит). При подключении через справочник доп. обработок платформа сама проверяет тип и не даст загрузить отчёт как обработку.
Почему пункт «Открыть» неактивен и файл .epf не открывается?
У пользователя снято право на интерактивное открытие внешних обработок, либо механизм доп. обработок отключён. Это защита от постороннего кода. Обратитесь к администратору: он выдаст право или подключит обработку в справочник централизованно.
Нужны ли права администратора, чтобы применить обработку?
Для встроенных — нет, достаточно прав на соответствующие объекты. Для подключения внешней обработки в справочник и настройки расписания обычно нужны административные права. Запуск уже подключённой обработки доступен по обычным правам пользователя.
Обработка открывается, но кнопка «Выполнить» ничего не делает — почему?
Чаще всего не заполнены обязательные поля формы (период, организация, файл-источник) или не выбраны объекты для обработки. Проверьте служебные сообщения внизу окна. Если сообщений нет — отладьте обработку из Конфигуратора или добавьте Сообщить() в код.
Можно ли запустить внешнюю обработку на сервере по расписанию?
Да, но только через подключение в Дополнительные отчёты и обработки с настроенным расписанием (создаётся регламентное задание) либо через запуск платформы с ключом /Execute из планировщика ОС. Напрямую открытый через Файл → Открыть файл по расписанию не запускается.