Как настроить автоматический запуск обработки при открытии 1С

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

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

Способ 1. Использование параметра запуска /Execute для внешних обработок

Наиболее простым и распространенным способом запуска внешней обработки (файл с расширением .epf) является использование специального ключа в строке запуска 1С. Рассмотрим ситуацию: у нас есть файл обработки, и мы хотим, чтобы он открылся сразу после авторизации в системе. Для этого нам понадобится модифицировать ярлык запуска 1С или создать исполняемый файл — для этого подойдёт обработка для централизованного запуска задач по расписанию.

Проанализируем структуру команды запуска. Она должна содержать путь к исполняемому файлу платформы 1С, параметры подключения к базе и, собственно, команду на запуск обработки. Важно помнить о правильном использовании кавычек, если в путях к файлам присутствуют пробелы.

Пример строки запуска:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\Bases\MyBase" /Execute "C:\ExternalFiles\MyProcessing.epf"

Разберем основные части этой команды:

  1. ENTERPRISE — указывает на запуск системы в режиме «1С:Предприятие».
  2. /F (или /S для серверных баз) — путь к информационной базе.
  3. /Execute — ключевой параметр, после которого через пробел указывается полный путь к файлу внешней обработки.

Важный нюанс: Как показывает практика (и сообщения на форумах), основной ошибкой при настройке такого запуска является отсутствие кавычек в пути к .epf файлу. Если путь содержит пробелы, 1С выдаст ошибку о том, что файл не найден.

Способ 2. Автоматическое выполнение кода через параметр /C

Иногда простого открытия формы обработки недостаточно. Нам нужно, чтобы обработка выполнила какое-то действие (например, нажала кнопку «Выполнить») и, возможно, закрыла 1С. Для этого удобно использовать параметр /C, который передает в систему произвольную текстовую строку.

Посмотрим на пример логики в модуле управляемого приложения или в самой обработке. Мы можем прочитать этот параметр с помощью встроенной функции ПараметрыЗапуска.

Рассмотрим пример кода, который можно разместить в модуле формы внешней обработки при её открытии:


&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Если ПараметрЗапуска = "AutoStart" Тогда
        // Выполняем основную логику обработки
        ВыполнитьДействиеНаСервере();
        // Завершаем работу системы, если это необходимо
        ЗавершитьРаботуСистемы(Ложь);
    КонецЕсли;
КонецПроцедуры

В строке запуска ярлыка это будет выглядеть так:
/Execute "C:\MobiS.epf" /C "AutoStart"

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

Способ 3. Запуск встроенной в конфигурацию обработки

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

Выясним причину, почему лучше использовать процедуру ПриНачалеРаботыСистемы в Модуле управляемого приложения. Именно этот момент является финальной точкой инициализации сеанса пользователя, когда интерфейс уже готов к выводу форм.

Проанализируем ситуацию, когда запуск должен происходить только под определенным пользователем (например, «Робот»). Нам поможет следующий код:


Процедура ПриНачалеРаботыСистемы()
    Если ИмяПользователя() = "Робот_МобиС" Тогда
        Обработки.СервернаяЧастьМобиС.Создать().ПолучитьФорму().Открыть();
    КонецЕсли;
КонецПроцедуры

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

Способ 4. Обход защиты от опасных действий

В современных версиях платформы 8.3 (особенно в конфигурациях на БСП, таких как УТ 11, БП 3.0) при попытке автоматического запуска внешней обработки система может выдать предупреждение безопасности: «Запуск внешней обработки может быть опасен». Это блокирует автоматизацию.

Чтобы избежать этой ситуации, рассмотрим два пути решения:

  1. Отключение через профили безопасности: В настройках пользователя в режиме «1С:Предприятие» можно снять флажок «Защита от опасных действий».
  2. Параметр в файле настроек: В файле conf.cfg или через параметр запуска можно указать исключения для конкретных баз, но для автоматизации ярлыком проще всего использовать ключ /DisableStartupMessages в дополнение к настройке конкретного пользователя.

Способ 5. Использование механизма БСП «Дополнительные отчеты и обработки»

Если ваша конфигурация построена на базе Библиотеки Стандартных Подсистем (БСП), правильнее всего будет зарегистрировать обработку в справочнике «Дополнительные отчеты и обработки». Это даст вам возможность:

Для этого в модуле обработки должна быть реализована экспортная процедура ВыполнитьКоманду(), которую сервер 1С сможет вызвать автономно. В разработке пригодится шаблон дополнительной обработки для БСП.

Завершение работы и очистка сеансов

Проанализируем важный аспект: если вы запускаете 1С через планировщик заданий Windows для выполнения какой-то задачи, после её завершения сеанс должен быть закрыт. В противном случае лицензии будут расходоваться впустую, а база может «зависнуть» из-за множества открытых неактивных копий.

Всегда используйте команду ЗавершитьРаботуСистемы(Ложь); в конце выполнения вашего алгоритма. Параметр Ложь указывает системе, что не нужно запрашивать подтверждение у пользователя при выходе.

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

← На главную