Запуск внутренних функций конфигурации напрямую из внешнего окружения — частая задача при автоматизации обмена данными или регламентных процедур. В данном руководстве мы разберем, как реализовать автоматический запуск обработки «Выполнить обмен данными с WEB-сайтом» в конфигурации 1С:Управление торговлей 10.3, используя командную строку.
Платформа 1С 8.3 не предоставляет ключа командной строки для прямого вызова объектов метаданных, находящихся внутри конфигурации. Параметр /Execute предназначен исключительно для внешних файлов формата .epf. Поэтому, чтобы выполнить внутреннюю процедуру, нам потребуется создать промежуточный инструмент — внешнюю обработку-обертку.
Для решения задачи создадим новую внешнюю обработку в Конфигураторе. Нам не потребуется создавать сложные формы, достаточно пустой формы, так как вся логика будет реализована в событии при открытии.
ПриОткрытии.ПриОткрытии мы пропишем вызов нужного метода и команду завершения работы, чтобы 1С не «зависала» после выполнения задачи.Рассмотрим пример кода для модуля формы:
Процедура ПриОткрытии()
// Выполняем внутреннюю процедуру обмена
// Замените на реальный вызов метода вашей обработки
ПараметрыОбменаДанными.ОткрытьФормуВыполненияОбменаССайтом();
// Проверка параметра запуска для автоматического закрытия
Если ПараметрЗапуска = "CommandLine" Тогда
ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;
КонецПроцедуры
Теперь, когда у нас есть файл Site.epf, мы можем обращаться к нему из командной строки или планировщика задач Windows. Важно правильно передать параметры, чтобы 1С понимала, что сеанс запущен для автоматической операции.
Пример команды для запуска:
"C:\Program Files (x86)\1cv8\8.3.17.1851\bin\1cv8.exe" ENTERPRISE /F"D:\bases\ut1" /N"Obmen" /P"1234" /Execute"D:\bases\ut1\ExtForms\Site\Site.epf" /C"CommandLine"
Разберем ключи подробнее:
/F — путь к информационной базе./N и /P — имя пользователя и пароль (обязательно должны иметь права на выполнение обмена)./Execute — путь к нашей внешней обработке-обертке./C"CommandLine" — передача произвольного параметра, который мы считываем в коде через ПараметрЗапуска.При использовании планировщика Windows часто возникают проблемы с запуском из .bat файлов. Если вы сталкиваетесь с ошибками поиска процесса или отсутствием реакции системы, попробуйте прописать путь к исполняемому файлу напрямую в настройках задачи планировщика:
1cv8.exe.ENTERPRISE и заканчивая /C"CommandLine").Не забывайте использовать полные пути к файлам в кавычках, если в названиях папок есть пробелы. Также крайне важно проверять, чтобы пользователь, от имени которого работает планировщик, имел права на запись в папку с базой данных и временные файлы.
Хотя предложенный выше метод успешно решает задачу, помните, что в современных версиях 1С стандартом является использование Регламентных заданий. Перенос логики обмена в регламентное задание позволяет:
.bat файлов и планировщика Windows.Используйте метод «обработки-обертки» только в тех случаях, когда архитектура базы (например, 1С 10.3) не позволяет легко внедрить регламентные задания или требует запуска строго по внешнему событию из ОС.