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

Публикация № 961182

Администрирование - Администрирование данных 1С - Сервисные утилиты

обновление хранилище скрипт автоматически

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

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

Скачать файлы

Наименование Файл Версия Размер
Архив с файлами и примерами

.7z 11,97Kb
16.10.20
48
.7z 2020.10.07 11,97Kb 48 Скачать
Скрипт обновления конфигурации 2020.10.16

.ps1 29,76Kb
16.10.20
0
.ps1 29,76Kb Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. capitan 1745 11.12.18 13:25 Сейчас в теме
Подтвердить легальность обновления ?
5. MrWonder 628 11.12.18 15:32 Сейчас в теме
(1) Такой задачи у меня не было.
14. ybatiaev 51 21.03.19 18:16 Сейчас в теме
(1) А есть у Вас уже наработки как с командой строки подтвердить легальность и доустановить обновление? Там ещё же нужно доустановить задачи в фоне...
У нас 600 баз
15. capitan 1745 22.03.19 09:21 Сейчас в теме
19. VPanin56 98 19.06.20 07:09 Сейчас в теме
(14)
https://infostart.ru/public/1057624/

Все дописано на родном языке. Легальность подтверждается автоматом.

У нас так 200+ баз обновляются, до утра все успевают. разделено на потоки обновлений.
2. t.v.s. 99 11.12.18 13:31 Сейчас в теме
Вы безусловно молодец!
Но если это сделано не ради фана, то попробуйте посмотреть на Обновлятор, он умеет все тоже самое и еще чуть-чуть.
triera2000; +1 Ответить
4. MrWonder 628 11.12.18 15:31 Сейчас в теме
(2) Спасибо.
Я видел и обновлятор, и деплойку.
8. user634257_mryzhov 12.12.18 10:58 Сейчас в теме
(4) А в чем отличие от деплойки и обновлятора?
9. MrWonder 628 12.12.18 11:01 Сейчас в теме
(8) да много чем. Другие умеют большее, у кого-то есть GUI, за какой-то просят деньги, все написаны на разных языках, для кого-то нужен фреймворк etc etc etc
10. webester 33 12.12.18 11:09 Сейчас в теме
(4)Наличие обновлятора никак не влияет на необходимость таких скриптов. Как раз хотел садиться писать, что-то подобное. А тут оп и готово.
13. ybatiaev 51 21.03.19 18:09 Сейчас в теме
(4) Добрый день!
А есть наработки как с командой строки подтвердить легальность и доустановить обновление?
У нас 600 баз
25. MrWonder 628 07.10.20 13:08 Сейчас в теме
(13) Можно из коробки. А зачем обновлять 600 баз, если можно в одной всё хранить и обрабатывать. У меня сейчас в базе 333 организации живут. Баз в сотни раз меньше. До этого было около 1,5кк.
3. tvm 11.12.18 15:24 Сейчас в теме
еще добавить выгрузку изменений если есть риб+ загрузка их в риб и обновление периферийных баз
6. MrWonder 628 11.12.18 15:33 Сейчас в теме
(3) Присоединяйтесь к разработке. Если готовы, то напишите.
7. tvm 11.12.18 16:06 Сейчас в теме
(6) я свое отписал на прошлой работе )))
12. user1131250 21.01.19 13:54 Сейчас в теме
Спасибо! Не знаю как ответить в личику. Поставлю звезды!!!
16. Feelthis 36 14.01.20 20:59 Сейчас в теме
Подскажите пожалуйста, вот смотрю везде решения на PShell используют загрузку из cf файла. Что если у меня типовая конфа и мне нужно на 15+ релизов ее обновить. 1) Либо натянуть на нее cf последнего релиза - но так делать не рекомендуют (как я понимаю из-за возможных ошибок реструктуризации и пропуска служебных обновлений - хотя не знаю возможно ли такое? может если на 20+ релизов сразу последний cf натянуть? В общем с 1с давно работаю а так и не знаю можно ли натягивать последний cf на старую конфу?
2) Насколько я понимаю если я хочу последовательно обновлять на cfu каждого следующего макс возможного релиза, то придется на PShell писать логику скачивания установки/распаковки релизов и затем обновления в пакетном режиме последовательно. Нигде нет этой логики кроме как на языке 1С :) типа OneScript есть пример но хотелось бы это на PShell..
17. MrWonder 628 17.01.20 10:08 Сейчас в теме
(16)
1. Обновление на много релизов может пройти без проблем. А может и с проблемами. Использую скрипт обновления, вы увидите сообщения от 1С.
2. Возможно сотрудничество на коммерческой основе
18. VPanin56 98 19.06.20 07:08 Сейчас в теме
(16)
https://infostart.ru/public/1057624/

Все дописано на родном языке. Легальность подтверждается автоматом.
20. nikChernov 06.10.20 09:23 Сейчас в теме
начал тестить скрипт, и при попытке запустить получаю ошибку:
2020.10.06 08.43.51 ::: Всё плохо:
Не удается привязать аргумент к параметру "Path", так как он представляет собой пустую строку

На сколько я понимаю у меня все упирается в вот эти 2 строки:

$CLSID = (Get-ItemProperty -Path "HKCR:\V83.COMConnector\CLSID")."(default)"
$ComCntr = (Get-ItemProperty -Path "HKCR:\CLSID\$CLSID\InprocServer32")."(default)"

В powershell я не силен. Может подскажет кто как исправить?
21. nikChernov 06.10.20 11:56 Сейчас в теме
(20)
На моей Win 2016 с платформой 8.3.16.1148
эти строки выглядит вот так:
$CLSID = (Get-ItemProperty -Path "HKCR:\V83.COMConnector\CLSID")."(default)"
$ComCntr = (Get-ItemProperty -Path "HKCR:\WOW6432Node\CLSID\$CLSID\InprocServer32")."(default)"
22. MrWonder 628 06.10.20 12:21 Сейчас в теме
(21) Зарегистрируйте COM, можно прямо через батник. Только x64 (скорее всего powshell - x64. Он использует x64 V83.ComConnector)
23. nikChernov 07.10.20 12:45 Сейчас в теме
(22)
Все получилось практически!
Только после применения конфигурации не работает разблокировка базы
выдает ошибку
"Сбой при удаленном вызове процедуры. (Исключение из HRESULT: 0x800706BE)"
или на другом сервере
"Got Exception:
Внешний компонент создал исключение."

Не сталкивались с такими ошибками?
24. MrWonder 628 07.10.20 13:00 Сейчас в теме
(23) Сталкивался и исправил, обновил поставку и направил лс
Оставьте свое сообщение

См. также

daСклонение: склонение ФИО, должностей, чисел, прилагательных, существительных на языке 1С + ТестЦентр Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

Функция предназначена для склонения выражений, которые часто требуется при формировании печатных форм договоров и прочих печатных форм. Функция склоняет по падежам ФИО, должности, числительные, валюты, единицы измерения, предметы. Также функция склоняет глаголы и прилагательные по числам и родам и существительные по числам. Имеется режим определения рода переданного выражения. Поддержка форматной строки для вывода результата. Функция не использует внешние библиотеки и веб-сервисы, написана на чистом языке 1С, и поэтому легко встраивается в любую конфигурацию или внешнюю обработку. Правила склонения оформлены в виде таблицы и могут быть легко изменены при необходимости.

1 стартмани

14.02.2015    104410    98    daMaster    90    

Сравнение реального дохода со средним доходом из API.HH.RU

Зарплата Управленческие v8 v8::СПР ЗУП3.x УУ Абонемент ($m)

Внешняя обработка на управляемой форме для 1С:Предприятие 8.3 по интеграции с HH.RU используя HH REST API. Ключевые функции: получение списка вакансий по должностям (Ключ для работы не нужен); расчет среднего дохода; Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.13.1513) Зарплата и управление персоналом, редакция 3.1 (3.1.11.68) совместно с API.HH.RU.

1 стартмани

11.11.2019    4381    6    solaru    2    

Конфигурация для рекламного агентства

Управление услугами и сервисом Управление взаимоотношениями с клиентами (СRM) Производство готовой продукции (работ, услуг) Управление взаимоотношениями с клиентами (СRM) Производство готовой продукции (работ, услуг) v8 Реклама, PR и маркетинг УУ Абонемент ($m)

Данная конфигурация выполнена для решения тестового задания: Цель задания: 1) Понять, на каком из клиентов сколько мы заработали;  2) Понять, по какому виду СМИ сколько мы заработали;  3) Проследить по каждой услуге: у кого за сколько купили и кому за сколько продали, с возможностью перейти в соответствующий документ. Реализовано с помощью: 1. Справочники - контрагенты, номенклатура 2. Документы - Поступление услуг, реализация услуг 3. Отчеты - отчет по контрагентам, номенклатуре и движений.

1 стартмани

21.05.2019    5319    0    solaru    0    

Загрузка номенклатуры в УТ 10.3 из Excel файла с генерацией штрихкодов

Загрузка и выгрузка в Excel Обработка справочников Оптовая торговля Розничная торговля Учет ТМЦ Оптовая торговля Розничная торговля Учет ТМЦ v8 УТ10 Россия Абонемент ($m)

Обработка позволяет генерировать новые номенклатурные позиции на основе данных из файла Excel с последующей генерацией штрихкодов (ШК). Может быть полезна при больших поступлениях товаров на склад, где ручное создание и присваивание штрихкода  (ШК) может занимать много времени.

1 стартмани

24.03.2017    8233    7    solaru    0    

Под капотом управляемых форм

Практика программирования v8 1cv8.cf Бесплатно (free)

Управляемые формы уже давно и плотно вошли в жизнь 1С-разработчика. Однако, судя по недавним публикациям на Инфостарте, многие до сих пор мало знакомы с ними. Предлагаю разобраться с тем, что же это такое.

26.08.2013    269623    Evil Beaver    271    

[NotaBene] Универсальный отчет по таблице значений

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

1C v.7.7 Готовое решение. Не требует настройки. Не требует допрограммирования. Данная обработка решает часто встречающуюся задачу вывода в "красивом" виде таблицы значений (полученной, например, из запроса). Поддерживается произвольное группирование данных, отключение/включение группировок, в т.ч и создание "шахматок" (типа "продажи понедельно"). Обработка может использоваться как и в отладочных целях (для нормального просмотра ТЗ), так и в составе вполне рабочих отчетов. По крайней мере, я неоднократно клиентам данную обработку ставил вместо того, чтобы каждый раз писать замороченные выводы данных. И клиенты довольны, и мне - проще...

2 стартмани

07.05.2007    29503    3    CheBurator    63