Только для клиент сервер.
Скрипт должен работать на всех типовых конфигурациях и конфигурациях, где реализован типовой механизм отключения пользователей. Конкретно используется только параметр «РазрешитьРаботуПользователей».
Проверен на УПП 1.3 (6 баз) и 1С:Логистика3.0 (15 баз)
Возможности:
- Обновление нескольких однотипных баз.
- 100% отключение пользователей.
- Запись подробного лог файла.
- Выдача сообщений.
Порядок действий скрипта:
- Загрузка файлов обновлений в основную конфигурацию.
- Ожидание загрузок файлов.
- Установка параметров для отключения сеансов. (Стандартные параметры Сообщение отключения, Код разрешения, дата начало блокировки сеансов и регл заданий).
- Ожидание заданного времени блокировки сеансов.
- Отключение сеансов пользователей, которые остались не отключенными при выполнении стандартного механизма отключения пользователей.
- Обновление конфигураций БД.
- Ожидание обновления.
- Запуск БД для выполнения стандартных обработок обновления конфигураций с параметром «РазрешитьРаботуПользователей».
- Снятие блокировки сеансов. (Регл. заданий)
Выдача сообщений в домен для информирования пользователей о возможности продолжения работать в БД.
Нюанс.
В типовых конфигурация при обновлении версии БД выдается окно подтверждения легальности получения обновления.
Причем даже если база запускается с параметром «РазрешитьРаботуПользователей» при этом база должна закрываться.
Это я считаю недоработкой программистов 1С.
Для того чтобы окно не появлялось достаточно внести следующую доработку в конфигурацию.
В общем модуле ПроверкаЛегальностиПолученияОбновленияКлиент подправить процедуру
// Процедура для проверки легальности получения обновления.
// Должна вызываться перед обновлением информационной базы.
//
Функция ПодтвердитьЛегальностьПолученияОбновления() Экспорт
ПараметрыРаботыКлиента = СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента();
Если ПараметрыРаботыКлиента.ПервыйЗапуск
ИЛИ НЕ ПараметрыРаботыКлиента.НеобходимоОбновлениеИнформационнойБазы
ИЛИ НЕ ПараметрыРаботыКлиента.ЭтоГлавныйУзел Тогда
Возврат Истина;
КонецЕсли;
//>>—%%Gmix- 29.08.2011 14:00:42
Если Найти(Врег(ПараметрЗапуска),Врег(«РазрешитьРаботуПользователей»))>0 Тогда
Возврат Истина;
КонецЕсли;
//<
Возврат ПроверитьЛегальностьПолученияОбновления(Истина);
КонецФункции
Благодоря уточнению amyd нюансов больше нет.
великолепный скрипт!!
Огромное спасибо!
только совсем малюсенькое дополнение.
когда вызывается запуск 1С для обработки обновления, то я добавил ключ /RunModeOrdinaryApplication
а то на сервере по умолчанию тонкий клиент запускается ..
и еще, чуть не забыл,
не обязательно модули редактировать на адаптацию к запуску скрипта, достаточно в командной строке указать ключ
«-server» , а в модулях 1С уже прописано #если клиент тогда.
в результате полная строчка у меня получилась
str_command=»»»»&Str_Path1C&»»»»&» ENTERPRISE «& Str_ConectionBase & Srt_infoBaseAuthorization &» /UC»&Str_CodeEnabelBase&» /CРазрешитьРаботуПользователей /RunModeOrdinaryApplication -server»
А так скрипт просто великолепен!!
(2) amyd, Спасибо подправлю.
По тексту >> Проверен на УПП 1.3 (6 баз) и 1С:Логистика3.0 (15 баз)…
А не проще ли подключить все базы к хранилищу конфигураций (каждую конфигурацию к своему) и упростить себе и пользователям жизТь.
Михаил, подскажите как им пользоваться?
Михаил, а ваш скрипт обновляет несколько баз единовременно или обновляет следующую после того как завершит обновление предыдущей?
Одновременно.
(5) Snezha, В коде комментарии. Но ели не знаете, что такое скрипт лучше не использовать.
(0) Чуток бы побольше информации по возможностям скрипта, сам такое написал но для файлового варианта поэтому интересно следующее:
— обновляет ли несколько релизов по очереди
— откуда берутся релизы
— решен ли вопрос запуска после каждого обновления в режиме Предприятия чтобы подтвердить легальность
— кроме непосредственно обновления выполняются ли какието действия: лог файл выполнения чтобы видеть окончание, отправка уведомлений на почту, тестирование базы и всякое такое
Может быть комментарий из скрипта выложиш? Чтобы не качать зря и всем видно было?
(9) — обновляет ли несколько релизов по очереди (Нет на один релиз)
— откуда берутся релизы (выкладываются перед этим в сетевую. папку (Настраивается в скрипте))
— решен ли вопрос запуска после каждого обновления в режиме Предприятия чтобы подтвердить легальность (да решен)
— кроме непосредственно обновления выполняются ли какието действия: лог файл выполнения чтобы видеть окончание, отправка уведомлений на почту, тестирование базы и всякое такое (да ведется общий лог и подробный по каждой базе, отправка net send, тестирования нет. Отключение пользователей есть.)
А выгрузка не предусмотрена? жаль….
Зато есть окончательныое отключение пользователей… что не всегда делает батник с ключами запуска.
Ну сейчас проверю в действии.
А после того
После выполнения обработок, база закрывается или остается открытой?
(12) chert, Закрывается и включается для работы пользователей и регламентных задач.
нЕ ПОНЯЛА С Комментариями. Каждый раз надо комментировать функцию проверка легитивности
2) & Srt_infoBaseAuthorization что в нем написать?
Какое имя?
RunModeOrdinaryApplication -server не отрабатывает
Там стоит #Если ТолстыйКлиентОбычноеПриложение Тогда
решен ли вопрос запуска после каждого обновления в режиме Предприятия чтобы подтвердить легальность
В программе стоит ТолстыйКлиентОбычноеПриложение