Оглавление
Задача
У нас в папке лежат, например, три CF файла конфигураций, которые нам в качестве результата работы передал программист или компания (например, такой сервис). Требуется обновить рабочую конфигурацию (объединением либо загрузкой) на каждый из них последовательно с промежуточным выполнением обработчиков обновления (все файлы имеют разные версии конфигураций, например, 1.0.0.3, 1.0.0.4 и 1.0.0.5).
Решение
Итак, поехали.
Вот папка с файлами:
Названия файлов могут быть любыми. Обновлятор сам выберет верный порядок обновления, в соответствии с версиями конфигураций в этих файлах.
Заходим в свойства базы:
Переходим на закладку "Обновление".
Здесь в разделе "Источники" включаем опцию "Искать обновления на компьютере вторым способом":
Здесь же переопределяем папку для поиска обновлений на папку, в которую положили CF файлы:
Здесь же переопределяем доступ к ИТС на вариант "Отключить поиск обновлений на сайте...":
Здесь же включаем опцию "При возможности обновлять из *.cf", вариант "последовательно":
Готово, запускаем обновление вручную или по расписанию:
База обновится последовательно на каждый из CF файлов с промежуточным выполнением обработчиков обновления.
При этом такое обновлением будет выполнено через объединение используя ключ пакетного режима конфигуратора /updatecfg. Это аналог операции из меню конфигуратора "Конфигурация-Поддержка-Обновить конфигурацию...") и имеет смысл только для конфигураций на поддержке поставщика.
Но что если нам нужно выполнить именно загрузку CF (ключ пакетного режима конфигуратора /loadcfg, аналог операции из меню конфигуратора "Конфигурация-Загрузить конфигурацию...").
В этом случае нам достаточно переименовать все CF файлы согласно следующему шаблону: loadme_*.cf, где * - это любые символы.
При этом нужно учитывать, что именно загрузка из CF приведёт к потере доработок в нашей рабочей конфигурации, если эти доработки не были учтены в загружаемых CF файлах.
На том всё.
Сценарий же безусловной загрузки требуемого CF файла описывается здесь.
Особый случай
Внимание , описываемая ниже возможность пока доступна лишь в тестовом обновляторе.Но что если в описанном выше сценарии присутствует файл loadme_04 той же версии что и loadme_03 (1.0.0.5) и он должен быть загружен в базу в самом конце?
То есть для корректного обновления необходимо загрузить сначала loadme_03.cf, затем выполнить содержащиеся в нём обработчики обновления, и только потом загрузить loadme_04.cf
С такой проблемой столкнулся один из пользователей, применяющий обновлятор для накатывания обновлений подготовленных сервисом ИжТиСи. Особенностью работы данного сервиса является то, что в итоговом комплекте несколько промежуточных файлов и один обновленный, при этом версия последнего промежуточного и обновленного файла совпадает.
Просто так выстроить такую цепочку при помощи обновлятора не получится. Он не захочет загружать подряд два CF имеющих один и тот же номер конфигурации (1.0.0.5).
В этом случае нужно задействовать вот эту возможность. То есть поместить файл loadme_04.cf в ту же папку, где расположен файл loadme_03.cf, и назвать его loadme_final.cf
Кстати , чтобы проверить цепочку обновления, достаточно запустить операцию "Проверить наличие обновлений". Вы быстро увидите в какой последовательности и на какие файлы обновлятор будет обновлять базу.