Запуск внешней обработки в режиме 1С:Предприятие
Содержание
Чтобы открыть внешнюю обработку
(файл .epf) в режиме 1С:Предприятие, зайдите в главное меню и выберите Файл → Открыть, затем укажите файл на диске. Это самый быстрый путь для разового запуска. Для обработки, которой пользуются постоянно, её добавляют в справочник дополнительных обработок, а для автозапуска и фоновых задач вызывают из встроенного языка.
Способ зависит от того, как часто нужна обработка и кто её запускает. Ниже — каждый вариант с точными путями меню, параметрами командной строки и примером кода, а также разбор ошибок прав доступа, из-за которых обработка чаще всего не открывается.
Внешняя обработка может менять данные в базе без запроса подтверждения. Перед запуском обработки из непроверенного источника сделайте резервную копию информационной базы и запустите её сначала на копии.
Какой способ запуска выбрать
Вариантов запуска обработки в 1С несколько, и они не взаимозаменяемы. Разовый анализ удобно сделать через меню, типовую обработку для отдела — подключить в справочник, а регламентное задание по расписанию — только из кода. Ниже — подсказка по вашему случаю.
Файл → Открыть. Ничего настраивать не нужно, но потребуется право на интерактивное открытие внешних обработок.Дополнительные отчёты и обработки. Обработка хранится в базе, доступна всем с нужной ролью, в том числе в веб-клиенте.ВнешниеОбработки. Интерактивного окна при этом нет.Коротко по всем способам сразу:
| Способ | Когда применять | Что нужно | Веб-клиент |
|---|---|---|---|
Файл → Открыть | разовый запуск | право на интерактивное открытие | нет |
| Справочник доп. обработок | постоянное использование | механизм в конфигурации | да |
Командная строка /Execute | пакетный запуск при старте | путь к 1cv8.exe и реквизиты базы | нет |
Из кода (ВнешниеОбработки) | по расписанию, без пользователя | серверный код, доступ к файлу | да |
Дальше — каждый способ по отдельности.
Открытие обработки через меню «Файл → Открыть»
Это стандартный интерфейс для разового запуска. Работает в толстом и тонком клиенте.
- Откройте главное меню — кнопка в левом верхнем углу окна (интерфейс «Такси»).
- Выберите
Файл → Открыть. - В окне выбора файла укажите обработку с расширением
.epf(у внешнего отчёта расширение.erf). - Нажмите
Открыть— платформа откроет основную форму обработки.
Если вместо формы появляется предупреждение безопасности, подтвердите запуск только для файла, которому доверяете. Платформа предупреждает, потому что код обработки выполнится с вашими правами.
Расширение .epf — это обработка, .erf — внешний отчёт. Отчёт через Файл → Открыть тоже открывается, но меню и права для них общие.
Главное ограничение этого способа — права пользователя. По умолчанию интерактивно открывать внешние обработки может только администратор. Обычному пользователю нужна роль, в которую включено право Интерактивное открытие внешних отчётов и обработок. Без него пункт меню либо недоступен, либо открытие завершается ошибкой прав.
В типовых решениях права настраивают не в Конфигураторе, а через профили групп доступа: раздел Администрирование → Настройки пользователей и прав → Профили групп доступа. Откройте нужный профиль, найдите разрешение на открытие внешних обработок и включите его, затем назначьте профиль пользователю. Выдавать такое право всем подряд не стоит — через внешнюю обработку можно выполнить произвольный код с правами того, кто её открыл.
Подключение через справочник дополнительных обработок
Если обработка нужна постоянно, её встраивают в конфигурацию через механизм дополнительных обработок. Он есть в типовых решениях на библиотеке стандартных подсистем — 1С:Бухгалтерия 3.0, ЗУП 3.1, Управление торговлей 11 и других.
Сначала механизм надо включить:
- Перейдите в раздел
Администрирование → Печатные формы, отчёты и обработки. - Установите флажок
Дополнительные отчёты и обработки. - Там же откройте список по гиперссылке
Дополнительные отчёты и обработки.
Теперь добавьте саму обработку:
- В списке нажмите
Создать. - Выберите файл
.epfна диске — платформа прочитает его описание. - В поле размещения укажите, в каких разделах и у каких объектов будет доступна команда запуска.
- Запишите элемент справочника.
После этого команда запуска появится в указанном разделе — например, в меню Ещё или в панели отчётов нужного раздела.
При добавлении платформа определяет вид обработки, и от него зависит, где появится команда:
- Обработка — запускается из списка в разделе или открывается своей формой.
- Заполнение объекта — команда встаёт в форму документа и заполняет его реквизиты.
- Печатная форма — добавляет свой вариант печати к документу или справочнику.
- Создание связанных объектов — формирует на основании открытого документа другие объекты.
Вид зашит в самой обработке её разработчиком, вручную в справочнике его не меняют. Если команда не появилась там, где вы ждали, проверьте настройку размещения в элементе справочника — там перечислены объекты и разделы, в которых обработка доступна.
В справочник встаёт не любой файл. Обработка должна поддерживать механизм: содержать экспортную функцию СведенияОВнешнейОбработке(), которая возвращает её тип и список команд. Произвольный .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С в новой платформе?
Почему обработка открывается в толстом клиенте, но не в веб-клиенте?
Как запустить обработку по расписанию?
ВнешниеОбработки.ПодключитьВнешнююОбработку. Интерактивного окна при этом нет — обработка должна отрабатывать без участия пользователя.