upd. 2020.10.16 Актуальная версия всегда в https://github.com/WonderMr/C1Updater
upd. 2019.07.19 Обработка закрытия 1С после обновления БСП боль
upd. 2019.07.18 Блокировка РЗ остаётся в том же состоянии, что была до обновления базы.
Этот скрипт на PowerShell обучен:
1. Блокировать указанную базу 1С предприятия (через COMConnection)
2. Выгонять из неё всех пользователей (через COMConnection)
?3. Выполнить внешюю обработку перед обновлением, если нужно. Например, отвязать базу от РИБ.
4а. Загрузить конфигурацию из файла CF
или
4б. Загрузить конфигурацию из хранилища конфигураций.
5. Применить конфигурацию базы данных.
?6. Выполнить внешнюю обработку после обновления. Например, привязать обратно к РИБ.
?7. Запускать клиента с ключом ЗапуститьОбновлениеИнформационнойБазы, если это необходимо.
8. Разблокировать базу.
Особенности:
- Все этапы выполнения скрипта обновления, а так же сообщения от приложения 1С логгируются.
- Если будут выполняться внешние обработки, то перед их выполнением для обрабатываемой базы выключается защита от опасных действий через файл conf.cfg - у пользователя должны быть соответствующие права. Перед завершением скрипта всё возвращается на место.
- Скрипт использует ту версию 1С, COM-коннектор которой зарегистрирован.
- Если на любом этапе возникнет проблема, то скрипт завершит работу с соответствующей записью в логе, а база останется заблокированной.
Параметры запуска:
- TargetBase - имя целевой базы для обновления
- TargetBaseServer - имя сервера целевой базы для обновления
- TargetBasePort - порт сервера целевой базы если отличается от стандартного то 1541
- TargetBaseAgentPort - порт агента сервера целевой базы если отличается от стандартного то 1540
- PermissionCode - код разрешения доступа если не указан то устанавливается произвольный
- ApplyCFPath - путь к применяемому файлу конфигурации если отсутствует то просто применяем конфигурацию
- WorkloadBeforeUpdatePath - имя обработки выполняемой перед обновлением конфигурации. Если файла нет пропускаем этап
- WorkloadAfterUpdatePath - имя обработки выполняемой перед обновлением конфигурации. Если файла нет пропускаем этап
- BaseUser - имя пользователя для подключения к базе
- BaseUserPass - пароль пользователя для подключения к базе
- ConfigurationRepositoryF - адрес хранилища конфигурации
- ConfigurationRepositoryN - имя пользователя хранилища конфигурации
- ConfigurationRepositoryP - пароль пользователя хранилища конфигурации
- UpdateByClientInTheEnd - /C ЗапуститьОбновлениеИнформационнойБазы