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


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

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

Проверен на УПП 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 нюансов больше нет.


Файлы обработки:

-