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

Публикация № 1022635

Администрирование - Сервисные утилиты

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

3
Позволяет автоматизировать рутинный процесс обновления изменённых конфигураций баз 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

3

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

Наименование Файл Версия Размер
АвтоОбновление:
.cf 91,57Kb
16.03.19
2
.cf 2.0 91,57Kb 2 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. fishca 1151 18.03.19 17:21 Сейчас в теме
Какой у вас робот вежливый! :)
Оставьте свое сообщение