Командная строка - это просто, или три примера автоматизации рутины

18.03.25

База данных - Администрирование СУБД

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

Введение

 
 Небольшой дисклеймер

 Статья нацелена на то, чтобы показать примеры работы с 1С из командной строки. Если вы ничего не знаете про параметры командной строки, то предварительно можно ознакомиться с документацией на ИТС: Приложение 7. Параметры командной строки запуска «1С:Предприятия».

Работа с 1С из командной строки - хороший способ автоматизировать рутину и экономить своё время. Но мало знать, что инструмент существует, важно понимать, кто и как его использовать. Именно поэтому я решил написать эту статьи и показать то, с чего начинал работать я.

 

Пример 1 - автовход в предприятие, конфигуратор и хранилище

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

rem вход в файловую базу в конфигуратор
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" DESIGNER  /f"C:\Work\1c_bases\testHran" /u"Администратор" /p"123"

rem вход в файловую базу в предприятие
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" ENTERPRISE /f"C:\Work\1c_bases\testHran" /u"Администратор" /p"123"

rem вход в серверную базу в конфигуратор
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" DESIGNER  /s"server\testbase" /u"Администратор" /p"123"

rem вход в базу и авторизация в хранилище
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" DESIGNER  /f"C:\Work\1c_bases\testHran" /u"Администратор" /p"123" /ConfigurationRepositoryF"tcp://test:1849/ERP/ERPdev" /ConfigurationRepositoryN "testUser" /ConfigurationRepositoryP "testPasswd"

 

Пример 2 - Обновление из хранилища базы разработки с созданием резервной копии

Ежедневное получение всех наработок из хранилища разработки считаю правилом хорошего тона. Обновление позволяет всегда поддерживать базу разработки в актуальном состоянии, не допустить от ошибок использования устаревших объектов и методов и т.д. Но это рутина. А значит, есть простор для автоматизации.

rem Обновить конфигурацию-источник из хранилища до последней версии и автоматически обновим базу данных
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" DESIGNER  /f"C:\Work\1c_bases\testHran" /u"Администратор" /p"123" /ConfigurationRepositoryF"tcp://test:1849/ERP/ERPdev" /ConfigurationRepositoryN "testUser" /ConfigurationRepositoryP "testPasswd" /ConfigurationRepositoryUpdateCfg -force /UpdateDBCfg

А перед обновлением неплохо бы сохранить себе свою конфигурацию.

rem Создаём копию текущей конфигурации
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" DESIGNER  /f"C:\Work\1c_bases\testHran" /u"Администратор" /p"123" /ConfigurationRepositoryF"tcp://test:1849/ERP/ERPdev" /ConfigurationRepositoryN "testUser" /ConfigurationRepositoryP "testPasswd" /DumpCfg"C:\tmp\tempCFG.cf"

 

Пример 3 - разворачивание новой конфигурации для разработки, создание хранилища и пары ролей к нему

Бывает, что для разработки под задачу необходимо создавать отдельное хранилище. Или это нужно делать для каждого нового разработчика. А значит, есть простор для автоматизации.

rem Создание информационной базы
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" CREATEINFOBASE "File=""C:\Work\1c_bases\test"""

rem Обновить конфигурацию-источник из хранилища до последней версии
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" DESIGNER  /f"C:\Work\1c_bases\testHran" /u"Администратор" /p"123" /ConfigurationRepositoryF"tcp://test:1849/ERP/ERPdev" /ConfigurationRepositoryN "testUser" /ConfigurationRepositoryP "testPasswd" /ConfigurationRepositoryUpdateCfg -force /UpdateDBCfg

rem Выгрузить конфигурацию-источник в файл
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" DESIGNER  /f"C:\Work\1c_bases\testHran" /u"Администратор" /p"123" /ConfigurationRepositoryF"tcp://test:1849/ERP/ERPdev" /ConfigurationRepositoryN "testUser" /ConfigurationRepositoryP "testPasswd" /DumpCfg"C:\tmp\tempCFG.cf"


rem Загрузить конфигурацию источника в конфигурацию-приёмник
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" DESIGNER  /f"C:\Work\1c_bases\test" /LoadCfg "C:\tmp\tempCFG.cf"
  
rem обновить базу данных после загрузки
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" DESIGNER  /f"C:\Work\1c_bases\test" /UpdateDBCfg

rem отвязать загруженную конфигурацию от хранилища
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" DESIGNER  /f"C:\Work\1c_bases\test" /ConfigurationRepositoryUnbindCfg -force

rem Создание хранилища конфигурации
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" DESIGNER  /f"C:\Work\1c_bases\test" /ConfigurationRepositoryCreate /ConfigurationRepositoryF"tcp://test/ERP/test/test" /ConfigurationRepositoryN "Администратор" /ConfigurationRepositoryP "123"

rem Создание пользователя
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" DESIGNER  /f"C:\Work\1c_bases\test" /ConfigurationRepositoryF"tcp://test/ERP/test/test" /ConfigurationRepositoryN "Администратор" /ConfigurationRepositoryP "123" /ConfigurationRepositoryAddUser -User tests -Pwd test -Rights ReadOnly
 
 То же самое, но с параметрами бат-файла

 

set PATH_Platform="C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe"
set PATH_To_NewFileBase="C:\Work\1c_bases\test"
set PATH_To_FileBaseWorkHran="tcp://test:1849/ERP/ERPdev"
set PATH_To_TMPCF="C:\tmp\tempCFG.cf"

set DefaultUser="Администратор"
set DefaultPassword=""

set PATH_To_WorkHran="tcp://test:1842/ERP/dev"
set WorkHranUser="Администратор"
set WorkHranPassword=""

rem set PATH_To_NewHran="tcp://test:1849/ERP/testdev"
set PATH_To_NewHran="C:\Work\1c_hran\test_new"
set NewHranUser="Администратор"
set NewHranPassword="123"

rem Создание информационной базы
%PATH_Platform% CREATEINFOBASE "File=%PATH_To_NewFileBase%"

rem Обновить конфигурацию-источник из хранилища до последней версии
%PATH_Platform% DESIGNER  /f%PATH_To_FileBaseWorkHran% /n%DefaultUser% /p%DefaultPassword% /ConfigurationRepositoryF%PATH_To_WorkHran% /ConfigurationRepositoryN%WorkHranUser% /ConfigurationRepositoryP%WorkHranPassword% /ConfigurationRepositoryUpdateCfg -force /UpdateDBCfg /DisableStartupDialogs

rem Выгрузить конфигурацию-источник в файл
%PATH_Platform% DESIGNER  /f%PATH_To_FileBaseWorkHran% /n%DefaultUser% /p%DefaultPassword% /ConfigurationRepositoryF%PATH_To_WorkHran% /ConfigurationRepositoryN%WorkHranUser% /ConfigurationRepositoryP%WorkHranPassword%  /DumpCfg%PATH_To_TMPCF% /DisableStartupDialogs

rem Загрузить конфигурацию источника в конфигурацию-приёмник
%PATH_Platform% DESIGNER  /f%PATH_To_NewFileBase% /LoadCfg%PATH_To_TMPCF% /DisableStartupDialogs

rem обновить базу данных после загрузки
%PATH_Platform% DESIGNER  /f%PATH_To_NewFileBase% /UpdateDBCfg /DisableStartupDialogs

rem отвязать загруженную конфигурацию от хранилища
%PATH_Platform% DESIGNER  /f%PATH_To_NewFileBase% /ConfigurationRepositoryUnbindCfg -force /DisableStartupDialogs

rem Создание хранилища конфигурации
%PATH_Platform% DESIGNER  /f%PATH_To_NewFileBase% /ConfigurationRepositoryF%PATH_To_NewHran% /ConfigurationRepositoryN%NewHranUser% /ConfigurationRepositoryP%NewHranPassword% /ConfigurationRepositoryCreate /DisableStartupDialogs

rem Создание пользователя "ТолькоПросмотр"
%PATH_Platform% DESIGNER  /f%PATH_To_NewFileBase% /ConfigurationRepositoryF%PATH_To_NewHran% /ConfigurationRepositoryN%NewHranUser% /ConfigurationRepositoryP%NewHranPassword% /ConfigurationRepositoryAddUser -User"ТолькоПросмотр" -Pwd"" -Rights ReadOnly /DisableStartupDialogs


 

А что дальше?

У 1С есть механизмы, позволяющие оптимизировать выполнение сценариев: пакетный режим конфигуратора или автономный сервер.

У фирмы 1с есть "1с:Исполнитель" - продукт, который так же можно использовать для автоматизации связанных с 1С действий.

Если oScript, а к нему vrunner и множество других полезных инструментов.

 

А зачем?

При наличии замечательных инструментов, описанных выше, - зачем знать, как пользоваться командной строкой?

Как говорит Роберт Мартин - "зависимость от деталей реализации - это плохо". Под данную задачу трактовать это можно так: необходимо уметь делать автоматизацию с использованием любых доступных инструментов, а не только с одним конкретным.

А ещё на практике мне часто попадались случаи, когда клиенту нельзя поставить ничего лишнего. И тогда остаётся только использовать возможности командной строки. 

 

Заключение

Автоматизация своей работы позволяют вам экономить самое важное - экономить своё и не только своё время. А что может быть лучше?

С уважением, Вдовенко Сергей.

 

Послесловие и использованные источники

Использовать командную строку я в основном учился по документации к платформе. Однако и на Инфостарте есть замечательные стать, знакомящие нас с этим инструментом. Все ссылки будут ниже. 

1. Приложение 7. Параметры командной строки запуска «1С:Предприятия».

2. Виктория Коршанова (Chif13) - Параметры командной строки 1С:Предприятие

3. Франко Деллиани (Franco) - Работа с хранилищем конфигураций из командной строки

4. Мои заметки в гитхабе про командную строку 

Вступайте в нашу телеграмм-группу Инфостарт

Хранилище Командная строка Автоматизация

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

HighLoad оптимизация Администрирование СУБД Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бухгалтерский учет Бесплатно (free)

После миграции с MS SQL на PostgreSQL закрытие месяца в 1С:ERP стало идти 8 часов вместо 12 минут. Рассказываем, как мы нашли причину в оценке Hash Join, которую планировщик завышал в миллионы раз, и как исправили её так, что проблемный запрос теперь выполняется за 18 секунд вместо часа.

19.10.2026    1011    Tantor    0    

10

Администрирование СУБД HighLoad оптимизация Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

Большинство материалов о компрессии в PostgreSQL отвечают на вопрос «во сколько раз удалось уменьшить базу». Мы предлагаем посмотреть на проблему с другой стороны — какой ценой достигается эта экономия? В статье разбираем архитектурные компромиссы различных подходов к компрессии страниц, объясняем, почему при разработке CSM в Tantor Postgres отказались от погони за максимальным коэффициентом сжатия, и показываем результаты нагрузочных испытаний на реальных базах 1С.

01.10.2026    1500    Tantor    6    

18

DevOps и автоматизация разработки Администрирование СУБД Групповая разработка (Git, хранилище) Разработчик 1С 8.3 Абонемент ($m)

В корпоративных инсталляциях «1С:Предприятие 8.3» под управлением PostgreSQL всё чаще проявляются архитектурные пределы масштабирования: рост числа пользователей, обязательная маркировка, плотный поток API-интеграций и высокая стоимость простоя. Вводная часть цикла разбирает ключевые факторы современной эксплуатационной нагрузки и формирует инженерную методологию эволюционной модернизации без остановки продуктивного контура. Материал основан на практическом кейсе «Торговый контур» и показывает, как определить целевые метрики (p95, MTTR, APDEX), выстроить наблюдаемость, стабилизировать работу кластера и подготовить инфраструктуру к дальнейшему масштабированию. Публикация задаёт фундамент для последующих частей, посвящённых телеметрии, оптимизации PostgreSQL, CI/CD и архитектурному росту.

1 стартмани

10.09.2026    1566    Ninel_S    0    

6

HighLoad оптимизация Администрирование СУБД Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бесплатно (free)

В рамках 18 релиза СУБД Tantor Postgres мы рассказывали об оптимизациях, которые помогают планировщику сделать более точный выбор между Nested Loop и Hash Join. В следующем релизе у нас планируются оптимизации, которые позволят ускорить выполнение как Nested Loop, так и Hash Join. Сегодня мы расскажем об одном из таких методов - фильтре Блума.

31.08.2026    6160    Tantor    3    

18

Администрирование СУБД Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Мы подготовили для сообщества Infostart.ru практическое занятие, в котором каждый желающий сможет: научиться собирать реальные данные о процессах кластера 1С; выявлять «перестарков» — процессы старше периода и без соединений; выполнять безопасный перезапуск (с dry-run и подтверждением); настраивать автоматическую проверку через systemd на Linux; отправлять уведомления (Telegram, почта) при обнаружении проблем; работать с логами, ротацией, профилями кластеров и конфигурацией; развернуть полноценный учебный проект AdminClusterMonitor у себя в тестовой среде.

30.08.2026    1769    Ninel_S    2    

6

Администрирование СУБД Системный администратор 1С:Предприятие 8 Бесплатно (free)

На infostart.ru вышел разбор Ивана Недомолкова «Сервер 1С падает: настройка сбора дампов (logcfg.xml), лимиты памяти и передача дампа в поддержку» - это хорошая инструкция, как ловить и разбирать падение rphost постфактум: logcfg.xml, procdump, анализ дампа. Но там нет ответа на вопрос «а почему кластер вообще прибил процесс сам, ещё до всякого краша». Мы дополняем разбор тремя сводными таблицами лимитов памяти и автомасштабирования кластера - и заодно фиксируем, чем в этой части лицензия ПРОФ урезана относительно КОРП.

12.08.2026    2503    Ninel_S    5    

6

Администрирование СУБД Системный администратор Разработчик Бесплатно (free)

5,5 тысячи пользователей в единой базе 1С, розница в режиме 24/7 и SLA 99,98% – в таких условиях любая авария быстро превращается в очереди на кассах, потерю денег и давление со стороны бизнеса. Показываем, как выстроить процесс аварийно-восстановительных работ: от первых алертов и базового скрининга системы до подключения команды, проверки гипотез и дебрифа после инцидента. Разбираем, как метрики, дашборды, техжурнал, Zabbix, Prometheus, Grafana, Telegram-боты и скрипты помогают не гадать, а быстро находить причину проблемы. На реальных авариях объясняем, почему «быстро» не должно означать «рискованно», как работа над ошибками снижает панику и почему каждая авария может сделать систему надежнее.

11.08.2026    3453    jul.dolganova    9    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. avbolshakov 31.01.23 14:51 Сейчас в теме
Не оч. понял про вход в систему - так вы как автоматизировали это? в командной строке алиасы какие-то добавили? или батник?
2. zeltyr 754 01.02.23 11:02 Сейчас в теме
(1) Я пользуюсь фаром - там есть пользовательское меню, где можно команды запуска прописывать.
Прикрепленные файлы:
3. teller 03.02.23 07:55 Сейчас в теме
(2) фар здесь лишний, достаточно ярлык к батнику с мешюшкой команд
5. zeltyr 754 03.02.23 11:31 Сейчас в теме
(3) В моём случае - фар инструмент работы с файлами, совместно с проводником. И наличие такого меню - приятная добавка, которой и пользуюсь. А в целом вы правы, достаточно и батника с меню.
4. nosferatu20913 48 03.02.23 09:19 Сейчас в теме
Лучше использовать для запуска не физический путь а, "/IBName"
6. Seraph6 27.03.23 13:43 Сейчас в теме
Использовал батники для автоматизации сохранения DTшников. Версия платформы была 8.3.16. Все прекрасно работало, из 1 батника запускался последовательно Конфигуратор в quiet режиме, сохранял базу в DTшник, лог тоже складывал в папочку. Если вдруг чего не так, просто записывал ошибку в лог и шел обрабатывать следующую базу.

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

Вопрос - какой-то ключ или параметр есть для запуска в фоновом "тихом" режиме без интерфейса? Или как заставить новую платформу отрабатывать батник по старой схеме?
7. mybracho 03.04.23 10:47 Сейчас в теме
а почему пользователь обозначается с ключом /u, если было вроде /n ?
проверил, с u не работает, с n работает
8. Viktor_Ermakov 419 31.03.26 09:39 Сейчас в теме
Вот сейчас делаю создание нового хранилища, и не создается почему то оно:
"%V8_EXE%" DESIGNER /S "%IB_CONNECTION%" /N "%DB_USER%" /P "%DB_PASS%" /ConfigurationRepositoryCreate /ConfigurationRepositoryF "%STORAGE_PATH%" /ConfigurationRepositoryN "%NEW_ST_USER%" /ConfigurationRepositoryP "%NEW_ST_PASS%" /Out "%LOG_FILE%" -NoTruncate /AgentMode

Если делать без агентского режима, то зависает на окне создания хранилища где нужно ввести путь к хранилищу
9. Viktor_Ermakov 419 31.03.26 11:03 Сейчас в теме
(8)
Все, разобрался. Нужно указывать /DisableStartupDialogs обязательно, без этого скрипт зависает, а /AgentMode убрать
Для отправки сообщения требуется регистрация/авторизация