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

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

Разработка - Обмен данными 1С - Перенос данных из 1C8 в 1C8

правила регистрации сравнение объединение

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

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

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

 
 Скрипт

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

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

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

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

 

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

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

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

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

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

 

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

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

Комментарии
Избранное Подписка Сортировка: Древо
1. VmvLer 11.09.19 18:06 Сейчас в теме
В каких случаях это можно применить в реальной практической работе кроме реплики в баре:
"Я пишу обмены с 1С на питоне"?
2. milut 44 11.09.19 21:33 Сейчас в теме
(1)не надо писать обмены на питоне. Это просто сравнение двух xml файлов с учётом смысловой нагрузки узлов. Скрипт появился в результате задачи объединить две версии правил регистрации разработанные параллельно. У нас было так: одна задача на объёмную доработку плана обмена и пока она решалась в боевые правила подкинули ещё несколько объектов и изменили часть существующих. Правила конвертации слили обработкой в конфигурации КД2, а для правил регистрации такого инструмента не нашлось.
user614213_vluminous; VmvLer; zeegin; +3 Ответить
4. VmvLer 12.09.19 09:40 Сейчас в теме
(2) Спасибо, сейчас вкратце понятно где это можно применить.

Читать оргоменную статью чтобы докопаться до сути иногда лень.
3. bomba 12.09.19 07:13 Сейчас в теме
(1) к питону пора относиться как к cmd скриптам. Хотел сначала тоже съязвить, но вспомнил, что под питон есть километры готового кода, чем и воспользовался автор.

Автору респект за публикацию кода в теле публикации, а не за только за $m.
davdykin; Legavaz; +2 Ответить
5. user614213_vluminous 18.09.19 08:51 Сейчас в теме
Может не слишком внимательно всматривался, но по скрипту два вопроса:
- это какая версия питона использована?
- наверняка, что в какой-то среде скрипт записывался, собирался, проверялся... интересно в какой именно, просто для понимания, а в чем коллеги на практике пишут питон-скрипты (явно же, что не в блокноте и не в текстовом окне 1С-ки)?
6. milut 44 18.09.19 10:46 Сейчас в теме
(5)версия python 3.7
MS Visual Studio Community, но только потому, что она уже есть на компе и не хотелось добавлять еще одну IDE.
user614213_vluminous; +1 Ответить
Оставьте свое сообщение

См. также

Автоматический обмен при появлении файла, по регламентному заданию создаёт файл выгрузки, даже если файл загрузки не появлялся

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Перенос данных из 1C8 в 1C8

Заметил, что "Автоматический обмен при появлении файла" каждый раз создаёт файл выгрузки данных, даже если файл для загрузки данных не появлялся. Данный код проверит, что файл появился, только после чего создаст файл выгрузки данных.

20.02.2020    447    wau8824ru    2       

​​​​​​​CorelDRAW Graphics Suite 2019 Промо

CorelDRAW – пакет профессиональных инструментов для редактирования фотографий, разработки дизайна, создания макетов страниц и векторных иллюстраций

Бесшовная интеграция через обмен по правилам - миссия выполнима

Статья Программист Нет файла v8 ДО ERP2 Бесплатно (free) Практика программирования Интеграция Перенос данных из 1C8 в 1C8

При организации работы с договорами в ERP 2, с помощью бесшовной интеграции с Документооборотом, «типовой» методикой является создание договоров в ЕРП. После создания договора в ЕРП, пользователь «отправляет» договор в ДО по бесшовной интеграции. На практике, весьма часто пользователи хотят видеть обратную схему: вводить договоры в ДО и при этом получать их в ЕРП без «лишних телодвижений». Или даже вводить их независимо в обеих системах – так, чтобы потом «стыковать» по каким-то определенным правилам.

24.01.2020    1651    e-9    2       

Конвертация ставок НДС: из Перечисления в Справочник (правила обмена в конвертации 2.0)

Статья Программист Нет файла v8 КД Россия НДС Бесплатно (free) Перенос данных из 1C8 в 1C8

При написании правил обмена между "более старой" и "более новой" конфигурациями можно столкнуться с тем, что в одной конфигурации ставки НДС - это перечисление, а в другой - справочник (или наоборот, но мой пример именно из перечисления в справочник). Ситуация несложная, но нестандартная, поэтому выкладываю работающий пример, может, кому пригодится.

09.11.2019    2598    vikulinamari    1       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

Настройка синхронизации между конфигурациями Бухгалтерия для Беларуси 2.1 и Управление торговлей для Беларуси 3.4

Статья no Нет файла v8 БП3.0 УТ11 Беларусь Бесплатно (free) Перенос данных из 1C8 в 1C8

Пошаговое описание настройки типового обмена между конфигурациями Бухгалтерия для Беларуси 2.1 и Управление торговлей для Беларуси 3.4

21.10.2019    3479    OlesiaM    1       

Объединение организаций в ЗУП при реорганизации с переносом данных из ЗУП 2.5 в ЗУП 3.1

Статья Программист Нет файла v8 v8::СПР ЗУП2.5 ЗУП3.x БУ Бесплатно (free) Зарплата Управление персоналом (HRM) Перенос данных из 1C8 в 1C8

В этой статье описан опыт объединения 2-х организаций при реорганизации в ЗУП 3.1 с переносом данных одной организации из ЗУП 2.5 (релизы баз более или менее свежие, но не самые последние на момент перехода, примерно двух- и трехмесячной давности). За основу было взято решение из этой статьи https://infostart.ru/public/833658/, в которой описан алгоритм решения задачи, за что автору статьи огромная благодарность! Здесь же даны некоторые комментарии и пояснения к алгоритму переноса и объединения, описаны выявленные мною ошибки. Также приведена небольшая инструкция по использованию обработки ирПодборИОбработкаОбъектовБД — она будет полезна для пользователей — «не программистов», впервые работающих в не управляемых формах.

09.10.2019    3612    Neti    1       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

EnterpriseData: простой способ защиты данных в базе получателя при одностороннем обмене

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Перенос данных из 1C8 в 1C8

Очень часто бухгалтеры ругаются, когда уже отраженные документы в бухгалтерском учета меняются сотрудниками.

04.10.2019    3949    handscenter    12       

Дозагрузка измененных данных при помощи КД2

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8

Иногда во время каких-то регламентных действий по обслуживанию базы(например, при обновлении измененной базы на много релизов) требуется обеспечить бесперебойность работы пользователей. Если конфигурации баз до и после идентичны, то тут сам Бог велел воспользоваться обработкой "ВыгрузкаЗагрузкаДанныхXML", либо такой же но с отбором(на Инфостарте есть такая). Но что если конфигурации баз различаются/значительно различаются? Ниже опишу, как вышел из положения я.

12.09.2019    2776    al_zzz    2       

Подборка программ для взаимодействия с ЕГАИС Промо

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

Конвертация Данных. Нюансы использования конструкции "НеЗамещатьОбъект = Истина" в обработчике события "ПриЗагрузке"

Статья Программист Нет файла v8 КД Бесплатно (free) Перенос данных из 1C8 в 1C8

У конвертации данных есть «особенности», которые «пьют кровь» программистов. Эта статья про очередную обнаруженную «особенность».

10.09.2019    4782    ivanek    21       

Обмен данными через Web Сервисы

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Перенос данных из 1C8 в 1C8

Ознакомительная статья о том, как загружать\выгружать данные с одной базы в другую, используя Web Сервисы.

02.09.2019    9913    user5300    31       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Выгрузка и загрузка документов с движениями

Статья Программист Нет файла v8 КД Бесплатно (free) Перенос данных из 1C8 в 1C8

Возникла задача перенести документы с движениями, но подменив организацию. Наткнулся на проблему с выгрузкой движений, опишу свой опыт.

02.09.2019    3614    human_new    7       

EnterpriseData – часть 3. Загрузка данных, идентификация объектов

Статья Программист Нет файла v8 v8::УФ 1cv8.cf ОС Бесплатно (free) Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 Разработка

Основные этапы загрузки данных через EnterpriseData. Идентификация объектов загружаемых полностью и по ссылке. Приведены схемы процессов загрузки данных. Описание основных операций и обработчиков. Перечень процедур БСП, используемых при загрузке данных, структура «КомпонентыОбмена».

22.08.2019    7628    ids79    7       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Перенос дополнительных реквизитов в Конвертации данных 2.0

Статья Программист Нет файла v8 КД Россия УУ Бесплатно (free) Перенос данных из 1C8 в 1C8

Пример написания правил обмена (КД 2.0) для переноса дополнительных реквизитов справочника "Номенклатура", в том числе перенос ПВХ с разными типами значений.

13.08.2019    5805    vikulinamari    7       

Синхронизация данных между 1С: ЗУП 3.1 и Бухгалтерией 3.0 через файл

Статья Программист Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Перенос данных из 1C8 в 1C8

Публикация описывает последовательность синхронизации данных между 1С: ЗУП 3.1 и Бухгалтерией 3.0 через файл.

23.04.2019    6803    saveliev    3       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

Данный онлайн-курс предусматривает углубленное изучение языка запросов и возможностей системы компоновки данных, которые понадобятся при разработке отчетов, работающих на платформе “1С:Предприятие” в рамках различных прикладных решений. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей различных прикладных решений, которые используют в своей работе отчеты разного назначения.

6500 рублей

Как прикрутить ГУИД к регистру сведений

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

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

16.04.2019    12474    m-rv    16       

INFOSTART MEETUP Kazan. 13 марта 2020 г. Промо

Инфостарт продолжает путешествие по России. Следующая остановка - Казань. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Ждем всех: докладчиков и участников! Стоимость участия - 5 500 рублей. Цена действительна до 30.01.2020

5 500

Работа с ComОбъектом 1С 8.2; 8.3

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Перенос данных из 1C8 в 1C8

Определение типов и значений через COM соединение между конфигурациями.

15.04.2019    14724    vik070777    12       

Обмен данными между УПП 1.3.64.х и БП 3.0 по расписанию через Универсальный обмен данными + План обмена

Статья Программист Нет файла v8 УПП1 Россия Windows Бесплатно (free) Обмен через XML Перенос данных из 1C8 в 1C8

Описание доработки конфигурации УПП 1.3.64.х для выполнения обмена данными по расписанию в БП 3.0. через обработку Универсальный Обмен Данными XML и План Обмена.

09.04.2019    4532    mrcamomile    6       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

5500 рублей

RabbitMQ + Конвертация Данных 3.0

Статья Системный администратор Программист Бизнес-аналитик Руководитель проекта Нет файла v8 КД Бесплатно (free) Внешние источники данных Обмен через XML Интеграция Перенос данных из 1C8 в 1C8

Предлагаем ознакомиться с хронологией проекта, проследить ход мыслей от снятия потребностей до реализации, и решить, удалось ли проектной команде найти оптимальное архитектурное решение под конкретный кейс заказчика путем совмещения двух известных, но до сих пор не пересекавшихся технологий, и получилось ли сложить плюсы и устранить минусы каждой из них.

21.03.2019    18377    barelpro    82       

Быстрее чем INSERT! BULK-операции и примеры использования

Статья Системный администратор Программист Нет файла Бесплатно (free) Производительность и оптимизация (HighLoad) Практика программирования Внешние источники данных Перенос данных из 1C8 в 1C8 Разработка

Microsoft SQL Server поддерживает так называемые BULK-операции, используемые для быстрого изменения больших объемов данных в базе. В статье пойдет речь о практических примерах их использования. Все примеры сделаны в контексте платформы 1С (а как иначе).

09.03.2019    15347    YPermitin    39       

Сдача регламентированной отчетности из программ 1С Промо

Сдача регламентированной отчетности из программ "1С" во все контролирующие органы без выгрузок и загрузок в другие программы. Для групп компаний действуют специальные предложения.

от 1500 руб.

Конвертация данных 2.1: поиск по условию

Статья Программист Нет файла v8 КД ERP2 Windows Бесплатно (free) Перенос данных из 1C8 в 1C8

Задача. При обмене документами "Реализация товаров и услуг", поиск контрагента осуществлять по полям "ИНН", "КПП". Если вид договора с комиссионером, то поиск осуществлять по полям "ИНН", "КПП", "Наименование".

15.01.2019    9563    wowik    13       

Заметки КД 2.1: Как передать файл, динамически создаваемый в источнике, в справочник присоединенных файлов приемника

Статья Программист Нет файла v8 КД Россия Windows Бесплатно (free) Перенос данных из 1C8 в 1C8

В БП 3.0 есть документ "Книга Продаж Для Передачи В ЭлектронномВиде" из которого выгружается XML файл. Задача: Нужно из БП 3.0 посредством правил обмена, вместе с документом книга продаж сформировать и перенести XML файл в базу приемник. В приемнике файл будет храниться в справочнике "Книга Продаж Присоединенные Файлы".

10.10.2018    7096    Viktor_Ermakov    6       

Голосование за доклады на INFOSTART MEETUP Kazan - до 25 февраля. Промо

Выбирайте и голосуйте за самые интересные доклады! Лучшие из лучших попадут в окончательную программу казанского митапа. Оставить свой голос можно до 25 февраля 2020 года.

Планы обмена 1С

Статья Программист Нет файла v8 Бесплатно (free) Перенос данных из 1C8 в 1C8

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

10.09.2018    41674    zhichkin    21       

Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо

Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.

от 13000 рублей

Альтернатива переноса ТЗ в конвертации данных 2.1

Статья Программист Нет файла v8 КД Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8

Здравствуйте уважаемые. Решил выложить альтернативный способ переноса данных в конвертации данных из источника к приемнику, с последующим сбором их в ТЗ в месте ПослеЗагрузки. Т.е.можно готовый перенесенный объект доработать либо создать что-то еще на базе данных. Метод сам разработан с учетом простого понимания Конвертации без использования всех её многочисленных тонкостей и сложностей. В примере рассматривается перенос Операции. И вот еще что. Я не привожу тут готовое решение, я всего лишь показываю концепцию того, как можно делать в КД. Без использования глобальных переменных.

20.08.2018    5423    dinopopyys    6