gifts2017

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

Опубликовал Михаил Журавлев (Gmix) в раздел Программирование - Внешние компоненты

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

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

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


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

Наименование Файл Версия Размер
updBD_1C.vbs 135
.vbs 17,77Kb
16.01.13
135
.vbs 17,77Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Денис (amyd) 12.09.12 13:45
великолепный скрипт!!
Огромное спасибо!
только совсем малюсенькое дополнение.
когда вызывается запуск 1С для обработки обновления, то я добавил ключ /RunModeOrdinaryApplication
а то на сервере по умолчанию тонкий клиент запускается ..
2. Денис (amyd) 12.09.12 14:43
и еще, чуть не забыл,
не обязательно модули редактировать на адаптацию к запуску скрипта, достаточно в командной строке указать ключ
"-server" , а в модулях 1С уже прописано #если клиент тогда.
в результате полная строчка у меня получилась

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

А так скрипт просто великолепен!!
3. Михаил Журавлев (Gmix) 16.01.13 09:06
(2) amyd, Спасибо подправлю.
4. Fomix (fomix) 17.01.13 10:49
По тексту >> Проверен на УПП 1.3 (6 баз) и 1С:Логистика3.0 (15 баз)...
А не проще ли подключить все базы к хранилищу конфигураций (каждую конфигурацию к своему) и упростить себе и пользователям жизТь.
5. Снежанна Глебова (Snezha) 03.05.13 14:51
Михаил, подскажите как им пользоваться?
6. Иван Иванов (chima) 25.06.13 16:43
Михаил, а ваш скрипт обновляет несколько баз единовременно или обновляет следующую после того как завершит обновление предыдущей?
7. Михаил Журавлев (Gmix) 30.06.13 16:27
8. Михаил Журавлев (Gmix) 30.06.13 16:51
(5) Snezha, В коде комментарии. Но ели не знаете, что такое скрипт лучше не использовать.
9. Олег Шалимов (CaSH_2004) 02.10.13 16:01
(0) Чуток бы побольше информации по возможностям скрипта, сам такое написал но для файлового варианта поэтому интересно следующее:
- обновляет ли несколько релизов по очереди
- откуда берутся релизы
- решен ли вопрос запуска после каждого обновления в режиме Предприятия чтобы подтвердить легальность
- кроме непосредственно обновления выполняются ли какието действия: лог файл выполнения чтобы видеть окончание, отправка уведомлений на почту, тестирование базы и всякое такое

Может быть комментарий из скрипта выложиш? Чтобы не качать зря и всем видно было?
10. Михаил Журавлев (Gmix) 03.02.15 22:45
(9) - обновляет ли несколько релизов по очереди (Нет на один релиз)
- откуда берутся релизы (выкладываются перед этим в сетевую. папку (Настраивается в скрипте))
- решен ли вопрос запуска после каждого обновления в режиме Предприятия чтобы подтвердить легальность (да решен)
- кроме непосредственно обновления выполняются ли какието действия: лог файл выполнения чтобы видеть окончание, отправка уведомлений на почту, тестирование базы и всякое такое (да ведется общий лог и подробный по каждой базе, отправка net send, тестирования нет. Отключение пользователей есть.)
11. Mihail Nevazhno (KiborG85) 10.11.15 22:16
А выгрузка не предусмотрена? жаль....
Зато есть окончательныое отключение пользователей... что не всегда делает батник с ключами запуска.
Ну сейчас проверю в действии.
12. Chert (chert) 21.06.16 00:11
А после того
8. Запуск БД для выполнения стандартных обработок обновления конфигураций с параметром "РазрешитьРаботуПользователей".


После выполнения обработок, база закрывается или остается открытой?
13. Михаил Журавлев (Gmix) 22.06.16 17:42
(12) chert, Закрывается и включается для работы пользователей и регламентных задач.
14. Марина Чирина (chmv) 18.07.16 09:03
нЕ ПОНЯЛА С Комментариями. Каждый раз надо комментировать функцию проверка легитивности
15. Марина Чирина (chmv) 18.07.16 11:49
2) & Srt_infoBaseAuthorization что в нем написать?
Какое имя?
16. Марина Чирина (chmv) 18.07.16 12:54
RunModeOrdinaryApplication -server не отрабатывает
17. Марина Чирина (chmv) 18.07.16 12:58
Там стоит #Если ТолстыйКлиентОбычноеПриложение Тогда
18. Марина Чирина (chmv) 18.07.16 13:00
решен ли вопрос запуска после каждого обновления в режиме Предприятия чтобы подтвердить легальность
В программе стоит ТолстыйКлиентОбычноеПриложение
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа