Как открыть обработку .epf сразу при старте 1С: ключи, примеры и расписание
Содержание
Внешняя обработка запускается из командной строки ключом /Execute: 1cv8.exe ENTERPRISE /F"C:\Bases\Buh" /N"Робот" /P"пароль" /Execute"C:\Obr\Выгрузка.epf". Платформа открывает базу и сразу показывает основную форму обработки, без меню «Файл → Открыть».
Частое заблуждение — что /Execute сам «выполняет» обработку и закрывает 1С. Нет: ключ только открывает форму. Чтобы задача отработала без человека и 1С завершилась, нужен код в самой обработке. Ниже — строки запуска, этот код, параметры, планировщик и разбор сбоев.
Из чего состоит строка запуска 1С с обработкой
Строка собирается из четырёх частей: исполняемый файл, режим, адрес базы и ключи.
| Часть | Пример | Зачем |
|---|---|---|
| Исполняемый файл | "C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" | Конкретная версия платформы |
| Режим | ENTERPRISE | Пользовательский режим (не Конфигуратор) |
| База | /F"C:\Bases\Buh" или /S"srv1c\buh" | Какую информационную базу открыть |
| Пользователь | /N"Робот" /P"пароль" или /WA+ | Авторизация без окна входа |
| Обработка | /Execute"C:\Obr\Выгрузка.epf" | Что открыть после старта |
| Параметр | /C"режим=выгрузка" | Строка для кода обработки |
Полезные дополнительные ключи:
- 🔇
/DisableStartupMessages— подавляет стартовые предупреждения (например, о несовпадении конфигурации). - 🚫
/DisableStartupDialogs— не показывает стартовые диалоги; если авторизация не прошла, 1С не будет ждать ввода пароля. - 🔐
/WA+//WA-— включить или запретить вход по учётной записи Windows. - 🗂
/IBName"Бухгалтерия"— открыть базу по имени из списка баз, а не по пути.
Указывайте полный путь к 1cv8.exe нужной версии, а не ярлык 1cestart.exe. Лаунчер сам выбирает версию платформы, и после установки новой сборки обработка может открыться не той, на которой вы её проверяли.
Путь к .epf с пробелами обязательно берите в кавычки. Кириллица в пути допустима, но в bat-файле нужна правильная кодировка — об этом в разделе про планировщик.
Строка запуска для файловой и клиент-серверной базы
Разница только в ключе адреса базы. Всё остальное одинаково.
Файловая база
Ключ /F и путь к каталогу, где лежит 1Cv8.1CD. Сам файл 1Cv8.1CD в пути не указывайте.
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Torgovlya" /N"Робот" /P"Qw12345" /DisableStartupMessages /Execute"D:\Obr\ZagruzkaCen.epf"
Если база на сетевой папке, пишите UNC-путь: /F"\\fileserver\1c\Torgovlya". Подключённая буква диска в задании планировщика часто не видна — у задания своя сессия.
Клиент-серверная база
Ключ /S в формате сервер\имя_базы. Имя базы — то, что зарегистрировано в кластере, а не название в списке у пользователя.
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /S"srv1c\buh_main" /N"Робот" /P"Qw12345" /Execute"C:\Obr\Vygruzka.epf"
Если кластер работает не на стандартном порту, порт указывают после имени сервера: /S"srv1c:2541\buh_main".
Путь к .epf в серверном варианте — путь на компьютере, где запущен клиент, а не на сервере 1С. Файл обработки открывает клиентское приложение.
| Файловая | Клиент-серверная | |
|---|---|---|
| Ключ базы | /F"каталог" | /S"сервер\база" |
Где лежит .epf | На компьютере клиента | На компьютере клиента |
| Узкое место | Блокировки файла базы при работе пользователей | Лицензия и доступность кластера |
| Альтернатива расписанию | Нет регламентных заданий без отдельного запуска | Регламентные задания на сервере |
Ключ /Execute и передача параметров в обработку
Сам по себе /Execute откроет основную форму обработки и будет ждать. Чтобы запуск был «без рук», форма должна сама начать работу и сама закрыть 1С.
Код для управляемой формы
Схема: при открытии формы подключить обработчик ожидания, в нём выполнить работу на сервере и завершить сеанс. Обработчик ожидания нужен, чтобы клиент успел полностью загрузиться.
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключитьОбработчикОжидания("ВыполнитьПакетно", 1, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПакетно()
Режим = ПараметрЗапуска; // строка из ключа /C
Результат = ВыполнитьНаСервере(Режим);
ЗавершитьРаботуСистемы(Ложь);
КонецПроцедуры
&НаСервере
Функция ВыполнитьНаСервере(Режим)
// здесь основная работа: запросы, запись документов, выгрузка
Возврат Истина;
КонецФункции
ЗавершитьРаботуСистемы(Ложь) закрывает 1С без вопроса пользователю. Без этой строки процесс 1cv8.exe останется висеть, а планировщик будет считать задачу выполняющейся.
Как передать параметры: ключ /C
Всё, что указано после /C, попадает в глобальное свойство ПараметрЗапуска в виде одной строки. Несколько значений удобно передавать через разделитель.
... /Execute"C:\Obr\Vygruzka.epf" /C"период=20260101;склад=Основной"
Разобрать строку в обработке:
&НаКлиенте
Функция РазобратьПараметры(Строка)
Параметры = Новый Соответствие;
Для Каждого Пара Из СтрРазделить(Строка, ";", Ложь) Цикл
Части = СтрРазделить(Пара, "=");
Если Части.Количество() = 2 Тогда
Параметры.Вставить(СокрЛП(Части[0]), СокрЛП(Части[1]));
КонецЕсли;
КонецЦикла;
Возврат Параметры;
КонецФункции
СтрРазделить есть в платформе 8.3.6 и новее. Кавычки внутри значения /C не используйте: командная строка их съест. Если нужно передать сложные данные, передайте путь к файлу с настройками и читайте его.
Сделайте в обработке «ручной» режим: если ПараметрЗапуска пустой, форма просто открывается для пользователя. Так одну обработку можно и запускать по расписанию, и проверять руками.
Автозапуск обработки через bat-файл и планировщик Windows
bat-файл
Удобнее вызывать из планировщика не 1cv8.exe напрямую, а bat-файл. В нём проще менять параметры и писать свой журнал.
@echo off
chcp 65001 > nul
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
set LOG=D:\Obr\logs\run_%date:~-4%%date:~3,2%%date:~0,2%.txt
echo %date% %time% старт >> %LOG%
start "" /wait %V8% ENTERPRISE /S"srv1c\buh_main" /WA+ /DisableStartupMessages /DisableStartupDialogs /Execute"D:\Obr\Vygruzka.epf" /C"режим=ночь"
echo %date% %time% завершено >> %LOG%
- ⏳
start "" /wait— bat ждёт закрытия 1С, а не идёт дальше сразу. - 🔤
chcp 65001и сохранение файла в UTF-8 нужны, если в путях или параметрах есть кириллица. Иначе 1С получит «кракозябры». - 📅 Выражение для имени журнала зависит от формата даты в Windows. Проверьте его на своём сервере командой
echo %date%.
Задание в планировщике
Задание можно создать в «Планировщике заданий» Windows или одной командой:
schtasks /Create /TN "1C\Vygruzka" /TR "D:\Obr\run_vygruzka.bat" /SC DAILY /ST 03:00 /RU "DOMAIN\svc_1c" /RP *
- Запускайте задание от служебной учётной записи, у которой есть права на каталог обработки, журнала и (для файловой базы) на каталог базы.
- На вкладке «Параметры» задайте «Остановить задачу, если она выполняется дольше» — например, 2 часа. Это страховка от зависания на неожиданном диалоге.
- Если используете
/WA+, привяжите эту учётную запись Windows к пользователю 1С на вкладке аутентификации в карточке пользователя.
Пароль в ключе /P виден в свойствах задания и в списке процессов. Для рабочих баз лучше вход по учётной записи Windows через /WA+, а bat-файл держать в каталоге, доступном только администраторам.
Проверка перед постановкой на расписание
Прежде чем доверить задачу планировщику, прогоните её вручную:
- Откройте командную строку от имени той же учётной записи, что указана в задании (
runas /user:DOMAIN\svc_1c cmd). - Запустите bat-файл и посмотрите, открывается ли 1С без диалогов и закрывается ли сама.
- Проверьте журнал bat-файла, файл-маркер и журнал регистрации базы.
- Запустите задание в планировщике командой «Выполнить» и убедитесь, что поле «Результат последнего запуска» показывает успешное завершение.
Ручной запуск от своей учётной записи ничего не доказывает: у вас другие права, другие сетевые диски и, возможно, другой пользователь 1С.
Каждый запуск занимает лицензию клиента на время работы. Ночью это не проблема, а днём при полностью занятых лицензиях обработка просто не запустится.
Как контролировать результат: журнал и ошибки
Закрытие 1С не говорит, что работа прошла успешно. ЗавершитьРаботуСистемы не возвращает код выхода, поэтому %ERRORLEVEL% в bat-файле по результату обработки ориентироваться нельзя.
Рабочая схема — три уровня контроля:
- Журнал регистрации. В обработке пишите события через
ЗаписьЖурналаРегистрации("Выгрузка.Ночная", УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки()). Смотреть их — в журнале регистрации базы с отбором по имени события. - Файл-маркер. В конце успешной работы обработка создаёт файл, например
D:\Obr\logs\ok_20260107.txt. bat-файл послеstart /waitпроверяетif existи пишет в свой журнал «успех» или «ошибка». - Попытка-Исключение. Всю серверную часть оберните в
Попытка ... Исключение ... КонецПопытки. Иначе необработанная ошибка покажет окно с сообщением, и 1С не закроется.
&НаСервере
Функция ВыполнитьНаСервере(Режим)
Попытка
// основная работа
ТекстовыйФайл = Новый ЗаписьТекста("D:\Obr\logs\ok.txt");
ТекстовыйФайл.ЗаписатьСтроку(Строка(ТекущаяДата()));
ТекстовыйФайл.Закрыть();
Возврат Истина;
Исключение
ЗаписьЖурналаРегистрации("Выгрузка.Ночная", УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат Ложь;
КонецПопытки;
КонецФункции
Код с &НаСервере в клиент-серверной базе пишет файл на сервере 1С, а не на компьютере, где работает планировщик. Путь к маркеру должен существовать там, где выполняется код, и у пользователя службы сервера 1С должны быть права на запись.
Типичные сбои и что с ними делать:
Толстый и тонкий клиент: какой выбрать для обработки
Ключ /Execute работает и в толстом клиенте (1cv8.exe), и в тонком (1cv8c.exe). Но поведение разное.
Толстый клиент 1cv8.exe | Тонкий клиент 1cv8c.exe | |
|---|---|---|
| Обычные формы обработок | Да, с ключом /RunModeOrdinaryApplication | Нет |
| Управляемые формы | Да (ключ /RunModeManagedApplication) | Да |
Подключение по /S | Да | Да |
| Код на клиенте | В режиме обычного приложения может читать данные базы напрямую | Только через серверные вызовы |
Когда что выбирать:
- 🧱 Обработка старая, с обычной формой — только толстый клиент и
/RunModeOrdinaryApplication. Тонкий её не откроет. - ☁️ База опубликована через веб-сервер и нет прямого доступа к кластеру — тонкий клиент
1cv8c.exeс ключом/WS"https://server/buh"вместо/S. - ⚙️ Новая обработка на управляемых формах — подойдёт любой, но толстый клиент проще: работает с файловой базой и в серверном варианте без лишних нюансов.
Если обработка разработана в одной конфигурации, а запускается в другой, проверьте платформу: обработка, сохранённая в более новой версии платформы, может не открыться в базе, где стоит платформа с номером ниже.
Когда обработку лучше не запускать из командной строки
Запуск клиента по расписанию — рабочий, но тяжёлый способ: он поднимает полноценный клиентский сеанс. Для регулярных задач есть варианты легче.
- 🕒 Регламентное задание. В клиент-серверной базе задачу можно встроить в конфигурацию или расширение как регламентное задание. Его выполняет сервер 1С по расписанию, без клиента и без планировщика Windows.
- 📦 Дополнительные обработки БСП. В типовых конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11) внешнюю обработку подключают в разделе
Администрирование → Печатные формы, отчёты и обработки(в УТ 11 раздел называетсяНСИ и администрирование). Для обработок, которые это поддерживают, команды можно выполнять по расписанию прямо из 1С. - 🔌 COM-соединение или внешние скрипты. Подходят, когда задача целиком серверная и форма вообще не нужна.
Командная строка с /Execute хороша, когда обработку нельзя встраивать в конфигурацию: база на поддержке без расширений, разовая миграция, файловый вариант без сервера.