gifts2017

Автоматическое обновление конфигурации базы 1C 8.2 при помощи регламентного задания

Опубликовал kiba Ковальчук (kiba) в раздел Администрирование - Системное

Автоматическое обновление конфигурации базы 1C 8.2 при помощи регламентного задания

Для автоматического обновления базы был задействован механизм регламентных заданий.
Достоинством данного способа является то, что им управляет непосредственно программист 1С, без подключения системного администратора.


Общий принцип следующий:
 
1. Создается регламентное задание (например с именем "ОбновлениеБазы").
Управление регламентным заданием осуществляется при помощи обработки КонсольЗаданий. В ней можно запустить задание принудительно или настроить расписание запуска, можно отключить его выполнение или снова включить.

2. В модуле регламентного задания нужно прописать следующие переменные - 

ИмяЗаданияОбновления - точное название регламентного задания ("ОбновлениеБазы"). Используется для того чтобы при обновлении не отключить наше фотновое задание.
Пользователь - имя пользователя с административными правами
Парольпароль пользователя с административными правами
КодБлокировки - произвольный код для блокировки запуска сеансов пользователей во время обновления

3. Далее при запуске регламентного задания определяется имя сервера и базы, формируется командный файл, останавливаются все работающие фоновые задания (кроме нашего), ставится блокировка на подключение к базе, отключаются все сеансы пользователей, после чего запускается командный файл обновления конфигурации на исполнение.

4. В результате получаем обновленную конфигурацию базы данных.


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

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

Наименование Файл Версия Размер
Файл конфигурации 152
.cf 38,82Kb
27.08.12
152
.cf 38,82Kb Скачать
Модуль регламентного задания 71
.txt 4,08Kb
24.08.12
71
.txt 4,08Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Яков Коган (Yashazz) 27.08.12 23:55
Без системного администратора, говорите? Ага, а потом в самый неподходящий момент какому-нибудь фрагменту вашей последовательности действий не хватает прав доступа на что-то куда-то.
2. kiba Ковальчук (kiba) 28.08.12 11:34
(1) Yashazz, а можно поподробнее, какой фрагмент кода не отрабатывает? Я проверял обновление на сервере 1С-предприятия, к которому прав доступа в принципе не было, все отрабатывало. Может конечно на сервере права были не сильно урезаны. Но в принципе все что делает регламентное задание, это создание командного файла в каталоге временных файлов и его запуск. А после его запуска просто вызывается конфигуратор 1С к ключами обновления. Ничего крамольного нет. Одним словом, если у Вас возникла ошибка при обновлении, напишите пожалуйста какая
3. soba (soba) 29.08.12 04:54
А вот тоже самое, но в несколько баз? Частенько ведь такое встречается
4. kiba Ковальчук (kiba) 29.08.12 09:05
(3) soba, В смысле организовать обновление конфигураций нескольких баз сразу? Проще всего просто добавить данный механизм во все конфигурации. И в каждой базе настроить разовый запуск регламентного задания на обновление когда это нужно. Все же "пакетное обновление" лучше реализовывать по стандартной схеме - через командный файл, который запускается на сервере через механизм назначенных заданий Windows. Только в этом случае он будет запускаться автоматически по расписанию, которое будет настраивать системный администратор. А моя реализация позволяет управлять обновлением без системного администратора. разница в принципе только в этом.
5. vladal (Vladal) 29.08.12 12:07
(4) kiba, ну или держать список баз и подключений, который обойти циклически и сформировать батник (пакетный файл)
6. kiba Ковальчук (kiba) 29.08.12 12:39
(5) vladal, можно конечно. Но хотелось бы не прописывать их жестко в модуле, а как-то управлять этим списком. Вдруг понадобится в какой-то день, чтобы все обновились базы, а одна не обновилась, или новая база добавится. А это уже справочник надо новый создавать как минимум, хранить там имена серверов, баз, пароли на вход. Но в принципе можно, конечно.
7. Роберт В е р т и н с к и й (v3rter) 29.08.12 19:22
Проверялось на Server 2003 или 2008? На 2008-м у пользователя сервера предриятия прав на запуск чего-либо из %temp% может и не быть.
8. kiba Ковальчук (kiba) 29.08.12 19:59
(7) v3rter, проверялось только на Server 2003. Если кто-нибудь может проверить на 2008, отпишитесь потом.
9. vladal (Vladal) 30.08.12 07:57
(6) kiba, я и не говорил, чтобы жестко. Их надо получить для начала, прочитать из системы а потом играться с батниками. Вот здесь подробное описание: http://infostart.ru/public/104469/
Вам только сделать обертку. Возможно, уже есть готовое решение.
10. Konstantin Konstantin (KonstB) 31.08.12 09:03
Подтверждение легальности обновления проходит?
11. kiba Ковальчук (kiba) 31.08.12 10:12
(10) KonstB, так сообщение насколько я понимаю появляется не при обновлении конфигурации а при запуске в режиме 1С - Предприятие? Значит все что нужно сделать, это при первом после обновления запуске 1С ответить ДА, ну или НЕТ, это у кого как :)))
12. Роберт В е р т и н с к и й (v3rter) 01.09.12 23:50
Если что, самообновление некоторых конфигураций 1С выполняется из них же самих с помощью .hta-файла со скриптами, как в популярных версиях "драйверпаков".
13. Konstantin Konstantin (KonstB) 04.09.12 11:22
(11) kiba,
Да я именно про это сообщение)
Могу сказать за БП - рядовой бух, гл.бух - не сможет запустить базу, если у них выскочит данное окно. Т.к. действия которые проводятся, при подтверждении легальности, проходят ТОЛЬКО под ПолнымиПравами! (это легко обходится, но все же - у "рядового" бух будет ступор...).
Если обновление проходит со стороны сервера, то это окно не выскакивает.
Вот я и хотел узнать, при использовании Вашего механизма - выскакивает это окно или нет.
15. Владимир Гусев (adhocprog) 22.07.13 14:44
16. Nick (Puk2) 09.04.14 15:28
Хотел реализовать что-то подобное, буду пробовать этот метод для автоматического обновления периферийных узлов РИБ.
17. Евгений Чекушкин (check2) 16.02.15 08:18
Всё хорошо, но вот когда доступно демоническое обновление, лучше бы использовать его (некоторые всё ещё боятся, но многие уже используют) Кроме того, блокировка пользователей достаточно жёсткая. За это могут и по голове настучать. Надо как то помягче, например, используя механизм установки блокировки типовой УПП. Там пользователей можно заранее предупредить, что будет блокировка, и лишь спусти пару минут назначенного времени всех "мочить". Как говориться - кто не спрятался я не виноват :)
18. Марина Чирина (chmv) 13.07.16 15:10
Меня интересует вопрос о легальности обновления.
Как сделать его автоматически
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа