Автоматическое сравнение-объединение баз данных с мини-конфигурацией

14.10.19

Разработка - OneScript

Представляю вашему вниманию скрипт на OneScript для автоматического сравнения-объединения по правилам ("мержевания") конфигураций нескольких баз с мини-конфигурацией.

Изначальная задача была следующая:

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

Главной проблемой являлось то, что мини-конфигурация, содержащая подсистему управления файлами постоянно дорабатывалась (и меняется по сей день), а баз различного вида есть большое множество: самописки, доработанные типовые итд... И это не считая копий для разработок для каждого "разраба".

Дабы избавиться от "кайфа" периодического ручного обновления всех баз после каждой незначительной корректировки кода/форм в мини-базе решено было написать специальный скрипт обновления в среде OneScript.

По "корпоративным" причинам саму мини-конфигурацию не афиширую, в репозитории есть некая тестовая заготовка "/fixtures/ПрисоединенныеФайлы.cf" - примитивный аналог рабочей конфигурации, которая работает через веб-сервис по принципу "документооборота": передает xdto-сообщения по специализированному формату.

ПРИМЕЧАНИЕ:

  • Файлы с расширением *.os необходимо ассоциировать с исполняемым файлом "C:\Program Files (x86)\OneScript\bin\oscript.exe"
  • в каталоге "OneScript" должна быть библиотека графического интерфейса "C:\Program Files (x86)\OneScript\bin\oscript-simple-gui.dll"

Сам проект расположен на гитхабе по адресу https://github.com/artkor83/SubsystemForBases1C.

Краткое описание

  1. Главный скрипт располагается в корне репозитория: "main.os", в каталоге "./src" расположены вспомогательные модули. Для корректной работы в каталоге "OneScript" должна быть библиотека графического интерфейса "C:\Program Files (x86)\OneScript\bin\oscript-simple-gui.dll".

  2. Настройки для обработки баз данных хранятся в файле "./fixtures/DBSettings.json".

    в файле содержатся параметры соединения к головной БД, соединения с обновляемыми БД и прочие параметры

  3. Пробный файл настроек сравенения хранится в файле "./fixtures/MergeSettings_БФДок.xml": содержит настройки сравнения/объединения с файлом.

  4. Тестовая конфигурация в файле "./fixtures/ПрисоединенныеФайлы.cf".

 

Принцип работы

1. Основные доработки конфигурации производятся в головной базе, которая в json-файле настроек обозначена как "Главная БД":

"ГлавнаяБД": { "Имя":"БСД_ПрисоединенныеФайлы", "СтрокаПодключения":"/F"D:\Bases_1C\ПрисоединенныеФайлы"", "Пользователь":"admin", "Пароль":"" }

2. Все дочерние базы, которые находятся в секции "БД" подлежат автоматическому сравнению- объединению с главной конфигурацией "Главная БД", доработки в дочерних базах НЕ производятся: см. секцию "БД":

"БД": [ { "Имя":"sql_test1", "СтрокаПодключения":"/S"BSDSQL01\sql_test1"", "Пользователь":"admin", "Пароль":"" },

...

3. Если поведение функционала в различных конфигурациях отличается - то первоначальное сравнение-объединение - необходимо сначала произвести вручную - с указанием файла настроек сравнения "./fixtures/MergeSettings_БФДок.xml": см. скриншот

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

4. По окончанию последующих доработок конфигурации в базе "ГлавнаяБД" необходимо перенести эти доработки в другие конфигурации. При этом ни одна из перечисленных в json-файле баз не должна быть открыта конфигуратором.

Для автоматического объединения нажимаем main.os - откроется окно визуального интерфейса обработки.

5. Выбираем базы данных для объединения с основной конфигурацией

6. Если достаточно просто сравнить-объединить без сохранения конфигурации БД - не снимаем флаг "только сравнить-объединить", тогда после отработки дочерняя конфигурация будет с "зеленым цилиндром":

7. Для сравнения-объединения нажимаем "Обновить базы данных" - после этого читаем логи исполнения команды

OneScript vanessa-runner

См. также

Групповая разработка (Git, хранилище) OneScript Программист Платформа 1С v8.3 Бесплатно (free)

Скрипт для работы с SonarQube и локальным репозиторием Git.<br> Цель проекта – возможность выполнить быструю проверку качества кода перед тем, как помещать доработки в рабочее хранилище. В Sonar и Git выгружается не вся конфигурация, а только объекты из заданного списка.<br> https://github.com/vkrivov/go/

02.07.2024    2479    vkrivov@yandex.ru    8    

18

DevOps и автоматизация разработки OneScript Системный администратор Программист Стажер Бесплатно (free)

Рассмотрим создание самоформирующейся документации через комментарии и соглашения: как это сделать и зачем, с описанием полного цикла от исходников конфигурации до странички в интернете

17.06.2024    4000    bayselonarrend    2    

61

OneScript Программист Стажер Бесплатно (free)

Поговорим про меню, спиннеры, прогресс-бары и прочие свистелки для CLI приложений на OneScript

20.05.2024    2458    bayselonarrend    18    

70

Групповая разработка (Git, хранилище) OneScript Системный администратор Программист Бесплатно (free)

Сегодня мы посмотрим на Github Actions - встроенный инструментарий Github для автоматизации рабочих процессов. Разберем, что это такое, зачем и причем тут OneScript.

25.03.2024    2073    bayselonarrend    3    

41

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Продолжение истории с прокси хранилища, но уже не на HTTP, а на TCP и без падений по памяти веб-сервера. Проверяем комментарии хранилища, вызываем веб-хуки, старты пайплайнов, gitsync по событию помещения версии в хранилище. И все это полностью на знакомом и понятном OneScript.

17.01.2024    4057    kamisov    21    

62

OneScript Программист Бесплатно (free)

Думаете, на OneScript неудобно создавать сложные инфраструктурные приложения? Ошибаетесь. Благодаря фреймворку ОСень за последний год экосистема библиотек, упрощающих написание собственных приложений, существенно выросла. Расскажем о самых передовых технологиях OneScript. Спойлер: будет много рефлексии, мета-аннотаций, желудей, напильников и дубов с завязями.

21.11.2023    3772    NikitaIvanchenko    16    

48

Инструментарий разработчика Работа с интерфейсом OneScript Программист Россия Бесплатно (free)

Представленная библиотека позволяет создать многопоточный TCP сервер, к которому может одновременно подключиться множество TCP клиентов с удаленных компьютеров. Эти клиенты могут вызывать методы скриптов как на сервере, так и на других клиентах. Методы будут выполнены в контексте скрипта на удаленной машине. Возможна передача параметров в метод и получение результата. Для TCP клиента можно создать графический интерфейс с большим набором элементов управления, модальными диалоговыми окнами и с обработкой событий.

31.07.2023    2370    ahyahy    8    

32

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Программист Бесплатно (free)

Итак! Представим, что наступил момент, когда разработка через исходный код реализована на предприятии в полном объеме. Мы разрабатываем в EDT или конфигураторе (но выгружаем конфигурацию в исходный код), версионируем внешние отчеты и обработки и расширения, собираем релизы, проверяем код статическим анализом, в разработке царит гармония и мир. Красота! Но менеджерам этого мало, всегда хочется чего-то еще, и вот мне прилетает задача - дай статистику по вкладу в код каждого разработчика.

13.03.2023    4680    ardn    3    

27
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Indgo 410 14.10.19 14:24 Сейчас в теме
2. artkor 284 14.10.19 17:54 Сейчас в теме
там скрипт элементарный: читает настройки json-файлика, содержащие параметры подключения к базам. Потом по каждой базе исполняет 2 команды репозитория vanessa-runner, вот и все :)
user1050439; +1 Ответить
Оставьте свое сообщение