Скрипт для обновления нескольких баз однотипных конфигураций

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

Скрипт должен работать на всех типовых конфигурациях и конфигурациях, где реализован типовой механизм отключения пользователей. Конкретно используется только параметр «РазрешитьРаботуПользователей».

Проверен на УПП 1.3 (6 баз) и 1С:Логистика3.0 (15 баз)

Возможности:

  1. Обновление нескольких однотипных баз.
  2. 100% отключение пользователей.
  3. Запись подробного лог файла.
  4. Выдача сообщений.

Порядок действий скрипта:

  1. Загрузка файлов обновлений в основную конфигурацию.
  2. Ожидание загрузок файлов.
  3. Установка параметров для отключения сеансов. (Стандартные параметры Сообщение отключения, Код разрешения, дата начало блокировки сеансов и регл заданий).
  4. Ожидание заданного времени блокировки сеансов.
  5. Отключение сеансов пользователей, которые остались не отключенными при выполнении стандартного механизма отключения пользователей.
  6. Обновление конфигураций БД.
  7. Ожидание обновления.
  8. Запуск БД для выполнения стандартных обработок обновления конфигураций с параметром «РазрешитьРаботуПользователей». 
  9. Снятие блокировки сеансов. (Регл. заданий)

Выдача сообщений в домен для информирования пользователей о возможности продолжения работать в БД.

Нюанс.

В типовых конфигурация при обновлении версии БД выдается окно подтверждения легальности получения обновления.

Причем даже если база запускается с параметром «РазрешитьРаботуПользователей» при этом база должна закрываться.

Это я считаю недоработкой программистов 1С.

Для того чтобы окно не появлялось достаточно внести следующую доработку в конфигурацию.

В общем модуле ПроверкаЛегальностиПолученияОбновленияКлиент подправить процедуру

// Процедура для проверки легальности получения обновления.
// Должна вызываться перед обновлением информационной базы.
//
Функция ПодтвердитьЛегальностьПолученияОбновления() Экспорт

    ПараметрыРаботыКлиента = СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента();

    Если ПараметрыРаботыКлиента.ПервыйЗапуск
     ИЛИ НЕ ПараметрыРаботыКлиента.НеобходимоОбновлениеИнформационнойБазы
     ИЛИ НЕ ПараметрыРаботыКлиента.ЭтоГлавныйУзел Тогда
        Возврат Истина;
    КонецЕсли;
   
//>>—%%Gmix- 29.08.2011 14:00:42
   
Если Найти(Врег(ПараметрЗапуска),Врег(«РазрешитьРаботуПользователей»))>0 Тогда
        Возврат Истина;
    КонецЕсли;
   
//<
   
Возврат ПроверитьЛегальностьПолученияОбновления(Истина);

КонецФункции

Благодоря уточнению amyd нюансов больше нет.


18 Comments

  1. amyd

    великолепный скрипт!!

    Огромное спасибо!

    только совсем малюсенькое дополнение.

    когда вызывается запуск 1С для обработки обновления, то я добавил ключ /RunModeOrdinaryApplication

    а то на сервере по умолчанию тонкий клиент запускается ..

    Reply
  2. amyd

    и еще, чуть не забыл,

    не обязательно модули редактировать на адаптацию к запуску скрипта, достаточно в командной строке указать ключ

    «-server» , а в модулях 1С уже прописано #если клиент тогда.

    в результате полная строчка у меня получилась

    str_command=»»»»&Str_Path1C&»»»»&» ENTERPRISE «& Str_ConectionBase & Srt_infoBaseAuthorization &» /UC»&Str_CodeEnabelBase&» /CРазрешитьРаботуПользователей /RunModeOrdinaryApplication -server»

    А так скрипт просто великолепен!!

    Reply
  3. Gmix

    (2) amyd, Спасибо подправлю.

    Reply
  4. fomix

    По тексту >> Проверен на УПП 1.3 (6 баз) и 1С:Логистика3.0 (15 баз)…

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

    Reply
  5. Snezha

    Михаил, подскажите как им пользоваться?

    Reply
  6. chima

    Михаил, а ваш скрипт обновляет несколько баз единовременно или обновляет следующую после того как завершит обновление предыдущей?

    Reply
  7. Gmix

    Одновременно.

    Reply
  8. Gmix

    (5) Snezha, В коде комментарии. Но ели не знаете, что такое скрипт лучше не использовать.

    Reply
  9. CaSH_2004

    (0) Чуток бы побольше информации по возможностям скрипта, сам такое написал но для файлового варианта поэтому интересно следующее:

    — обновляет ли несколько релизов по очереди

    — откуда берутся релизы

    — решен ли вопрос запуска после каждого обновления в режиме Предприятия чтобы подтвердить легальность

    — кроме непосредственно обновления выполняются ли какието действия: лог файл выполнения чтобы видеть окончание, отправка уведомлений на почту, тестирование базы и всякое такое

    Может быть комментарий из скрипта выложиш? Чтобы не качать зря и всем видно было?

    Reply
  10. Gmix

    (9) — обновляет ли несколько релизов по очереди (Нет на один релиз)

    — откуда берутся релизы (выкладываются перед этим в сетевую. папку (Настраивается в скрипте))

    — решен ли вопрос запуска после каждого обновления в режиме Предприятия чтобы подтвердить легальность (да решен)

    — кроме непосредственно обновления выполняются ли какието действия: лог файл выполнения чтобы видеть окончание, отправка уведомлений на почту, тестирование базы и всякое такое (да ведется общий лог и подробный по каждой базе, отправка net send, тестирования нет. Отключение пользователей есть.)

    Reply
  11. KiborG85

    А выгрузка не предусмотрена? жаль….

    Зато есть окончательныое отключение пользователей… что не всегда делает батник с ключами запуска.

    Ну сейчас проверю в действии.

    Reply
  12. chert

    А после того

    8. Запуск БД для выполнения стандартных обработок обновления конфигураций с параметром «РазрешитьРаботуПользователей».

    После выполнения обработок, база закрывается или остается открытой?

    Reply
  13. Gmix

    (12) chert, Закрывается и включается для работы пользователей и регламентных задач.

    Reply
  14. chmv

    нЕ ПОНЯЛА С Комментариями. Каждый раз надо комментировать функцию проверка легитивности

    Reply
  15. chmv

    2) & Srt_infoBaseAuthorization что в нем написать?

    Какое имя?

    Reply
  16. chmv

    RunModeOrdinaryApplication -server не отрабатывает

    Reply
  17. chmv

    Там стоит #Если ТолстыйКлиентОбычноеПриложение Тогда

    Reply
  18. chmv

    решен ли вопрос запуска после каждого обновления в режиме Предприятия чтобы подтвердить легальность

    В программе стоит ТолстыйКлиентОбычноеПриложение

    Reply

Leave a Comment

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