Автоматизация · 10 мин
Как запустить обработку при запуске 1С
Как настроить автоматический запуск внешней обработки при старте 1С: параметры командной строки, модуль приложения, регламентные задания и подсистема БСП. Пошаговые инструкции.
Автоматический запуск обработки при старте 1С решает практические задачи: проверка заполнения данных перед началом рабочего дня, загрузка курсов валют, напоминания пользователям, синхронизация с внешними системами. В зависимости от конфигурации и режима работы (файловая или клиент-серверная база, тонкий или толстый клиент) применяются разные механизмы.
Универсального переключателя «запускать обработку при старте» в типовых конфигурациях нет, поэтому задача решается одним из четырёх способов: параметрами командной строки, кодом в модуле приложения или модуле обычного приложения, регламентными заданиями, а также штатной подсистемой «Дополнительные отчеты и обработки» из библиотеки стандартных подсистем (БСП). Каждый вариант имеет свои ограничения по правам, режиму клиента и безопасности.
Ниже разобраны все рабочие способы с точными действиями, примерами кода и проверкой результата. Выбирайте метод исходя из того, есть ли у вас доступ к конфигуратору, работает ли база в файловом или серверном режиме и должна ли обработка выполняться интерактивно у пользователя или в фоне.
Способ 1. Запуск через параметры командной строки
Самый простой метод, не требующий изменения конфигурации, — запуск исполняемого файла 1С с параметром /Execute, после которого указывается полный путь к файлу внешней обработки (.epf). Платформа откроет базу и сразу выполнит обработку.
Дополнительно используются параметры: /F — путь к файловой базе (или /S — сервер и имя базы), /N и /P — имя пользователя и пароль. Полная строка для файловой базы выглядит так:
1cv8.exe ENTERPRISE /F"D:\Bases\Trade" /N"Администратор" /P"123" /Execute"D:\Обработки\ЗагрузкаКурсов.epf"Тонкий клиент запускается файлом 1cv8c.exe, толстый — 1cv8.exe. Для регулярного выполнения удобно сохранить команду в bat-файл и добавить его в планировщик заданий Windows или в автозагрузку.
Ограничения способа: обработка открывается как внешняя, поэтому срабатывает защита от опасных действий — пользователь может увидеть предупреждение безопасности. Если в профиле пользователя отключён интерактивный режим открытия внешних обработок, запуск будет заблокирован.
Способ 2. Код в модуле приложения (ПриНачалеРаботыСистемы)
Если есть доступ к конфигуратору и возможность снять конфигурацию с полной поддержки, логику запуска размещают в обработчике ПриНачалеРаботыСистемы модуля управляемого приложения (для обычных форм — модуль обычного приложения). Код выполняется у каждого пользователя при входе в базу.
Пример открытия внешней обработки при старте:
Процедура ПриНачалеРаботыСистемы()
Если ПользователиИнформационнойБазы.ТекущийПользователь().Имя = "Оператор" Тогда
ОткрытьФорму("ВнешняяОбработка.ЗагрузкаДанных.Форма");
КонецЕсли;
КонецПроцедурыДля встроенной (добавленной в состав конфигурации) обработки форма открывается через ОткрытьФорму("Обработка.ИмяОбработки.Форма"). Внешнюю обработку из файла в управляемом приложении подключают через метод ВнешниеОбработки.Создать(ПутьКФайлу) с предварительным помещением файла во временное хранилище в клиент-серверном режиме.
Проверка результата: после входа в базу обработка должна открыться автоматически. Если код не срабатывает, проверьте, что изменения конфигурации обновлены (F7 в конфигураторе, «Обновить конфигурацию базы данных») и что пользователь входит именно в тот режим клиента, для которого написан модуль.
Способ 3. Регламентные задания для фонового выполнения
Когда обработка не требует интерактивного взаимодействия с пользователем, правильнее выполнять её фоном через регламентные задания. Задание создаётся в конфигураторе (ветка «Общие → Регламентные задания»), в свойстве «Имя метода» указывается экспортная процедура общего модуля, а расписание настраивается на запуск с нужной периодичностью.
Регламентное задание не привязано к запуску клиентского приложения конкретным пользователем: в клиент-серверном режиме оно исполняется на сервере по расписанию, в файловом — при работе любого клиента, если настроено фоновое выполнение. Это подходит для загрузки курсов, обмена данными, очистки устаревших записей.
Важный нюанс: код регламентного задания выполняется на сервере (или в фоновом сеансе), поэтому в нём нельзя открывать формы и вызывать интерактивные диалоги. Все действия должны быть программными: чтение файлов, запись данных, вызов веб-сервисов.
Способ 4. Подсистема «Дополнительные отчеты и обработки» (БСП)
В типовых конфигурациях на базе БСП (Управление торговлей, ERP, Бухгалтерия и другие) внешние обработки подключаются штатно через раздел «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки». Нужно включить соответствующую функциональную опцию и добавить файл обработки в справочник.
Сама по себе подсистема не запускает обработку при старте, но она решает смежную задачу: обработка становится частью интерфейса, доступной по правам, без ручного открытия файла. Для автозапуска её совмещают с кодом в модуле приложения или с регламентным заданием, которое вызывает метод подключённой обработки.
Сравнение способов и выбор под задачу
Сравнение вариантов
Без изменения конфигурации, быстро. Ограничение: нужен bat-файл или ярлык, срабатывает защита от опасных действий.
Гибкая логика по пользователям и условиям. Ограничение: требуется изменение конфигурации и снятие с поддержки.
Фоновое выполнение по расписанию, не зависит от пользователя. Ограничение: нельзя открывать формы, нужен серверный код.
Штатное подключение, управление правами. Ограничение: автозапуск придётся дорабатывать отдельно.
Правило выбора простое: разовый запуск на конкретном рабочем месте — командная строка; персональные сценарии для пользователей — модуль приложения; регулярные фоновые операции — регламентные задания; централизованное управление обработками в типовой конфигурации — подсистема БСП.
Как выбрать действие
Типичные ошибки и их устранение
Отдельная группа проблем — различие клиентов. Обработка, запущенная в толстом клиенте через /Execute, может вести себя иначе в тонком или веб-клиенте: часть методов недоступна, файловые операции требуют расширения работы с файлами. Всегда тестируйте сценарий именно в том клиенте, в котором работают пользователи.
Как проверить, что автозапуск работает
Как проверить результат
Обработка открывается сразу после входа
Появляется ошибка «файл не найден» или предупреждение безопасности
Форма открывается у заданных пользователей, у остальных — нет
Ошибка при входе у всех пользователей или код не выполняется
В журнале регистрации есть записи о выполнении без ошибок
Задание в состоянии «Ошибка» или не запускается по расписанию
Основной инструмент диагностики — журнал регистрации (в режиме предприятия: «Администрирование → Обслуживание → Журнал регистрации»). Отфильтруйте события по ошибкам и фоновым заданиям: там видно, запускалась ли обработка, с каким результатом и под каким пользователем.
Что важно запомнить
Автозапуск обработки в 1С реализуется четырьмя способами: параметр /Execute в командной строке, код в ПриНачалеРаботыСистемы, регламентные задания и подсистема БСП. Выбор зависит от доступа к конфигуратору, режима базы и того, нужна ли интерактивная работа. Перед изменениями конфигурации обязательно делайте резервную копию.
Частые вопросы
Можно ли запустить обработку при старте без изменения конфигурации?
Да. Используйте параметр командной строки /Execute с путём к epf-файлу, оформив команду в виде ярлыка или bat-файла. Конфигурация при этом не меняется, но пользователь может увидеть предупреждение защиты от опасных действий.
Почему обработка не запускается, хотя путь указан верно?
Чаще всего мешают права: в профиле групп доступа запрещено интерактивное открытие внешних обработок или включена защита от опасных действий. Также проверьте, что путь заключён в кавычки и файл доступен по указанному пути с рабочего места пользователя.
Как запускать обработку только для определённых пользователей?
В обработчике ПриНачалеРаботыСистемы добавьте проверку текущего пользователя через ПользователиИнформационнойБазы.ТекущийПользователь() или через роли (функция РольДоступна). Код внутри условия выполнится только для заданных учётных записей.
Чем регламентное задание отличается от запуска через модуль приложения?
Модуль приложения срабатывает при интерактивном входе пользователя и может открывать формы. Регламентное задание выполняется в фоновом сеансе по расписанию, не зависит от входа пользователей, но не может показывать интерфейс — только программные операции.
Работает ли автозапуск в веб-клиенте?
Частично. Код в модуле приложения выполняется и в веб-клиенте, но открытие внешних обработок из файловой системы и часть файловых операций ограничены. Для веб-клиента надёжнее использовать обработки, встроенные в конфигурацию или подключённые через подсистему БСП.
Опасно ли менять модуль приложения в рабочей базе?
Да, ошибка в ПриНачалеРаботыСистемы может помешать входу пользователей. Перед изменением сделайте выгрузку базы, тестируйте код на копии и по возможности оборачивайте вызовы в Попытка/Исключение, чтобы сбой обработки не блокировал запуск системы.