Скрипт, написанный на OneScript: предназначен для сравнения-объединения конфигурации со списком баз данных.
Создан с целью избавиться от рутины ручного сравнения-объединения. При наличии 3-х и больше баз, в которую нужно внедрить некую подсистему из мини-конфигурации это очень актуально. также посзволяет избежать ошибок при выполнении множества повторяемых действий в каждой из баз.
ВАЖНО:
- использовать крайне акууратно, если Вы уверены, что объекты метаданных мини-базы (модули, команды, справочники...) не конфликтуют по названию с существующими объектами каждой из баз.
- Автоматическое обновление идет в "динамическом" режиме: то есть использовать следует, когда не изменяется структура БД.
-
Главный скрипт располагается в корне репозитория: "main.os", в каталоге "./src" расположены вспомогательные модули. Для корректной работы в каталоге "OneScript" должна быть библиотека графического интерфейса "C:\Program Files (x86)\OneScript\bin\oscript-simple-gui.dll".
-
Настройки для обработки баз данных хранятся в файле "./fixtures/DBSettings.json".
в файле содержатся параметры соединения к головной БД, соединения с обновляемыми БД и прочие параметры
-
Пробный файл настроек сравенения хранится в файле "./fixtures/MergeSettings_БФДок.xml": содержит настройки сравнения/объединения с файлом.
-
Тестовая конфигурация в файле "./fixtures/ПрисоединенныеФайлы.cf".
-
Основные доработки конфигурации производятся в головной базе, которая в json-файле настроек обозначена как "Главная БД":
"ГлавнаяБД": { "Имя":"БСД_ПрисоединенныеФайлы", "СтрокаПодключения":"/F"D:\Bases_1C\ПрисоединенныеФайлы"", "Пользователь":"admin", "Пароль":"" }
-
Все дочерние базы, которые находятся в секции "БД" подлежат автоматическому сравнению- объединению с главной конфигурацией "Главная БД", доработки в дочерних базах НЕ производятся: см. секцию "БД":
"БД": [ { "Имя":"sql_test1", "СтрокаПодключения":"/S"BSDSQL01\sql_test1"", "Пользователь":"admin", "Пароль":"" },
...
-
Если поведение функционала в различных конфигурациях отличается - то первоначальное сравнение-объединение - необходимо сначала произвести вручную - с указанием файла настроек сравнения "./fixtures/MergeSettings_БФДок.xml": см. скриншот
В указанном примере ситуация, когда имеем общую команду "Doc_ПрисоединенныеФайлы" и при этом в разных конфигурациях она должна прикрепляться к различным объектам метаданных.
-
По окончанию последующих доработок конфигурации в базе "ГлавнаяБД" необходимо перенести эти доработки в другие конфигурации. При этом ни 1 из перечисленных в json-файле баз не должна быть открыта конфигуратором.
Для автоматического объединения нажитмаем main.os - откроется окно визуального интерфейса обработки.
-
Выбираем базы данных для объединения с основной конфигурацией
-
Если достаточно просто сравнить-объединить без сохранения конйигурации БД - не снимаем флаг "только сравнить-объединить", тогда после отработки дочерняя конфигурация будет с "зеленым цилиндром":
-
Для сравнения-объединения нажимаем "Обновить базы данных" - после этого читаем логи исполнения команды
upd 10/05/2020: Добавлено использование из командной строки без визуального интерфейса. Параметры:
- -bases: список "объединяемых" информационных баз через запятую
- -nodbupdate: Параметр-флаг: признак обновлять/не обновлять конфигурацию БД после сравнения
Пример: oscript main.os -bases "test1,test2" -nodbupdate Обновлние 2-х баз из списка внутри json без обновления БД