Скрипт объединения правил регистрации (Python)

Python скрипт для объединения правил регистрации. Написан, т.к. не удалось найти готовый инструмент.

UPD. 20240917 Доработан скрипт сравнения/объединения. Добавлен контроль уникальности кодов справочника "Правила регистрации объектов". В предыдущем варианте при загрузке правил в конфигурацию "Конвертация данных 2" из-за дублирующихся кодов возникали ошибки. Скрипт в статье обновлен.

Правила регистрации актуальны и используются практически во всех типовых обменах 1С, независимо от формата обмена. При параллельной разработке правил регистрации возникает проблема объединения нескольких вариантов правил. Простое сравнение объединение XML невозможно. Т.к. готового инструмента найти не получилось был написан свой скрипт.

 

 Скрипт

Реализованы три режима работы:

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

Пример объединения в этом режиме:

 

 Правила первого файла

 

 Правила второго файла

 

 Результат объединения в режиме soft

— hard, в этом режиме приоритетными являются правила из второго файла. Все совпадающие узлы будут замещены.

 

 Результат объединения в режиме hard

— manual, в этом режиме формируется заготовка для ручного объединения правил.

 

 Результат объединения в режиме manual

 

Приветствуется любая критика, кроме злословия. При обнаружении ошибок, если не затруднит, сообщите.

5 Comments

  1. milut

    (1)не надо писать обмены на питоне. Это просто сравнение двух xml файлов с учётом смысловой нагрузки узлов. Скрипт появился в результате задачи объединить две версии правил регистрации разработанные параллельно. У нас было так: одна задача на объёмную доработку плана обмена и пока она решалась в боевые правила подкинули ещё несколько объектов и изменили часть существующих. Правила конвертации слили обработкой в конфигурации КД2, а для правил регистрации такого инструмента не нашлось.

    Reply
  2. bomba

    (1) к питону пора относиться как к cmd скриптам. Хотел сначала тоже съязвить, но вспомнил, что под питон есть километры готового кода, чем и воспользовался автор.

    Автору респект за публикацию кода в теле публикации, а не за только за $m.

    Reply
  3. VmvLer

    (2) Спасибо, сейчас вкратце понятно где это можно применить.

    Читать оргоменную статью чтобы докопаться до сути иногда лень.

    Reply
  4. user614213_vluminous

    Может не слишком внимательно всматривался, но по скрипту два вопроса:

    — это какая версия питона использована?

    — наверняка, что в какой-то среде скрипт записывался, собирался, проверялся… интересно в какой именно, просто для понимания, а в чем коллеги на практике пишут питон-скрипты (явно же, что не в блокноте и не в текстовом окне 1С-ки)?

    Reply
  5. milut

    (5)версия python 3.7

    MS Visual Studio Community, но только потому, что она уже есть на компе и не хотелось добавлять еще одну IDE.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *