Скрипт для обновления базы с расширением из хранилища

22.01.24

База данных - Обновление 1С

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

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

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

Как результат: создал скрипт обновления, сделал его копии под каждую базу, сделал отдельный bat-файл для одновременного запуска всех скриптов обновления. Запуск скрипта по расписанию. Когда приезжаю на работу - весь контур уже находиться в актуальном состоянии. Данный скрипт можно применять и к рабочим базам.

Переменные выделял через {ИмяПеременной}

 

Служебное сообщение для определения, какая база обновляется

rem Is <ИмяБазыОбновления>

 

Для RAS: код для получения даты начала и окончания блокировки базы. Этот код нужен, если у вас поднят RAS. Получаем текущее время. Оно будет использоваться как дата начала блокировки базы. А дата окончания блокировки +1 час. Не нашел быстрых способов корректного вычисления времени в командной строке для всех случаев. У меня скрипты запускаются утром, и для меня это не настолько критично. Если у вас его нет, тогда просто пропускайте этот кусок.

For /f "tokens=1-3 delims=/. " %%a in ('date /t') do (set dateBegin=%%c-%%b-%%a)
set "minutesBegin=%time:~3,2%"
set /a "hoursBegin=%time:~0,2%"
set /a "hoursEnd=%hoursBegin:~-2%+1"
set hoursBegin=0%hoursBegin%
set hoursBegin=%hoursBegin:~-2%
set hoursEnd=0%hoursEnd%
set hoursEnd=%hoursEnd:~-2%
set dateTimeBegin=%dateBegin%T%hoursBegin%:%minutesBegin%:00
set dateTimeEnd=%dateBegin%T%hoursEnd%:%minutesBegin%:00

 

Устанавливаем переменные, которые будут содержать пусть к платформе(dirPlatform), адрес хранилища конфигурации(repositoryConfiguration), адрес хранилища расширения(repositoryExtension)

set dirPlatform=C:\Program Files\1cv8\{НомерПлатформы}\bin\
set repositoryConfiguration={АдресХранилищаКонфигурации}
set repositoryExtension={АдресХранилищаРасширения}

 

Для RAS: вносим идентификаторы кластера и информационной базы. Их можно взять из файла "C:\Program Files\1cv8\srvinfo\reg_1541\1CV8Clst.lst"

set clusterId={ИдентификаторКластера}
set infobaseId={ИдентификаторИнформационнойБазы}
set racExe="%dirPlatform%rac.exe"

 

Далее определяем исполняемый файл 1С.

set v8Exe="%dirPlatform%1cv8.exe"

 

Устанавливаем переменные с данными базы, кластера, логинами и паролями. Название расширение лучше иметь на латинице. У меня возникли проблемы с кодировкой. И чтобы на разных компьютерах с этой проблемой не связываться - переименовал на латиницу. Для работы скриптов я создал в каждой базе отдельного пользователя, через который скрипт будет авторизоваться в базах. "codAccessInfobase" - нужно, если используете RAS. Ранее была установлена блокировка и скрипт не сможет авторизоваться. Данный параметр устанавливается в свойствах базы в поле "Код разрешения".

set base={СерверКластера1С:Порт}\{ИмяБазыВКластере}
set extensionName={НазваниеРасширение}
set repositoryUser={ЛогинХранилищаОсновнойКонфигурации}
set repositoryPassword={ПарольХранилищаОсновнойКонфигурации}
set repositoryUserExtension={ЛогинХранилищаРасширения}
set repositoryPasswordExtension={ПарольХранилищаРасширения}
set configurationUser={ЛогинИнформационнойБазы}
set configurationPassword={ПарольИнформационнойБазы}
set codAccessInfobase={КодДоступаИнформационнойБазы}

 

Для RAS: устанавливаем имя сервера, где находится RAS(hostname), его порт(portHostName), и время паузы(timeoutLenght) - она нужна, чтобы после блокировки базы прошло указанное количество секунд. Тогда завершатся активные сеансы и не запустятся новые.

set hostname=dats-1cpprod-01.8bitov.com
set portHostName=1845
set timeoutLenght=180

 

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

start "" /wait %racExe%  infobase update --cluster=%clusterId% --infobase=%infobaseId% --infobase-user=%configurationUser% --infobase-pwd=%configurationPassword% --sessions-deny=on --scheduled-jobs-deny=on --denied-from=%dateTimeBegin% --denied-to=%dateTimeEnd% %hostname%:%portHostName%
start "" /wait TIMEOUT /T %timeoutLenght% /NOBREAK 

 

Одна особенность: нельзя одной строкой подключения сразу авторизоваться в нескольких хранилищах. Поэтому нужно подключаться последовательно к каждому хранилищу отдельно.

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

start "" /wait %v8Exe% DESIGNER /S %base% /UC %codAccessInfobase% /N %configurationUser% /P %configurationPassword% /ConfigurationRepositoryF%repositoryConfiguration% /ConfigurationRepositoryN %repositoryUser% /ConfigurationRepositoryP %repositoryPassword% /ConfigurationRepositoryUpdateCfg -force /DisableStartupDialogs
start "" /wait %v8Exe% DESIGNER /S %base% /UC %codAccessInfobase% /N %configurationUser% /P %configurationPassword% /UpdateDBCfg -Server /DisableStartupDialogs
start "" /wait %v8Exe% DESIGNER /S %base% /UC %codAccessInfobase% /N %configurationUser% /P %configurationPassword% /ConfigurationRepositoryF%repositoryExtension% /ConfigurationRepositoryN %repositoryUserExtension% /ConfigurationRepositoryP %repositoryPasswordExtension% /ConfigurationRepositoryUpdateCfg -Extension %extensionName% -force /DisableStartupDialogs
start "" /wait %v8Exe% DESIGNER /S %base% /UC %codAccessInfobase% /N %configurationUser% /P %configurationPassword% /UpdateDBCfg -Extension %extensionName% /DisableStartupDialogs

 

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

start "" /wait %v8Exe% DESIGNER /S %base% /UC %codAccessInfobase% /N %configurationUser% /P %configurationPassword% /DisableStartupDialogs /ReduceEventLogSize %dateBegin%

 

Для RAS: снимаем блокировку с фоновых заданий и клиентский сеансов и закрываем окно исполнение скрипта.

start "" /wait %racExe% infobase update --cluster=%clusterId% --infobase=%infobaseId% --infobase-user=%configurationUser% --infobase-pwd=%configurationPassword% --sessions-deny=off --scheduled-jobs-deny=off %hostname%:%portHostName%
exit

 

 
 Полный текст скрипта, чтобы было проще копировать

 

Буду признателен за критику и замечания.

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

Хранилище скрипт обновление пакетный.

См. также

Обновление 1С Программист 1С 8.3 Россия Бесплатно (free)

При разработке тиражного прикладного решения или при использовании автоматизации сборки вам потребуется механизм создания файлов поставки. В статье приведена шпаргалка по работе с ним.

11.02.2026    685    AntonovaElena    4    

15

Разработка внешних компонент Администрирование СУБД Linux Обновление 1С Системный администратор Программист Россия Абонемент ($m)

Cценарий python предназначен для автоматизации процессов установки СУБД PostgreSQL, клиентского приложения и сервера 1С, службы RAS а также  и деинсталляции последних в cреде операционной системы Astra Linux. Полный режим работы выполняет деинсталляцию предшествующей версии 1С и установку последующей.  Возможны также только деинсталляция или только установка. Сценарий тестирован в среде ОС Astra Linux SE v.1.7.x,v.1.8.x  

2 стартмани

03.02.2026    406    3    Магнат    1    

2

Инструменты администратора БД Обновление 1С Системный администратор Программист 1С 8.3 1С:Библиотека стандартных подсистем Россия Абонемент ($m)

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

2 стартмани

02.02.2026    346    3    burmsergey    0    

3

Обновление 1С Программист 1С 8.3 1С:Бухгалтерия 3.0 Россия Бесплатно (free)

Вы когда-нибудь обновляли старую доработанную типовую конфигурацию, доработанную на коленке? Или может вы сами хотите обновить у себя типовую, но боитесь грядущих сложностей? Рассказываю, как я типовую Бухгалтерию с самописной, сделанной "бизнесом" подсистемой обновлял. Надеюсь, мой опыт вам поможет.

27.01.2026    523    dobrotank    0    

2

Обновление 1С НДС 22% Программист Бухгалтер Пользователь 1С 8.3 1С:Управление торговлей 10 Бухгалтерский учет НДС Абонемент ($m)

В рамках обновления конфигурации УТ 1.1 реализована поддержка новых ставок НДС — 22%, 7% и 5%, а также соответствующих расчётных ставок. Изменения внедрены в соответствии с актуальными законодательными требованиями и обеспечивают корректное применение ставок в документах и справочниках. ДЛЯ ПРАВИЛЬНОЙ РАБОТЫ ОБНОВЛЕНИЯ ТРЕБУЕТСЯ СКАЧАТЬ ОБА АРХИВА (часть 1 и часть 2)

5 стартмани

26.01.2026    405    Asyst-pro    5    

1

EDT Обновление 1С Программист Бесплатно (free)

На примере рассмотрим одну из стратегий обновления проекта на новый релиз поставщика через 1С:EDT.

19.01.2026    2753    eakomarov    12    

20

Обновление 1С НДС 22% Программист Бухгалтер Пользователь 1С 8.3 1С:Управление торговлей 11 Россия НДС Абонемент ($m)

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

10 стартмани

15.01.2026    1907    5    aximo    0    

7

Обновление 1С Программист 1С 8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Абонемент ($m)

Позволяет получить список внешних отчетов/обработок, которые перестали работать после обновления конфигурации.

1 стартмани

17.12.2025    627    17    Efimoff    3    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. корум 291 22.01.24 22:51 Сейчас в теме
(0) Спасибо, занимательно и полезно.

Интересно, почему именно скриптами, не привлекая тот же обновлятор?
2. ke.92@mail.ru 112 23.01.24 05:53 Сейчас в теме
(1)Хотелось самому разобраться в пакетном режим. Когда знаешь особенности, можешь написать что-то специализированное для себя. + у нас в компании немного сложно с установкой новых программ.
dj_tol; корум; +2 Ответить
3. jcuken 18.04.24 09:01 Сейчас в теме
Название расширение лучше иметь на латинице. У меня возникли проблемы с кодировкой.


В начало скрипта добавь
chcp 1251
Aleksandr; Apiar; +2 Ответить
4. Snitkovski 88 27.01.25 09:35 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация