Предоставляет возможность создавать регламентные задания на обновление конфигураций, в обновляемой конфигурации логика конфигурации обновления деактивирует выполнение регламентных заданий, оповещает пользователей о предстоящем обновлении, ожидает указанное время, устанавливает блокировку новых сеансов с обновляемой базой, автоматически завершает все сеансы пользователей с базой, производит обновление конфигурации, активирует выполнение регламентных заданий, снимает блокировку новых сеансов.
Система автообновления предназначена для серверных баз, в процессе обновления она последовательно выполняет следующие операции:
- Устанавливает внешнее соединение с обновляемой базой.
- Выполняет проверку на наличие изменений в конфигурации (Если изменений нет, то происходит завершение выполнения регламентного задания).
- Деактивирует запуск регламентных заданий (через кластер сервера 1С).
- Отправляет оповещение активным пользователям базы о предстоящем обновлении. *
- Устанавливает блокировку новых сеансов с базой (через кластер сервера 1С).
- Ожидает, указанный, в логике регламентного задания, интервал времени.
- Проверяет нет ли выполняющихся регламентных заданий, если есть, то ожидает их завершения. *
- Выполняет завершение всех пользовательских сеансов с базой.
- Выполняет обновление конфигурации информационной базы.
- Активирует запуск регламентные заданий (через кластер сервера 1С).
- Снимает блокировку новых сеансов с базой (через кластер сервера 1С).
Пункты отмеченные "*", требуют внедрения в обновляемую конфигурацию ряда объектов.
Обновление конфигураций можно проводить и без внедрения каких-либо объектов в обновляемую конфигурацию, тогда просто не будет выполнятся оповещение пользователей об обновлении и проверки наличия выполняющихся регламентных заданий перед обновлением.
При первом запуске системы в ней необходимо установить пути к исполняемым файлам платформ 1с, установленных на сервере, где развёрнута база автообновления
Для работы системы автообновления с оповещением пользователей о предстоящем обновлении в конфигурацию обновляемой базы необходимо добавить ряд объектов, все эти объекты входят в состав конфигурации автообновления и обведены красными рамками на рисунке ниже.
Все роли обновляемой базы должны иметь доступ на чтение констант:
- ИнтервалПроверкиНапоминанийВСекундах
- СообщениеОтАдмина
- ВремяСообщенияОтАдмина
Также все роли обновляемой системы должны иметь доступ на получение/установку параметров сеанса:
- ВремяПоследнегоСообщенияОтАдмина
- ВременнойПорогДляПоказаСообщения
В модуль приложения необходимо добавить три процедуры:
Процедура ПриНачалеРаботыСистемы()
УстановитьОбработчикОжиданияПроверитьНапоминания();
КонецПроцедуры
Процедура УстановитьОбработчикОжиданияПроверитьНапоминания()
Перем ИнтервалПроверкиНапоминанийВСекундах;
#Если ВнешнееСоединение Тогда
Возврат;
#КонецЕсли
ИнтервалПроверкиНапоминанийВСекундах = СообщениеОтАдминаСервер.ПолучитьИнтервалПроверкиНапоминанийВСекундах();
Если ИнтервалПроверкиНапоминанийВСекундах > 0 Тогда
ПодключитьОбработчикОжидания("ПроверитьНапоминания", ИнтервалПроверкиНапоминанийВСекундах);
КонецЕсли;
КонецПроцедуры
Процедура ПроверитьНапоминания() Экспорт
СообщениеОтАдмина.ПроверитьИПоказатьСообщениеОтАдмина();
КонецПроцедуры
В обновляемой базе необходимо создать учётную запись пользователя с административными правами и способом аутентификации «1С».
У ролей, присвоенных учётной записи пользователя для автообновления должен иметься полный доступ к добавленным константам!
После того, как в конфигурацию обновляемой базы интегрированы необходимые элементы (общие модули/константы/параметры сеанса) и внесены изменения в модуль приложения, в базу автообновления необходимо внести сведения об обновляемой базе.
В справочник "Серверы", заносится информация о серверах, на которых находятся обновляемые информационные базы.
В справочник "Базы", заносится информация об обновляемых информационных базах. Рекомендую создавать новые элементы этого справочника в конфигураторе, как предопределённые.
Далее, в общем модуле "РегламентныеЗаданияСервер" необходимо создать логику регламентного задания
Процедура Обновление_cs() Экспорт
Управление.ПодготовитьИВыполнитьОбновление(Справочники.Базы.cs, 360, Истина, Истина);
КонецПроцедуры
Процедура "ПодготовитьИВыполнитьОбновление" принимает четыре параметра, первый — ссылка на элемент справочника "Базы", а второй — таймаут в секундах после отправки сообщения пользователям о предстоящем обновлении, третий и четвёртый являются необязательными (по умолчанию их значение равно "Ложь").
Если третий параметр равен "Истина", то система будет отправлять оповещение пользователям о предстоящем обновлении.
Если четвёртый параметр равен "Истина", то система будет проводить проверку на наличие выполняемых регламентных заданий и ожидать их завершения перед обновлением.
Устанавливать эти параметры в значение "Истина", только тогда, когда в обновляемой конфигурации присутствуют объекты автообновления, перечисленные выше!
Теперь в конфигурации можно создать регламентное задание.
В качестве бонуса в составе конфигурации Вы получаете доработанную мною обработку "Регламентные и фоновые задания", которая не зависит от БСП и работает на платформах 8.2 и 8.3
Протестировано на платформе: 8.3.12.1790
Какой у вас робот вежливый! 🙂