Запуск 1С:Предприятия из скрипта: параметры 1cv8, внешние обработки и расписание
Содержание
Программно запустить 1С:Предприятие 8.3 можно тремя способами: вызвать 1cv8.exe с параметрами командной строки, подключиться к
базе через COM-объект V83.COMConnector или поднять клиент через OLE-автоматизацию V83.Application. Самый простой вариант — строка вида 1cv8.exe ENTERPRISE /F "C:\Bases\Buh" /N Робот /P 123: она открывает файловую базу
под нужным пользователем без окна выбора.
Командная строка подходит для запуска обработок, выгрузки и обновления базы по расписанию. COM нужен, когда внешняя программа должна читать или писать данные 1С без интерфейса. OLE — когда нужен видимый клиент, которым управляет скрипт. Всё описанное относится к платформе в целом и не зависит от конфигурации: Бухгалтерия, ЗУП и УТ запускаются одинаково.
Какой исполняемый файл вызывать
В каталоге установки платформы лежат несколько программ, и для скриптов они не равнозначны.
| Файл | Где лежит | Для чего в скриптах |
|---|---|---|
1cestart.exe | C:\Program Files\1cv8\common\ | Стартер: сам выбирает версию платформы, показывает список баз |
1cv8.exe | C:\Program Files\1cv8\8.3.xx.xxxx\bin\ | Толстый клиент и Конфигуратор, все ключи пакетного режима |
1cv8c.exe | там же, в bin | Тонкий клиент: только режим 1С:Предприятие, без Конфигуратора |
Для автоматизации берите 1cv8.exe конкретной версии. Стартер удобен людям, но в скрипте он может открыть не ту платформу, если их на компьютере несколько.
💡 Чтобы скрипт не ломался после обновления платформы, вынесите путь к bin в переменную в начале bat-файла. Тогда при переходе на новую сборку правится одна строка.
Запуск 1С из командной строки: базовый синтаксис
Первым аргументом идёт режим запуска, затем ключи. Режимов три:
- 🟢
ENTERPRISE— пользовательский режим (1С:Предприятие); - 🛠
DESIGNER— Конфигуратор, в том числе пакетный; - 📁
CREATEINFOBASE— создание новой информационной базы.
Файловая база задаётся ключом /F, серверная — ключом /S в формате сервер\имя_базы:
rem Файловая база
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /F "C:\Bases\Buh" /N "Робот" /P "123"
rem Серверная база
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /S "srv1c\buh_main" /N "Робот" /P "123"
Если база уже есть в списке баз пользователя Windows, её можно открыть по имени из списка: /IBName "Бухгалтерия предприятия". Для скриптов это хуже: список баз у каждого пользователя свой, и под учётной записью планировщика нужной строки может не оказаться.
Если в базе включена аутентификация Windows, пароль не нужен. Ключ /WA+ заставляет войти под текущим пользователем ОС, /WA- — запрещает такой вход и требует /N и /P.
Пароль в bat-файле лежит открытым текстом. Заведите для скриптов отдельного пользователя 1С с минимальными правами и закройте папку со скриптами от посторонних.
Параметры командной строки 1cv8 для автоматизации
Ключей у платформы десятки, но для скриптов хватает полутора десятков. Сводная таблица:
| Ключ | Что делает |
|---|---|
/F "путь" | путь к каталогу файловой базы |
/S "сервер\база" | адрес серверной базы |
/N "имя" /P "пароль" | пользователь и пароль 1С |
/WA+ /WA- | разрешить или запретить вход через аутентификацию Windows |
/C "строка" | передать строку в базу, читается через ПараметрЗапуска |
/Execute "файл.epf" | открыть внешнюю обработку сразу после запуска |
/DisableStartupMessages | подавить стартовые предупреждения |
/DisableStartupDialogs | не показывать стартовые диалоги, в том числе окно ввода пароля |
/Out "файл.txt" | писать служебные сообщения в файл вместо окон |
/DumpResult "файл.txt" | записать код результата пакетной операции (0 — успех) |
/UC "код" | код разрешения входа при установленной блокировке сеансов |
/ClearCache | очистить кэш клиента перед стартом |
/RunModeOrdinaryApplication | открыть толстый клиент в режиме обычного приложения |
/L ru | язык интерфейса платформы |
Ключ /C — главный инструмент передачи команд в базу. Всё, что после него в кавычках, конфигурация получает как строку в глобальном свойстве ПараметрЗапуска. Дальше код модуля приложения разбирает её и решает, что делать.
В типовых конфигурациях на БСП часть таких команд уже обработана. Самая известная пара — /C "ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы": база выполняет обработчики обновления после смены релиза и закрывается сама.
Пакетный режим конфигуратора: выгрузка и обновление без окон
Режим DESIGNER с пакетными ключами выполняет операцию и закрывается, не показывая интерфейс. Так делают ночные выгрузки и обновление конфигурации
.
Пример выгрузки базы в файл .dt с журналом:
@echo off
chcp 65001 >nul
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
set STAMP=%date:~6,4%-%date:~3,2%-%date:~0,2%
%V8% DESIGNER /F "C:\Bases\Buh" /N "Админ" /P "secret" ^
/DumpIB "D:\Backup\buh_%STAMP%.dt" ^
/Out "D:\Backup\log_%STAMP%.txt" ^
/DumpResult "D:\Backup\result_%STAMP%.txt" ^
/DisableStartupDialogs
Другие часто используемые пакетные команды:
/UpdateDBCfg— обновить конфигурацию базы данных из основной конфигурации./LoadCfg "файл.cf"— загрузить конфигурацию из файла , затем обычно идёт/UpdateDBCfg./DumpCfg "файл.cf"— сохранить конфигурацию в файл./RestoreIB "файл.dt"— загрузить базу из выгрузки.
/RestoreIB полностью заменяет данные базы содержимым файла. Ошибка в пути к базе в скрипте — и вы перезапишете рабочую базу. Для загрузки .dt и обновления структуры базы нужен монопольный доступ: все пользователи должны выйти, их сеансы будут прерваны. Запускайте такие операции вне рабочего времени и с предупреждением.
Строку с датой %date:~6,4% проверьте на своём сервере: формат даты зависит от региональных настроек Windows. Для русской локали (08.10.2026) пример даёт 2026-10-08.
💡 chcp 65001 нужен, чтобы кириллица в путях и именах пользователей не превратилась в нечитаемые символы. Альтернатива — сохранить bat-файл в кодировке OEM 866 и обойтись без смены кодовой страницы.
Запуск внешней обработки при старте 1С
Ключ /Execute открывает внешнюю обработку
сразу после входа. Так автоматизируют задачи, которые требуют пользовательского режима: загрузку выписок, формирование отчёта, рассылку.
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /F "C:\Bases\Buh" ^
/N "Робот" /P "123" /Execute "C:\Scripts\Zagruzka.epf" ^
/C "Режим=Авто" /DisableStartupMessages
Чтобы обработка отработала без участия человека, логику кладут в обработчик ПриОткрытии основной формы. В конце работы обработка сама закрывает программу:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если СтрНайти(ПараметрЗапуска, "Режим=Авто") > 0 Тогда
ВыполнитьЗагрузкуНаСервере();
ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ВыполнитьЗагрузкуНаСервере()
// Здесь основная работа: чтение файла, запись документов
КонецПроцедуры
Параметр Ложь в ЗавершитьРаботуСистемы отключает вопрос «Завершить работу?». Без него сеанс зависнет в ожидании ответа, и следующий запуск по расписанию возьмёт ещё одну лицензию.
Две вещи, о которых часто забывают:
- 🔐 Защита от опасных действий. У пользователя 1С есть одноимённый флажок в карточке (Конфигуратор:
Администрирование → Пользователи). Пока он включён, при открытии внешней обработки платформа показывает предупреждение безопасности и ждёт нажатия кнопки. Для пользователя-робота флажок снимают. - 📂 Права на внешние обработки. В типовых конфигурациях на БСП у пользователя должно быть право интерактивно открывать внешние отчёты и обработки, иначе файл не откроется.
Подключение через COM и OLE: V83.COMConnector и V83.Application
COM-соединение (внешнее соединение) открывает базу без интерфейса. Внешняя программа — скрипт VBS, PowerShell, Python, другая база 1С — работает с объектами конфигурации, как серверный код.
Пример на VBScript, который подключается к файловой базе и выводит имя конфигурации:
Set Connector = CreateObject("V83.COMConnector")
Set Base = Connector.Connect("File=""C:\Bases\Buh"";Usr=""Робот"";Pwd=""123"";")
WScript.Echo Base.Metadata.Name
Set Base = Nothing
Для серверной базы строка соединения другая: Srvr="srv1c";Ref="buh_main";Usr="Робот";Pwd="123";. Через объект соединения доступны общие модули с флажком «Внешнее соединение», например Base.ОбменДанными.ВыгрузитьОстатки(), где ОбменДанными — ваш общий модуль.
OLE-автоматизация запускает полноценный клиент, которым управляет скрипт:
Set App = CreateObject("V83.Application")
App.Connect("File=""C:\Bases\Buh"";Usr=""Робот"";Pwd=""123"";")
App.Visible = True
Чем отличаются подходы:
| Способ | Интерфейс | Скорость старта | Когда выбирать |
|---|---|---|---|
Командная строка 1cv8 | есть (или пакетный режим) | средняя | обработки по расписанию, выгрузка, обновление |
COM V83.COMConnector | нет | быстрая | интеграции, чтение и запись данных из внешней программы |
OLE V83.Application | есть | медленная | нужен видимый клиент под управлением скрипта |
Регистрация компонент
COM-объект живёт в библиотеке comcntr.dll. После установки или обновления платформы её регистрируют от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\comcntr.dll"
OLE-сервер регистрирует сам исполняемый файл: 1cv8.exe /RegServer.
Разрядность компоненты должна совпадать с разрядностью процесса, который её вызывает. Если стоит 32-битная платформа, VBS запускайте через C:\Windows\SysWOW64\cscript.exe, а не через обычный cscript.
Каждое COM-соединение и каждый OLE-клиент занимают клиентскую лицензию так же, как обычный сеанс. Закрывайте соединение явно, присваивая объекту Nothing.
Запуск по расписанию через Планировщик заданий Windows
Готовый bat-файл ставят в Планировщик заданий. Из командной строки задача создаётся так:
schtasks /Create /TN "1C_Vygruzka" /TR "C:\Scripts\backup_buh.bat" /SC DAILY /ST 02:00 /RU "DOMAIN\svc1c" /RP "пароль_учётки"
То же самое в графическом интерфейсе:
- Откройте
taskschd.mscи выберите «Создать задачу » (не «простую»). - На вкладке «Общие» укажите служебную учётную запись Windows.
- На вкладке «Триггеры» задайте время, например ежедневно в 02:00.
- На вкладке «Действия» укажите путь к bat-файлу и в поле «Рабочая папка» — каталог скрипта.
- На вкладке «Параметры» ограничьте время выполнения, чтобы зависший процесс не висел сутками.
Пакетный конфигуратор и COM-соединение работают и при режиме «Выполнять вне зависимости от регистрации пользователя». Запуск ENTERPRISE с открытием формы обработки надёжнее работает, когда служебный пользователь вошёл в систему: клиенту нужен рабочий стол. Если задача стартует, но ничего не делает, проверьте этот режим в первую очередь.
Чтобы bat-файл дождался окончания работы 1С перед следующими командами (архивация, копирование на другой диск), вызывайте клиент через start "" /wait:
start "" /wait %V8% DESIGNER /F "C:\Bases\Buh" /N "Админ" /P "secret" /DumpIB "D:\Backup\buh.dt"
Почему 1С не запускается из скрипта: ошибки и диагностика
Первый шаг всегда один: добавьте /Out "C:\Scripts\log.txt" и посмотрите текст ошибки. Окна при запуске из планировщика никто не видит, а журнал сохраняет всё.
Ещё две частые причины, которые журнал не покажет прямо:
- 🔤 Пробелы в путях без кавычек.
C:\Program Files\...без кавычек cmd режет на части, и 1С получает путьC:\Program. - 🧷 Удвоенные кавычки в строке соединения. В VBS кавычка внутри строки пишется как
"". Одинарная кавычка обрывает строку, и скрипт падает с синтаксической ошибкой.