Запуск внешней обработки в режиме 1С:Предприятие

· 9 мин

Содержание

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

Способ зависит от того, как часто нужна обработка и кто её запускает. Ниже — каждый вариант с точными путями меню, параметрами командной строки и примером кода, а также разбор ошибок прав доступа, из-за которых обработка чаще всего не открывается.

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

Какой способ запуска выбрать

Вариантов запуска обработки в 1С несколько, и они не взаимозаменяемы. Разовый анализ удобно сделать через меню, типовую обработку для отдела — подключить в справочник, а регламентное задание по расписанию — только из кода. Ниже — подсказка по вашему случаю.

Как часто и кем будет запускаться обработка?

Коротко по всем способам сразу:

СпособКогда применятьЧто нужноВеб-клиент
Файл → Открытьразовый запускправо на интерактивное открытиенет
Справочник доп. обработокпостоянное использованиемеханизм в конфигурациида
Командная строка /Executeпакетный запуск при стартепуть к 1cv8.exe и реквизиты базынет
Из кода (ВнешниеОбработки)по расписанию, без пользователясерверный код, доступ к файлуда

Дальше — каждый способ по отдельности.

Открытие обработки через меню «Файл → Открыть»

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

  1. Откройте главное меню — кнопка в левом верхнем углу окна (интерфейс «Такси»).
  2. Выберите Файл → Открыть.
  3. В окне выбора файла укажите обработку с расширением .epf (у внешнего отчёта расширение .erf).
  4. Нажмите Открыть — платформа откроет основную форму обработки.

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

Расширение .epf — это обработка, .erf — внешний отчёт. Отчёт через Файл → Открыть тоже открывается, но меню и права для них общие.

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

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

Подключение через справочник дополнительных обработок

Если обработка нужна постоянно, её встраивают в конфигурацию через механизм дополнительных обработок. Он есть в типовых решениях на библиотеке стандартных подсистем — 1С:Бухгалтерия 3.0, ЗУП 3.1, Управление торговлей 11 и других.

Сначала механизм надо включить:

  1. Перейдите в раздел Администрирование → Печатные формы, отчёты и обработки.
  2. Установите флажок Дополнительные отчёты и обработки.
  3. Там же откройте список по гиперссылке Дополнительные отчёты и обработки.

Теперь добавьте саму обработку:

  1. В списке нажмите Создать.
  2. Выберите файл .epf на диске — платформа прочитает его описание.
  3. В поле размещения укажите, в каких разделах и у каких объектов будет доступна команда запуска.
  4. Запишите элемент справочника.

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

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

  • Обработка — запускается из списка в разделе или открывается своей формой.
  • Заполнение объекта — команда встаёт в форму документа и заполняет его реквизиты.
  • Печатная форма — добавляет свой вариант печати к документу или справочнику.
  • Создание связанных объектов — формирует на основании открытого документа другие объекты.

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

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

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

Запуск обработки из командной строки при старте

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

Общий вид команды для клиент-серверной базы:

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" ENTERPRISE /S "СерверКластера\ИмяБазы" /N "Пользователь" /P "Пароль" /Execute "C:\Обработки\Загрузка.epf"

Для файловой базы вместо /S указывают путь к каталогу:

"...\1cv8.exe" ENTERPRISE /F "D:\Базы\Бухгалтерия" /N "Пользователь" /P "Пароль" /Execute "C:\Обработки\Загрузка.epf"

Разбор ключей:

  • ENTERPRISE — запуск в режиме 1С:Предприятие (а не Конфигуратор).
  • /S — адрес серверной базы, /F — каталог файловой базы.
  • /N и /P — имя пользователя и пароль; если их не указать, появится окно входа.
  • /Execute — путь к обработке, которую надо выполнить при старте.

Параметры для самой обработки передают ключом /C — внутри её кода они доступны через системное свойство ПараметрЗапуска. Так одну обработку можно запускать с разными настройками, не меняя код.

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

Программный вызов обработки из встроенного языка

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

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

&НаСервере
Функция ПодключитьОбработку(ПутьКФайлу)
    ИмяОбработки = ВнешниеОбработки.ПодключитьВнешнююОбработку(ПутьКФайлу);
    Обработка = ВнешниеОбработки.Создать(ИмяОбработки);
    Возврат Обработка;
КонецФункции

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

Обработка = ПодключитьОбработку("C:\Обработки\Загрузка.epf");
Обработка.ВыполнитьЗагрузку();

Чтобы открыть форму обработки, уже встроенной в конфигурацию, менеджер не нужен — достаточно управляемого метода:

&НаКлиенте
Процедура ОткрытьМоюОбработку()
    ОткрытьФорму("Обработка.ЗагрузкаДанных.Форма.Форма");
КонецПроцедуры

Строка в кавычках — это полное имя формы: тип объекта, его имя в конфигурации и имя формы. Если у обработки одна основная форма, её имя можно не уточнять — ОткрытьФорму("Обработка.ЗагрузкаДанных.Форма").

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

Запуск в веб-клиенте и на мобильной платформе

В веб-клиенте открыть .epf с диска, как в тонком клиенте, нельзя: браузер не даёт платформе прямой доступ к файловой системе компьютера. Поэтому пункт Файл → Открыть для локального файла обработки в вебе недоступен.

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

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

Ошибки при открытии обработки и как их снять

Чаще всего обработка не запускается из-за прав и настроек, а не из-за самого файла. Найдите свой симптом.

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

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

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

Чем обработка отличается от внешнего отчёта?
Обработка (.epf) выполняет действия с данными — загружает, меняет, формирует документы. Отчёт (.erf) только читает данные и показывает результат. Открываются они одинаково, но права и назначение разные.
Можно ли открыть обработку обычному пользователю без прав администратора?
Да, если в его роль включено право на интерактивное открытие внешних обработок. Без этого права пункт меню будет недоступен или даст ошибку прав доступа.
Запустится ли обработка от старой версии 1С в новой платформе?
Обычно да — обработки совместимы снизу вверх. А вот обработку из более новой платформы старая версия не откроет: нужен номер платформы не ниже того, в котором она собрана.
Почему обработка открывается в толстом клиенте, но не в веб-клиенте?
Веб-клиент не читает файлы с диска напрямую. Чтобы обработка работала в браузере, её нужно подключить в справочник дополнительных обработок — тогда она хранится в базе и доступна из любого клиента.
Как запустить обработку по расписанию?
Через регламентное задание, которое вызывает код подключения обработки серверным методом ВнешниеОбработки.ПодключитьВнешнююОбработку. Интерактивного окна при этом нет — обработка должна отрабатывать без участия пользователя.