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

· 10 мин

Содержание

Чтобы настроить обработку в 1С 8.3, включите флажок Дополнительные отчеты и обработки в разделе Администрирование → Печатные формы, отчеты и обработки, откройте одноимённый список и нажмите Добавить из файла. В карточке выберите, где показывать обработку и каким пользователям, а при необходимости задайте расписание для её команд. Так это работает в БП 3.0, ЗУП 3.1, УТ 11 и других конфигурациях на БСП.

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

Подготовка к настройке: права, файлы и версия платформы

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

Права пользователя. Регистрировать обработки может администратор или пользователь, которому дали право добавлять и изменять дополнительные отчёты и обработки. В типовых профилях эта роль входит в «Администратор». Простому пользователю для запуска уже зарегистрированной обработки достаточно доступа к ней в карточке (об этом ниже).

Тип файла. В 1С два вида внешних файлов:

РасширениеЧто этоКак подключать
.epfвнешняя обработказагрузка данных, групповые операции, печатные формы, заполнение табличных частей
.erfвнешний отчётдополнительные отчёты, которые строятся по данным базы

Совместимость с базой. Обработка обращается к объектам конфигурации по именам: Справочник.Номенклатура, Документ.РеализацияТоваровУслуг. После обновления конфигурации реквизит могут переименовать, и старая обработка перестанет работать. Спросите у разработчика, под какой релиз она написана.

Где хранить файл. До регистрации держите .epf в общей папке с понятной структурой:

  • 📁 \\fileserver\1C\Обработки\Рабочие — то, что зарегистрировано в базе;
  • 📁 \\fileserver\1C\Обработки\Архив — прошлые версии с датой в имени;
  • 📁 \\fileserver\1C\Обработки\Тест — новые версии до проверки.

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

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

Регистрация обработки в справочнике «Дополнительные отчеты и обработки»

Путь к справочнику в основных конфигурациях:

КонфигурацияПуть
БП 3.0Администрирование → Печатные формы, отчеты и обработки
ЗУП 3.1Администрирование → Печатные формы, отчеты и обработки
УТ 11НСИ и администрирование → Печатные формы, отчеты и обработки

Шаг 1. Включите функциональность

  1. Откройте раздел по пути из таблицы.
  2. Поставьте флажок Дополнительные отчеты и обработки.
  3. Рядом станет активной ссылка с тем же названием. Нажмите её.

Шаг 2. Загрузите файл

  1. В списке нажмите Добавить из файла.
  2. Платформа покажет предупреждение о безопасности. Подтвердите, если доверяете источнику.
  3. Выберите .epf или .erf.

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

Шаг 3. Заполните карточку

Основные поля:

  • 🏷 Наименование — как обработку увидят пользователи. Пишите по задаче: «Загрузка прайса поставщика», а не «Обработка1».
  • 🔖 Вид — подставляется из файла: дополнительная обработка, печатная форма, заполнение объекта, дополнительный отчёт.
  • 🚦 Публикация — Используется, Режим отладки (видят только администраторы) или Отключена. Новую версию сначала ставьте в режим отладки.
  • 📍 Размещение — для глобальных обработок выберите разделы командного интерфейса, например «Склад» или «Банк и касса». Для назначаемых (печать, заполнение) список документов приходит из файла.

Шаг 4. Сохраните и проверьте

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

Обработку не видно, хотя всё записано? Закройте и снова откройте программу: командный интерфейс перечитывается при входе.

Команды, пользователи и безопасный режим: параметры выполнения

На вкладке Команды карточки перечислено всё, что умеет обработка. Одна обработка может содержать несколько команд, например «Загрузить прайс» и «Обновить цены».

Типы команд

ТипЧто происходитМожно по расписанию
Открытие формыоткрывается форма обработки, пользователь сам задаёт параметрынет
Вызов клиентского методавыполняется код на клиенте без формынет
Вызов серверного методавыполняется код на сервере, форма не нужнада
Сценарий в безопасном режименабор действий, разрешённых в безопасном режимеда

Тип задаёт разработчик в коде, в карточке его не меняют.

Доступ пользователей

В колонке быстрого доступа на вкладке «Команды» укажите, кому команда выводится на рабочую панель. Можно выбрать конкретных пользователей или всех сразу. Если команде не дать быстрый доступ, её всё равно найдут через список дополнительных обработок раздела.

Безопасный режим

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

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

Как выглядит регистрационный код

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

Функция СведенияОВнешнейОбработке() Экспорт

	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.3.1.73");
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Версия = "1.0";
	ПараметрыРегистрации.БезопасныйРежим = Истина;

	Команда = ПараметрыРегистрации.Команды.Добавить();
	Команда.Представление = "Контроль непроведённых реализаций";
	Команда.Идентификатор = "КонтрольРеализаций";
	Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
	Команда.ПоказыватьОповещение = Ложь;

	Возврат ПараметрыРегистрации;

КонецФункции

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт

	Если ИдентификаторКоманды <> "КонтрольРеализаций" Тогда
		Возврат;
	КонецЕсли;

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

	ЗаписьЖурналаРегистрации("Контроль реализаций",
		УровеньЖурналаРегистрации.Информация, , ,
		СтрШаблон("Непроведённых реализаций: %1", Формат(Выборка.Количество, "ЧН=0; ЧГ=0")));

КонецПроцедуры

Строка в СведенияОВнешнейОбработке("2.3.1.73") — минимальная версия БСП, под которую написана обработка. Если в базе БСП старее, регистрация не пройдёт.

Регламентные задания: автоматический запуск обработки

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

Как задать расписание

  1. Откройте карточку зарегистрированной обработки.
  2. Перейдите на вкладку Команды.
  3. У нужной команды откройте настройку в колонке расписания.
  4. Включите использование расписания и задайте периодичность: каждый день в 02:00, раз в час в рабочее время, по понедельникам.
  5. Запишите карточку.

Программа создаст регламентное задание. Проверить его можно в списке Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания (в УТ 11 — в разделе НСИ и администрирование). Там видно время последнего запуска и результат.

Под каким пользователем выполняется задание

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

  • ❌ C:\Users\buh\Desktop\price.xlsx — на сервере такого файла нет;
  • ✅ \\fileserver\exchange\price.xlsx — сетевой путь, к которому есть доступ у учётной записи службы сервера 1С (обычно USR1CV8 или доменная служебная учётка).

Права на сетевую папку выдают именно этой учётной записи, а не пользователю 1С.

Особенности файловой базы

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

Варианты решения:

  • оставить на отдельном компьютере открытый сеанс под служебным пользователем;
  • перевести базу в клиент-серверный вариант, если задач по расписанию много.

Блокировка после копирования базы

Если базу скопировали (развернули из .dt, перенесли на другой сервер), при входе программа может спросить, является ли эта база основной. До ответа задания, которые работают с внешними ресурсами, заблокированы. Это защита от того, чтобы тестовая копия не отправила данные на сайт или в банк вместо рабочей базы. Для рабочей базы подтвердите, что она основная. Для тестовой оставьте блокировку.

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

Диагностика: журнал регистрации и типичные сбои

Первое место для поиска причины — журнал регистрации: Администрирование → Обслуживание → Журнал регистрации (в УТ 11 — через НСИ и администрирование).

Как отфильтровать нужное:

  1. Нажмите Установить отбор.
  2. Задайте интервал — время, когда запуск должен был пройти.
  3. В поле уровня оставьте Ошибка и Предупреждение.
  4. Если разработчик пишет свои события через ЗаписьЖурналаРегистрации, укажите имя события, как в примере выше «Контроль реализаций».

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

Диагностика: выберите симптом

Обновление версии без потери настроек

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

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

Обработки в облаке: 1С:Фреш и аренда сервера

В облаке настройка зависит от того, как именно база размещена.

ВариантЧто можноОграничения
Сервис по модели 1С:Фреш (приложения через браузер)только обработки, прошедшие проверку поставщика сервисабезопасный режим обязателен, нет доступа к файлам сервера и COM
Аренда сервера или удалённого рабочего столавсё то же, что в локальной базепути к файлам — на арендованном сервере
Ваш сервер у хостинг-провайдераполный контрольправа и учётки настраивает ваш администратор

Сервис по модели 1С:Фреш

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

Что учесть, если заказываете обработку для облака:

  • 🔒 она должна работать в безопасном режиме, без чтения диска сервера;
  • 📤 загрузку файлов делают через диалог выбора файла на компьютере пользователя, а не по пути на сервере;
  • 🧩 часть задач проще решить расширением конфигурации, если провайдер разрешает расширения.

Аренда сервера с удалённым рабочим столом

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

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

Чем зарегистрированная обработка лучше открытия через Файл → Открыть?
Она хранится в базе, доступна выбранным пользователям из нужного раздела и может запускаться по расписанию. Открытие из файла каждый раз требует права на интерактивное открытие внешних обработок и сам файл под рукой.
Почему при открытии внешнего файла появляется предупреждение о безопасности?
Так работает защита от опасных действий платформы: она предупреждает, что файл может выполнить любой код. Признак защиты настраивается у пользователя базы, отключать его стоит только администраторам.
Можно ли одну обработку подключить сразу в несколько баз?
Да, но в каждой базе её регистрируют отдельно. Настройки размещения, доступа и расписания у каждой базы свои.
Как временно отключить обработку, не удаляя её?
В карточке поставьте публикацию «Отключена». Команды исчезнут у пользователей, а расписание перестанет срабатывать. Вернуть можно в любой момент.
Нужно ли перерегистрировать обработку после обновления конфигурации?
Нет, она остаётся в справочнике. Но проверьте её работу на копии: если в релизе меняли используемые объекты, нужна новая версия файла.