Внешние обработки в 1С 8.3: от файла .epf до запуска по расписанию
Содержание
Чтобы настроить обработку
в 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. Включите функциональность
- Откройте раздел по пути из таблицы.
- Поставьте флажок
Дополнительные отчеты и обработки. - Рядом станет активной ссылка с тем же названием. Нажмите её.
Шаг 2. Загрузите файл
- В списке нажмите
Добавить из файла. - Платформа покажет предупреждение о безопасности. Подтвердите, если доверяете источнику.
- Выберите
.epfили.erf.
Если файл написан под БСП, программа прочитает из него вид, версию и список команд и сама заполнит карточку. Если нет — появится сообщение, что обработку нельзя зарегистрировать. Такой файл можно только открыть вручную через Файл → Открыть, но в справочник он не попадёт. Его нужно доработать.
Шаг 3. Заполните карточку
Основные поля:
- 🏷 Наименование — как обработку увидят пользователи. Пишите по задаче: «Загрузка прайса поставщика», а не «Обработка1».
- 🔖 Вид — подставляется из файла: дополнительная обработка, печатная форма, заполнение объекта, дополнительный отчёт.
- 🚦 Публикация —
Используется,Режим отладки(видят только администраторы) илиОтключена. Новую версию сначала ставьте в режим отладки. - 📍 Размещение — для глобальных обработок выберите разделы командного интерфейса, например «Склад» или «Банк и касса». Для назначаемых (печать, заполнение) список документов приходит из файла.
Шаг 4. Сохраните и проверьте
Нажмите Записать и закрыть. Глобальная обработка появится в выбранном разделе через команду «Дополнительные обработки». Печатная форма — в меню Печать документа, указанного в назначении. Обработка заполнения — среди команд заполнения в форме документа.
Обработку не видно, хотя всё записано? Закройте и снова откройте программу: командный интерфейс перечитывается при входе.
Команды, пользователи и безопасный режим: параметры выполнения
На вкладке Команды карточки перечислено всё, что умеет обработка. Одна обработка может содержать несколько команд, например «Загрузить прайс» и «Обновить цены».
Типы команд
| Тип | Что происходит | Можно по расписанию |
|---|---|---|
| Открытие формы | открывается форма обработки, пользователь сам задаёт параметры | нет |
| Вызов клиентского метода | выполняется код на клиенте без формы | нет |
| Вызов серверного метода | выполняется код на сервере, форма не нужна | да |
| Сценарий в безопасном режиме | набор действий, разрешённых в безопасном режиме | да |
Тип задаёт разработчик в коде, в карточке его не меняют.
Доступ пользователей
В колонке быстрого доступа на вкладке «Команды» укажите, кому команда выводится на рабочую панель. Можно выбрать конкретных пользователей или всех сразу. Если команде не дать быстрый доступ, её всё равно найдут через список дополнительных обработок раздела.
Безопасный режим
Флаг безопасного режима тоже приходит из файла. В безопасном режиме обработка не может работать с файлами на диске, запускать внешние программы и обращаться к COM-объектам. Для загрузки из Excel по пути на сервере это критично.
Если обработке нужен доступ к внешним ресурсам, разработчик снимает безопасный режим в коде. Зарегистрировать такую обработку сможет только пользователь с полными правами. В базах, где включены профили безопасности, программа ещё и попросит разрешения на конкретные каталоги и адреса.
Как выглядит регистрационный код
Чтобы файл регистрировался в справочнике, в модуле объекта обработки должна быть экспортная функция СведенияОВнешнейОбработке(). Пример обработки с одной серверной командой, которая считает непроведённые реализации и пишет итог в журнал регистрации:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.3.1.73");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.БезопасныйРежим = Истина;
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = "Контроль непроведённых реализаций";
Команда.Идентификатор = "КонтрольРеализаций";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Команда.ПоказыватьОповещение = Ложь;
Возврат ПараметрыРегистрации;
КонецФункции
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
Если ИдентификаторКоманды <> "КонтрольРеализаций" Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КОЛИЧЕСТВО(*) КАК Количество
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Док
|ГДЕ
| НЕ Док.Проведен
| И НЕ Док.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
ЗаписьЖурналаРегистрации("Контроль реализаций",
УровеньЖурналаРегистрации.Информация, , ,
СтрШаблон("Непроведённых реализаций: %1", Формат(Выборка.Количество, "ЧН=0; ЧГ=0")));
КонецПроцедуры
Строка в СведенияОВнешнейОбработке("2.3.1.73") — минимальная версия БСП, под которую написана обработка. Если в базе БСП старее, регистрация не пройдёт.
Регламентные задания: автоматический запуск обработки
Команды серверного типа можно запускать по расписанию. Это удобно для ночной загрузки курсов, обмена с сайтом, рассылки отчётов, контроля данных.
Как задать расписание
- Откройте карточку зарегистрированной обработки.
- Перейдите на вкладку
Команды. - У нужной команды откройте настройку в колонке расписания.
- Включите использование расписания и задайте периодичность: каждый день в 02:00, раз в час в рабочее время, по понедельникам.
- Запишите карточку.
Программа создаст регламентное задание. Проверить его можно в списке Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания (в УТ 11 — в разделе НСИ и администрирование). Там видно время последнего запуска и результат.
Под каким пользователем выполняется задание
В клиент-серверной базе задание работает в рабочем процессе сервера 1С. Все пути к файлам — с точки зрения сервера, а не вашего компьютера:
- ❌
C:\Users\buh\Desktop\price.xlsx— на сервере такого файла нет; - ✅
\\fileserver\exchange\price.xlsx— сетевой путь, к которому есть доступ у учётной записи службы сервера 1С (обычноUSR1CV8или доменная служебная учётка).
Права на сетевую папку выдают именно этой учётной записи, а не пользователю 1С.
Особенности файловой базы
В файловом варианте нет сервера, который крутит задания в фоне. Регламентные задания выполняются, только пока к базе подключён хотя бы один клиентский сеанс. Если ночью все вышли из программы, ночная загрузка не случится.
Варианты решения:
- оставить на отдельном компьютере открытый сеанс под служебным пользователем;
- перевести базу в клиент-серверный вариант, если задач по расписанию много.
Блокировка после копирования базы
Если базу скопировали (развернули из .dt, перенесли на другой сервер), при входе программа может спросить, является ли эта база основной. До ответа задания, которые работают с внешними ресурсами, заблокированы. Это защита от того, чтобы тестовая копия не отправила данные на сайт или в банк вместо рабочей базы. Для рабочей базы подтвердите, что она основная. Для тестовой оставьте блокировку.
В свойствах информационной базы в консоли кластера есть флажок блокировки регламентных заданий. Если ни одно задание не запускается, проверьте его первым. Снимать флажок на копии базы нельзя: копия начнёт выполнять те же обмены, что и рабочая.
Диагностика: журнал регистрации и типичные сбои
Первое место для поиска причины — журнал регистрации: Администрирование → Обслуживание → Журнал регистрации (в УТ 11 — через НСИ и администрирование).
Как отфильтровать нужное:
- Нажмите
Установить отбор. - Задайте интервал — время, когда запуск должен был пройти.
- В поле уровня оставьте
ОшибкаиПредупреждение. - Если разработчик пишет свои события через
ЗаписьЖурналаРегистрации, укажите имя события, как в примере выше «Контроль реализаций».
Для регламентного задания удобнее начать со списка регламентных и фоновых заданий: откройте задание, посмотрите последний фоновый запуск и текст ошибки в нём.
Обновление версии без потери настроек
Когда разработчик присылает новую версию, не регистрируйте её заново через Добавить из файла — получится вторая карточка с пустым расписанием. Откройте существующую карточку и загрузите новый файл в неё через команду загрузки обработки из файла в её командной панели. Расписания, размещение и доступ пользователей сохранятся.
Перед заменой выгрузите текущую версию в файл из той же карточки и положите в архив. Если новая сломается, вернёте старую за минуту.
Обработки в облаке: 1С:Фреш и аренда сервера
В облаке настройка зависит от того, как именно база размещена.
| Вариант | Что можно | Ограничения |
|---|---|---|
| Сервис по модели 1С:Фреш (приложения через браузер) | только обработки, прошедшие проверку поставщика сервиса | безопасный режим обязателен, нет доступа к файлам сервера и COM |
| Аренда сервера или удалённого рабочего стола | всё то же, что в локальной базе | пути к файлам — на арендованном сервере |
| Ваш сервер у хостинг-провайдера | полный контроль | права и учётки настраивает ваш администратор |
Сервис по модели 1С:Фреш
Загрузить произвольный .epf напрямую нельзя. Обработку отправляют на проверку: поставщик смотрит код на безопасность и только потом разрешает её подключить. Сроки и порядок проверки у каждого провайдера свои, уточняйте их у поддержки сервиса.
Что учесть, если заказываете обработку для облака:
- 🔒 она должна работать в безопасном режиме, без чтения диска сервера;
- 📤 загрузку файлов делают через диалог выбора файла на компьютере пользователя, а не по пути на сервере;
- 🧩 часть задач проще решить расширением конфигурации, если провайдер разрешает расширения.
Аренда сервера с удалённым рабочим столом
Здесь база работает как обычная, только на чужом компьютере. Регистрация идёт по тем же шагам. Файл .epf нужно сначала скопировать на арендованный сервер или открыть через проброшенный диск. Пути в регламентных заданиях — пути на сервере провайдера.