Скрипт обновления конфигурации

Как обновить конфигурацию базы? Столько всего сделать надо:
И базу заблокировать, и пользователей выгнать. А ещё надо дождаться загрузки конфигурации и после этого применить её. Если же конфигурация на БСП, то запустить с ключом /C ЗапуститьОбновлениеИнформационнойБазы. И только потом можно пускать пользователей.
А ещё на каждом этапе надо ждать окончания предыдущего.
Это скучно. Давайте заливать конфигурацию в базы весело!

upd. 2024.07.19 Обработка закрытия 1С после обновления БСП боль

upd. 2024.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 ЗапуститьОбновлениеИнформационнойБазы

14 Comments

  1. capitan

    Подтвердить легальность обновления ?

    Reply
  2. t.v.s.

    Вы безусловно молодец!

    Но если это сделано не ради фана, то попробуйте посмотреть на Обновлятор, он умеет все тоже самое и еще чуть-чуть.

    Reply
  3. tvm

    еще добавить выгрузку изменений если есть риб+ загрузка их в риб и обновление периферийных баз

    Reply
  4. MrWonder

    (2) Спасибо.

    Я видел и обновлятор, и деплойку.

    Reply
  5. MrWonder

    (1) Такой задачи у меня не было.

    Reply
  6. MrWonder

    (3) Присоединяйтесь к разработке. Если готовы, то напишите.

    Reply
  7. tvm

    (6) я свое отписал на прошлой работе )))

    Reply
  8. user634257_mryzhov

    (4) А в чем отличие от деплойки и обновлятора?

    Reply
  9. MrWonder

    (8) да много чем. Другие умеют большее, у кого-то есть GUI, за какой-то просят деньги, все написаны на разных языках, для кого-то нужен фреймворк etc etc etc

    Reply
  10. webester

    (4)Наличие обновлятора никак не влияет на необходимость таких скриптов. Как раз хотел садиться писать, что-то подобное. А тут оп и готово.

    Reply
  11. user1131250

    Спасибо! Не знаю как ответить в личику. Поставлю звезды!!!

    Reply
  12. ybatiaev

    (4) Добрый день!

    А есть наработки как с командой строки подтвердить легальность и доустановить обновление?

    У нас 600 баз

    Reply
  13. ybatiaev

    (1) А есть у Вас уже наработки как с командой строки подтвердить легальность и доустановить обновление? Там ещё же нужно доустановить задачи в фоне…

    У нас 600 баз

    Reply
  14. capitan

    (14)Постом ниже ответили

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *