Добрый день.
Решил написать эту конфигурацию, т.к. периодически нужно было обновлять рабочую базу, не подключенную к хранилищу, а вручную это делать, конечно, лень.
Конфигурация получает изменения хранилища, пользователь выбирает, какие версии объектов он хочет загрузить, дальше все сделает программа.
Основные функции:
- получение списка изменений хранилища, возможно с группировкой и отбором
- обновление основной конфигурации обновляемой базы с помощью выгрузки XML из конфигураций хранилища
- обновление основной конфигурации обновляемой базы полной загрузкой конфигурации хранилища
- выгрузка cf файла, содержащего выбранные изменения относительно обновляемой конфигурации (для ручного сравнения/объединения)
- сохранение истории обновления (сохраняются объекты и версии хранилища, загруженные в обновляемую базу, и номер версии хранилища, на которую обновлена база (при полной загрузке))
- отдельное обновление конфигурации БД обновляемой базы
Итак, начнем.
Для начала нужно заполнить справочник "Базы". Там необходимо ввести строку подключения к БД, Пользователя и Пароль.
Далее нужно заполнить Настройки обновления базы. Там указать обновляемую базу, путь к хранилищу, из которого берем историю изменений, Пользователя и Пароль хранилища.
Обязательно заполнить поле "База обновлена на версию хранилища". Это номер версии хранилища, к которому приведена наша БД и начиная с которого будет получаться история изменений. Этот реквизит будет изменяться при полном обновлении конфигурации на определенную версию хранилища.
Далее нужно выбрать разрешено ли делать загрузку напрямую в обновляемую БД - это поле "Загружать напрямую в базу". Если оно установлено в значение ИСТИНА, то программа загрузит необходимые объекты в основную конфигурацию обновляемой базы и предложит обновить конфигурацию БД. Если ЛОЖЬ, то станет видимым поле "Каталог результата" - это путь к папке, в которую будет выгружен файл Result.cf - результирующий cf, содержащий в себе конфигурацию - результат загрузки объектов в обновляемую конфигурацию, которая при сравнении/объединении с обновляемой конфой покажет различия только в выбранных объектах.
Поле "Разрешить динамическое обновление" говорит само за себя - при попытке обновления конфигурации БД обновляемой базы будет или не будет разрешено динамическое обновление.
Опционально можно заполнить "Код доступа" и "Дополнительные параметры запуска". Код доступа нужен, когда установлена блокировка установки соединений с БД (параметр /UC пакетного запуска). Дополнительные параметры можно перечислить, если есть необходимость. Они будут добавлены в команду пакетного запуска конфигуратора (Например, "/NoProxy /debug " и т.д.)
Основные команды (кнопки в главном окне):
Получить изменения хранилища - получает историю изменений хранилища, начиная с определенной версии, и выводит на экран только те объекты, которые не обновлены в обновляемой базе (исходя из истории обновлений). На форме это выведено как динамический список, поэтому можно задавать любые отборы и группировки, например, по комментарию (см. скрины)
Обновить базу через XML (действует при загрузке напрямую в базу, сохраняет историю обновления) - собирает выбранные для загрузки объекты, анализирует целостность данных (например, если добавлен новый объект, то вместе с ним будет загружен корень конфигурации и все добавленные в этой версии хранилища объекты), выгружает необходимые версии хранилища в файлы (может быть выгружена одна версия хранилища в cf, если она содержит все выбранные изменения, или несколько, если выбраны версии объектов, которые не должны попасть в базу, например, ОбщийМодуль.ОбщегоНазначения изменяли Паша и Саша, а базу нужно обновить всеми изменениями Саши, кроме модулья ОбщегоНазначения - его берем из версии Паши).
Обновить на версию хранилища (действует при загрузке напрямую в базу, сохраняет историю обновления) - выгружает cf хранилища в файл и загружает его в конфигурацию обновляемой базы.
Обновить конфигурацию БД - просто обновляет конфигурацию БД с разрешением/запретом динамического обновления (регулируется галочкой, пока не работает - система игнорирует данный параметр).
Выгрузить cf с изменениями (не видна при загрузке напрямую в базу, сохраняет историю обновления) - так же как и "Обновить базу через XML" анализирует выбранные объекты и в результате выгружает cf файл, содержащий при сравнении/объединении с обновляемой базой только выбранные изменения. Можно использовать, когда есть необходимость контролировать изменения, которые попадут в базу.
Выгрузить cf хранилища <номер версии> (не видна при загрузке напрямую в базу, не сохраняет историю обновления) - выгружает в cf файл выбранную в основном онке версию хранилища.
Перед обновлением можно менять настройки на одноименной вкладке - пользователей и пароли БД и хранилища, пути выгрузки результата и временных файлов. Эти изменения откатятся при перечитывании настроек.
Так же на форме есть кнопки устновить/снять все флажки и снять/установить флажок на текущей строке. На текущей строке флажок снимается/устанавливается так же двойным кликом.
В конфигурацию вставлено немного из БСП, чтобы выполнять обновление через длительные операции на сервере.