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

Публикация № 1134775

Разработка - Языки и среды - OneScript

OneScript vanessa-runner

Представляю вашему вниманию скрипт на 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. Для сравнения-объединения нажимаем "Обновить базы данных" - после этого читаем логи исполнения команды

Специальные предложения

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

См. также

АИТП. Подсистема взаимодействия с рабочими серверами OneScript

OneScript v8 Бесплатно (free)

В статье описан механизм взаимодействия конфигурации АИТП с рабочими серверами OneScript.

22.05.2019    4894    0    blackhole321    33    

1Script.Web. Интернет-приложения на языке 1С

WEB OneScript Инструментарий разработчика v8 Бесплатно (free)

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

20.05.2019    18500    0    Evil Beaver    33    

Разворачиваем рабочий сервер OneScript для конфигурации АИТП

OneScript v8 Бесплатно (free)

В статье описана методика развертывания рабочего сервера OneScript для конфигурации АИТП, на ОС CentOS 7.

09.05.2019    5751    0    blackhole321    0    

Добавляем онлайн-чат в web-приложение OneScript

OneScript v8 Бесплатно (free)

В статье рассмотрено подключение онлайн-чата к web-приложению на основе http-сервисов OneScript

24.06.2018    7158    0    blackhole321    1    

Сказ про то, как я DevOps-ом занимался (OneScript, Deployka, Jenkins)

OneScript DevOps Jenkins v8 1cv8.cf ИТ-компания Бесплатно (free)

Решаем задачу: автоматизировать обновление тестовых баз 1С из хранилища конфигурации при появлении в нём новых изменений. Данная статья родилась в муках хождения по граблям и поиска безопасного форватора среди подводных камней. Изложение постарался представить в виде инструкции для новичка, в которой собрал всё, с чем пришлось столкнуться. Сам я не DevOps-ер, ни на что не претендую, просто делюсь опытом :)

17.06.2018    20481    0    stas_ganiev    34    

Макеты в http-сервисах OneScript

OneScript v8 Бесплатно (free)

В статье описана библиотека, реализующая механизм макетов в http-сервисах OneScript, аналогично платформе 1С:Предприятие.

03.06.2018    7971    0    blackhole321    1    

Перечисления в http-сервисах OneScript

OneScript v8 Бесплатно (free)

В статье описывается библиотека, реализующая механизм перечислений в http-сервиах OneScript, аналогичный механизму платформы 1С:Предприятие

03.06.2018    7615    0    blackhole321    13    

Сборка, тестирование, доставка приложения на onescript с помощью gitlab-ci

OneScript v8 1cv8.cf Бесплатно (free)

Сборка, тестирование, доставка приложения на onescript с помощью gitlab-ci на примере портирования на onescript функции daСклонение.

14.05.2018    12266    0    pallid    3    

TMSSQL - работа с базами данных MS SQL Server в скриптах на OneScript и из командной строки

OneScript v8 Бесплатно (free)

Представляю вашему вниманию библиотеку TMSQL для работы с базами данных на MS SQL Server. Библиотека подключается в качестве модуля или класса в скрипты, написанные на OneScript, а также может работать как независимое консольное приложение.

26.04.2018    14097    0    Tavalik    22    

Создаем свою библиотеку для OneScript

OneScript v8 Бесплатно (free)

Как упаковать свою библиотеку в пакет? Что такое загрузчик и зачем он нужен? Как вообще создать свою библиотеку? Разбираемся на примере.

06.03.2018    20774    0    nixel    36    

Обзор имеющихся библиотек OneScript

OneScript v8 Бесплатно (free)

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

14.11.2017    40882    0    nixel    86    

Вебинтерфейс для OneScript и 1С

OneScript v8 Россия Бесплатно (free)

Пример создания вебинтерфейса для OneScript с использованием библиотеки UfaScript.osb

30.06.2017    13330    0    andreosh    7    

OneScript и Ajax. POST-запрос и мои дальнейшие планы с фантазиями о будущем

OneScript v8 Россия Бесплатно (free)

Моя библиотека для OneScript (версия 3.0 от 09.06.2017 см.GitHab UfaScript) https://github.com/andreosh/UfaScript теперь позволяет посылать POST-запросы на сервер без использования сторонних библиотек типа jquery.

09.06.2017    17554    0    andreosh    3