Скрипт должен работать на всех типовых конфигурациях и конфигурациях, где реализован типовой механизм отключения пользователей. Конкретно используется только параметр "РазрешитьРаботуПользователей".
Проверен на УПП 1.3 (6 баз) и 1С:Логистика3.0 (15 баз)
Возможности:
- Обновление нескольких однотипных баз.
- 100% отключение пользователей.
- Запись подробного лог файла.
- Выдача сообщений.
Порядок действий скрипта:
- Загрузка файлов обновлений в основную конфигурацию.
- Ожидание загрузок файлов.
- Установка параметров для отключения сеансов. (Стандартные параметры Сообщение отключения, Код разрешения, дата начало блокировки сеансов и регл заданий).
- Ожидание заданного времени блокировки сеансов.
- Отключение сеансов пользователей, которые остались не отключенными при выполнении стандартного механизма отключения пользователей.
- Обновление конфигураций БД.
- Ожидание обновления.
- Запуск БД для выполнения стандартных обработок обновления конфигураций с параметром "РазрешитьРаботуПользователей".
- Снятие блокировки сеансов. (Регл. заданий)
Выдача сообщений в домен для информирования пользователей о возможности продолжения работать в БД.
Нюанс.
В типовых конфигурация при обновлении версии БД выдается окно подтверждения легальности получения обновления.
Причем даже если база запускается с параметром "РазрешитьРаботуПользователей" при этом база должна закрываться.
Это я считаю недоработкой программистов 1С.
Для того чтобы окно не появлялось достаточно внести следующую доработку в конфигурацию.
В общем модуле ПроверкаЛегальностиПолученияОбновленияКлиент подправить процедуру
// Процедура для проверки легальности получения обновления.
// Должна вызываться перед обновлением информационной базы.
//
Функция ПодтвердитьЛегальностьПолученияОбновления() Экспорт
ПараметрыРаботыКлиента = СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента();
Если ПараметрыРаботыКлиента.ПервыйЗапуск
ИЛИ НЕ ПараметрыРаботыКлиента.НеобходимоОбновлениеИнформационнойБазы
ИЛИ НЕ ПараметрыРаботыКлиента.ЭтоГлавныйУзел Тогда
Возврат Истина;
КонецЕсли;
//>>--%%Gmix- 29.08.2011 14:00:42
Если Найти(Врег(ПараметрЗапуска),Врег("РазрешитьРаботуПользователей"))>0 Тогда
Возврат Истина;
КонецЕсли;
//<
Возврат ПроверитьЛегальностьПолученияОбновления(Истина);
КонецФункции
Благодоря уточнению amyd нюансов больше нет.