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









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

Система автообновления предназначена для серверных баз, в процессе обновления она последовательно выполняет следующие операции:

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

Пункты отмеченные "*", требуют внедрения в обновляемую конфигурацию ряда объектов.

Обновление конфигураций можно проводить и без внедрения каких-либо объектов в обновляемую конфигурацию, тогда просто не будет выполнятся оповещение пользователей об обновлении и проверки наличия выполняющихся регламентных заданий перед обновлением.

 

При первом запуске системы в ней необходимо установить пути к исполняемым файлам платформ 1с, установленных на сервере, где развёрнута база автообновления

Для работы системы автообновления с оповещением пользователей о предстоящем обновлении в конфигурацию обновляемой базы необходимо добавить ряд объектов, все эти объекты входят в состав конфигурации автообновления и обведены красными рамками на рисунке ниже. 

Все роли обновляемой базы должны иметь доступ на чтение констант:

  • ИнтервалПроверкиНапоминанийВСекундах
  • СообщениеОтАдмина
  • ВремяСообщенияОтАдмина

Также все роли обновляемой системы должны иметь доступ на получение/установку параметров сеанса:

  • ВремяПоследнегоСообщенияОтАдмина
  • ВременнойПорогДляПоказаСообщения

 

В модуль приложения необходимо добавить три процедуры:

Процедура ПриНачалеРаботыСистемы()

УстановитьОбработчикОжиданияПроверитьНапоминания();

КонецПроцедуры

Процедура УстановитьОбработчикОжиданияПроверитьНапоминания()

Перем ИнтервалПроверкиНапоминанийВСекундах;

#Если ВнешнееСоединение Тогда
Возврат;
#КонецЕсли

ИнтервалПроверкиНапоминанийВСекундах = СообщениеОтАдминаСервер.ПолучитьИнтервалПроверкиНапоминанийВСекундах();

Если ИнтервалПроверкиНапоминанийВСекундах > 0 Тогда
ПодключитьОбработчикОжидания("ПроверитьНапоминания", ИнтервалПроверкиНапоминанийВСекундах);
КонецЕсли;

КонецПроцедуры

Процедура ПроверитьНапоминания() Экспорт

СообщениеОтАдмина.ПроверитьИПоказатьСообщениеОтАдмина();

КонецПроцедуры

В обновляемой базе необходимо создать учётную запись пользователя с административными правами и способом аутентификации «1С».

У ролей, присвоенных учётной записи пользователя для автообновления должен иметься полный доступ к добавленным константам!

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

В справочник "Серверы", заносится информация о серверах, на которых находятся обновляемые информационные базы.

В справочник "Базы", заносится информация об обновляемых информационных базах. Рекомендую создавать новые элементы этого справочника в конфигураторе, как предопределённые.

Далее, в общем модуле "РегламентныеЗаданияСервер" необходимо создать логику регламентного задания

Процедура Обновление_cs() Экспорт

Управление.ПодготовитьИВыполнитьОбновление(Справочники.Базы.cs, 360, Истина, Истина);

КонецПроцедуры

Процедура "ПодготовитьИВыполнитьОбновление" принимает четыре параметра, первый — ссылка на элемент справочника "Базы", а второй — таймаут в секундах после отправки сообщения пользователям о предстоящем обновлении, третий  и четвёртый являются необязательными (по умолчанию их значение равно "Ложь").

Если третий параметр равен "Истина", то система будет отправлять оповещение пользователям о предстоящем обновлении.

Если четвёртый параметр равен "Истина", то система будет проводить проверку на наличие выполняемых регламентных заданий и ожидать их завершения перед обновлением.

Устанавливать эти параметры в значение "Истина", только тогда, когда в обновляемой конфигурации присутствуют объекты автообновления, перечисленные выше!

 

Теперь в конфигурации можно создать регламентное задание.

 

В качестве бонуса в составе конфигурации Вы получаете доработанную мною обработку "Регламентные и фоновые задания", которая не зависит от БСП и работает на платформах 8.2 и 8.3

 

Протестировано на платформе: 8.3.12.1790

1 Comment

  1. fishca

    Какой у вас робот вежливый! 🙂

    Reply

Leave a Comment

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