Как настроить использование сетевых папок (дисков)

  оглавление  Как добиться 100% защиты архивов баз 1С от шифровальщиков

Обновлятор-1с. Как обновлять базы напрямую из хранилища

О каком хранилище идёт речь

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

Зачем работа с хранилищем добавлена в обновлятор

Обновлятор позволяет получать изменения из хранилища:

  • без необходимости подключения рабочей базы к хранилищу
  • по расписанию
  • для любого количества баз
  • с блокировкой базы на время обновления
  • с предварительной архивацией базы
  • с обновлением БД после обновления конфигурации
  • с выполнением обработчиков обновления

Как настроить обновление рабочей базы из хранилища

Заходим в свойства базы и переходим на закладку "Обновление".

Отмечаем галку "Эта база обновляется из хранилища" и заполняем нужные поля:

При этом рабочая база:

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

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

Как обновлятор понимает, что в хранилище есть изменения

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

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

Всё это означает, что если мы запускаем (вручную или по расписанию) обновление конфигурации из хранилища - следующая цепочка действий будет выполняться всегда (вне зависимости от того есть ли реальные изменения в хранилище):

  1. Блокировка базы.
  2. Создание резервной копии базы.
  3. Обновление конфигурации из хранилища (в случае, если реальных изменений в хранилище не было - такое обновление будет "холостым").
  4. Обновление базы данных (опять же, если конфигурация не менялась, то обновляться ничего не будет).
  5. Выполнение обработчиков обновления. При этом обновлятор запустит эти обработчики только в том случае, если версия конфигурации после обновления изменилась.
  6. Разблокировка базы.
 Внимание.  В современных версиях обновлятора всё-таки появилось поле "проверять наличие изменений":

Она будет работать только для платформы 1с начиная с версии 8.3.17.

Если опция 'проверять наличие изменений' не установлена, то обновлятор всегда будет пытаться выполнить обновление из хранилища - вне зависимости были ли изменения в хранилище с момента прошлого обновления или нет. Это поведение по умолчанию.

Такое поведение может быть нежелательным, так как каждая попытка обновления будет приводить к ненужной блокировке базы, а также созданию резервной копии (при соотв. настройке).

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

При включении этой опции начинает корректно работать операция 'Проверить наличие обновлений', а также настройка уведомлений 'При запуске по расписанию отправлять отчёт только если были обновления...'.

Эта опция имеет смысл только в случае, когда вы оставили поле 'Версия' пустым.

Зачем нужно поле Версия

Это поле отвечает за номер версии конфигурации хранилища, которую мы получаем.

Не нужно путать эту версию, с версией самой конфигурации. Речь идёт вот об этой колонке:

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

В этом поле можно:

  • Ничего не указывать - тогда обновление произойдёт на последнюю версию в хранилище.
  • Указать конкретную версию в хранилище (не путайте с версией конфигурации) - тогда обновление произойдёт на эту самую версию в хранилище.
  • Указать несколько версий в хранилище (через пробел, запятую или точку с запятой) - тогда обновление будет происходить последовательно на каждую из версий. Этот вариант может быть необходим, если нужно выполнять обработчики обновления после каждого промежуточного обновления на очередную версию из хранилища.

Можно ли сделать настройку для получения обновлений из хранилища сразу для группы баз

Для этого нужно выделить галками нужные базы в списке и нажать кнопку "Волшебная палочка":

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

Покажите пример отчёта обновления из хранилища

Можно ли использовать настройки хранилища в скриптах обновлятора

Да, они уже там, в параметрах:

Плюс я добавил простейший шаблон для обновления конфигурации из хранилища:

Вот как он разворачивается:

Вы видите, что параметр %configuration_repository_auth% включает в себя все параметры для подключения к хранилищу (место хранения, пользователь и пароль).

С уважением, (преподаватель школы 1С программистов и разработчик обновлятора).



Владимир Милькин
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:



Как настроить использование сетевых папок (дисков)

  оглавление  Как добиться 100% защиты архивов баз 1С от шифровальщиков