No Image

Сопоставление данных при синхронизации

СОДЕРЖАНИЕ
1 просмотров
10 марта 2020

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

Для решения этой задачи как раз и предназначен механизм сопоставления данных.

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

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

В некоторых случаях данные не могут быть сопоставлены по GUID по причине его отсутствия (особые случаи, которые не рассматриваются в данной статье).

Для успешного сопоставления объектов с разными GUID должно быть место для хранения информация об их соответствии. Таким местом является регистр сведений Публичные идентификаторы синхронизируемых объектов (далее РПИ ). Структура регистра представлена в таблице:

Узел информационной базы ПланОбменаСсылка Ссылка на узел плана обмена (настройку обмена), для которой хранится соответствие. Ссылка

СправочникСсылка,
ПланВидовХарактеристикСсылка,
ДокументСсылка Ссылка на объект текущего приложения. Идентификатор Строка (36) GUID объекта, полученного от приложения-корреспондента.

При получении данных записи в регистре могут появляться на нескольких этапах (см. рисунок 1). Подробное описание самих алгоритмов сопоставления см. далее.

Рисунок 1. Этапы, на которых могут быть сделаны записи в РПИ

Этапы, помеченные пунктиром, опциональные: при выполнении сеанса обмена в автоматическом режиме отсутствуют этапы 1 и 2, при выполнении в интерактивном режиме этап 2 может быть пропущен пользователем.

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

В процессе обмена данные РПИ обеспечивают следующую функциональность:

  1. Сопоставление объектов при получении данных ( см. рисунок 2-а).
  2. Обработка получаемых данных (замена ссылок) с целью обеспечения ссылочной целостности (см. рисунок 2- b ).
  3. Обработка отправляемых данных (замена ссылок) для исключения повторного сопоставления на стороне приложения-корреспондента уже сопоставленных данных (см. рисунок 2- b ).

Рисунок 2 . Использование данных РПИ при получении и при отправке данных.

Прикладная логика, определяющая порядок автоматического сопоставления объектов при получении, содержится в правилах конвертации объектов (ПКО), предназначенных для получения данных.

Все компоненты (правила обработки данных, правила конвертации объектов и т.д.), определяющие прикладную логику обработки данных в процессе их получения, либо отправки (подробнее в статье Методика работы с конфигурацией "Конвертация данных 3.0" ) формируют так называемый менеджер обмена . Код менеджера обмена разрабатывается в общем модуле (подробное описание см. в документации по БСП , в разделе Обмен через универсальный формат ). Модуль создается автоматически с помощью КД3.0 на основе настроенных правил обмена либо вручную в конфигураторе (см. пример — общий модуль _ДемоМенеджерОбменаЧерезУниверсальныйФормат демо-конфигурации БСП ).

Вариант автоматического сопоставления (идентификации) объектов при получении задается с помощью свойства ВариантИдентификации ПКО и может принимать одно из трех значений:

  1. ПоУникальномуИдентификатору — идентификация по GUID ,
  2. СначалаПоУникальномуИдентификаторуПотомПоПолямПоиска — идентификация по GUID и полям поиска,
  3. ПоПолямПоиска — идентификация по полям поиска,

Еще одним свойством, определяющим логику сопоставления, является массив полей поиска, определяемый в свойстве ПоляПоиска ПКО.

Рисунок 3. Настройки идентификации в модуле менеджера и в КД3.0.

В таблице 1 представлено описание использования данных настроек при автоматическом сопоставлении на разных этапах получения данных:

Этап анализа данных (при загрузке через помощник синхронизации данных)

Ручное сопоставление (при загрузке через помощник синхронизации данных)

По GUID

Идентификация по РПИ .

Идентификация по GUID .

Запись соответствий в РПИ: делается, если соответствие нашлось при выполнении п.3.

Сопоставлять можно со всеми объектами соответствующего типа, для которых нет соответствий в РПИ .

Запись соответствий в РПИ: делается по результатам сопоставления.

Идентификация по РПИ .

Идентификация по GUID среди объектов, отсутствующих в РПИ .

Запись соответствий в РПИ: делается для либо с исходным GUID , либо с вновь сгенерированным, п. 1 не дал результата но объект с таким GUID уже есть в РПИ .

По GUID и полям поиска

Аналогично варианту "По GUID ".

Аналогично варианту "По GUID ".

Идентификация по РПИ .

Читайте также:  Пропала кнопка вызова на телефоне

Идентификация по GUID .

Запись соответствий в РПИ: см. выше.

По полям поиска

См. колонку "Загрузка данных"

Функция ручного сопоставления недоступна.

Запись соответствий в РПИ: не делаются.

Таблица 1. Правила работы настроек идентификации.

Происходит последовательное применение вариантов поиска, заданных в свойстве ПоляПоиска ПКО, используемого при загрузке объекта.

Ограничение.
При сопоставлении на этапе анализа данных применяется только 1-й вариант поиска.

Переход к следующему варианту осуществляется в двух случаях:

  1. У загружаемого объекта не заполнено какое-либо из полей, которое указано в варианте поиска.
  2. Вариант поиска не дал результата.

Если в загружаемом объекте есть информация об исходном GUID и вариант идентификации для объекта "По GUID " или "По GUID и полям поиска", то поиск выполняется среди всех объектов заданного типа, кроме тех, для которых в РПИ уже установлены соответствия.

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

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

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

Особенность.
На этапе загрузки данных вариант поиска Номер + Дата для документов работает следующим образом: номер искомого документа проверяется на точное соответствие, дата определяет интервал, в котором проводится поиск по номеру. Сам интервал определяется как период уникальности номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года.
На этапе анализа данных этот вариант поиска будет работать как обычно: оба поля будут проверяться на точное соответствие.

между базами бух 30 и зуп 31 была настроена синхронизация, но не верно.

физлица и их счета были есть в обеих базах

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

Однако в окне синхронизации программа видит их только в одной базе, причем некоторые только в бух, некоторые в зуп.

пробовал сделать автоматическое сопоставление только по ФИО для физлиц или по номеру для банковских счетов — не помогло.

релиз зуп 31 3.1.6.38
релиз бух 30 3.0.61.37

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Все комментарии (19)

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

Тогда сопоставление должно пройти автоматически. Проверьте, возможно, Вы используете не типовые правила? Также можно сопоставить объекты вручную.

Да, и я не поняла из сообщения — не сопоставляются элементы справочника «Физические лица»? Все или только некоторые?

—Тогда сопоставление должно пройти автоматически. Проверьте, возможно, Вы используете не типовые правила? Также можно сопоставить объекты вручную.

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

при этом в обеих базах в обычной форме списка справочника аналоги есть с точностью до символа.

—Да, и я не поняла из сообщения — не сопоставляются элементы справочника «Физические лица»? Все или только некоторые?

если настраиваю из ЗУП, то только некоторые, хотя по странной логике, одних физлиц программа не видит (только при сопоставлении для синхронизации) с одной стороны, а других — с другой.

если — из Бух, то большинство физлиц не видны на стороне ЗУП.

Приложение

— в форме сопоставления программа не подтягивает аналоги данных из второй базы для сопоставления вручную.
Это очень странно. А что выбрано в реквизите Выводить ? (см.скрин-шот).
Точно ли совпадает ФИО? Я один раз столкнулась, что в ЗУП в ФИО было русское «С», а в БУХ — латинское «С», визуально это не видно, но можно попробовать скопировать ФИО из одной базы и записать для элемента в другой базе.

—А что выбрано в реквизите Выводить ? (см.скрин-шот).

я проверял, в поле Выводить стоит Несопоставленные данные
Что интересно, когда выбираю Все данные, новые аналоги для несопоставленных не появляются в противоположном списке.

Читайте также:  Как в экселе переместить строку вверх

попробовал заменить ФИО в БУХ на фио из ЗУП, не помогло.

самое интересное: попробовал сделать синхронизацию с этими настройками, дубли не возникли.

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

Еще смотрите какая история — при синхронизации в очередь к выгрузке «встают» же только те элементы справочника Физические лица , которые «задействованы» в документах Отражение зарплаты в бухучете и Ведомости…

Может быть в этом дело? Т.е. не все «физики» фигурируют в документах?

многие из тех физлиц были перенесены ранее через синхронизацию.
Снимки экрана смогу отправить только на выходных

Добрый день! Более месяца прошло с момента последнего Вашего сообщения, я закрываю вопрос.

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

Приложение

Приложение

здесь пример сопоставления счетов сотрудников (втч. на гпх)
посмотрел в бухгалтерии у сотрудников указаны счета и в справочнике Контрагенты, и в справочнике Физические лица

Здравствуйте!
Пришлите пожалуйста ещё скрин настроек синхронизации из ЗУП и из Бухгалтерии.
Администрирование — Синхронизация данных — Настройки синхронизации данных — кнопка Настроить — скрин открывшейся формы.

Приложение

убрал название компании. оно одинаковое в бух и зуп до символа

Приложение

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

Уточните пожалуйста, а Вы в итоге пытались запустить синхронизацию в таком неправильно сопоставленном виде? Хоть что-то синхронизировались? Хоть какие-то данные переносились? Если нет, то попробуйте, только сделайте копии баз, чтобы потом откатиться к этим копиям, а то ведь несопоставленные физ. лица и счета по идеи должны задвоится. Напишите тогда, что получилось, действительно ли они задвоились?

Проверьте ещё на всякий случай — пути к базам в синхронизации верно указаны.

Приложение

Вы можете задать еще вопросов

Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8.
Оформить заявку от имени Юр. или Физ. лица вы можете здесь >>

Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>

Механизм сопоставления данных при обмене через универсальный формат

Механизм сопоставления данных предназначен для решения задачи синхронизации данных между базой источника и базой приемника при обмене

Внутренние идентификаторы объектов

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

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

В некоторых случаях данные не могут быть сопоставлены по GUID по причине его отсутствия (особые случаи, которые не рассматриваются в данной статье).

Публичные идентификаторы объектов

Для успешного сопоставления объектов с разными GUID должно быть место для хранения информация об их соответствии. Таким местом является регистр сведений Публичные идентификаторы синхронизируемых объектов (далее РПИ).

Рис. 1 Регистр сведений Публичные идентификаторы синхронизируемых объектов

Структура регистра представлена в таблице:

Измерения Тип Назначение Узел информационной базы ПланОбменаСсылка Ссылка на узел плана обмена (настройку обмена), для которой хранится соответствие. Ссылка

СправочникСсылка,
ПланВидовХарактеристикСсылка,
ДокументСсылка Ссылка на объект текущего приложения. Идентификатор Строка (36) GUID объекта, полученного от приложения-корреспондента.

Для сопоставления данных двух программ предназначена в БСП 2.3 обработка “Сопоставление объектов информационных баз” для непосредственного использования при синхронизации данных

Рис 2. Основная форма обработки “Сопоставление объектов информационных баз”

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

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

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

Читайте также:  Сокращение building в адресе

Сопоставление объектов

  • Нажмите Сопоставить автоматически (рекомендуется), выберите поля для сопоставления с помощью флажков. Некоторые поля выбраны программой по умолчанию. Для того чтобы подтвердить свой выбор, нажмите Выполнить сопоставление. После поиска программа выводит на просмотр сопоставленные ею данные. Для подтверждения нажмите Применить.
  • После автоматического сопоставления можно оставшиеся объекты сопоставить вручную или изменить сопоставление объектов. Выделите нужные объекты двух баз, нажмите Отменить соответствие, для того чтобы попытаться сопоставить объекты вручную, нажмите Установить соответствие для того чтобы сопоставить объекты.
  • Для подтверждения нажмите Записать и закрыть.

Настройка полей таблицы сопоставления

  • Нажмите Колонки, чтобы добавить поля в колонки списка. С помощью флажков можно отметить дополнительные поля, для подтверждения нажмите Применить.

Получение данных из другой программы

  • Для того чтобы получить данные из другой программы, нажмите Еще –Загрузить данные из другой программы.

Порядок сопоставления объектов

  • Рекомендуется выполнять сопоставление и загрузку данных с учетом ссылочных связей. Особенно, если поле используется для сопоставления объектов.
  • Например, в конфигурации имеется справочник договоров контрагентов, который подчинен справочнику контрагентов. Сопоставление договоров контрагентов выполняется по справочнику-владельцу, т.е. по справочнику контрагентов. Следовательно, для правильного сопоставления данных необходимо сначала сопоставить и загрузить справочник контрагентов, а затем – справочник договоров контрагентов.
  • В противном случае поля таблицы сопоставления могут содержать фиктивные ссылки вида:
    (26:a0b9001b24e002fe11dfba347dd41412).
  • Фиктивная ссылка указывает на объект в текущей информационной базе, который еще не был загружен из сообщения обмена.

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

Варианты идентификации объектов при получении

Порядок автоматического сопоставления объектов при получении, содержится в правилах конвертации объектов (ПКО), предназначенных для получения данных. Правила ПКО находятся в общем модуле МенеджерОбменаЧерезУниверсальныйФормат

Рис 3 Разделы общего модуля МенеджерОбменаЧерезУниверсальныйФормат

Отметим, что в общем модуле МенеджерОбменаЧерезУниверсальныйФормат находятся все компоненты (правила обработки данных, правила конвертации объектов и т.д.), определяющие прикладную логику обработки данных в процессе их получения, либо отправки . Программный код этого модуля создается автоматически с помощью приложения “Конвертация данных, редакция 3.0” на основе настроенных правил обмена. Программный код модуля можно создавать вручную, но требует от разработчика большого мастерства.

Вариант автоматического сопоставления (идентификации) объектов при получении задается с помощью свойства ВариантИдентификации ПКО

Рис 4. Настройки идентификации в модуле менеджера

Существуют 3 варианта ( 3 значения) идентификации объекта

    ПоУникальномуИдентификатору –идентификация по GU >Рис 5. Настройки идентификации в КД3.0.

Еще одним свойством, определяющим логику сопоставления, является массив полей поиска, определяемый в свойстве ПоляПоиска ПКО.

Алгоритм поиска по полям

Происходит последовательное применение вариантов поиска, заданных в свойстве ПоляПоиска ПКО, используемого при загрузке объекта.

Ограничение.
При сопоставлении на этапе анализа данных применяется только 1-й вариант поиска – ПоУникальномуИдентификатору

Переход к следующему варианту осуществляется в двух случаях:

  1. У загружаемого объекта не заполнено какое-либо из полей, которое указано в варианте поиска.
  2. Вариант поиска не дал результата.

Если в загружаемом объекте есть информация об исходном GUID и вариант идентификации для объекта “По GUID” или “По GUID и полям поиска”, то поиск выполняется среди всех объектов заданного типа, кроме тех, для которых в РПИ уже установлены соответствия.

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

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

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

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

На этапе загрузки данных вариант поиска Номер + Дата для документов работает следующим образом: номер искомого документа проверяется на точное соответствие, дата определяет интервал, в котором проводится поиск по номеру. Сам интервал определяется как период уникальности номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года.
На этапе анализа данных этот вариант поиска будет работать как обычно: оба поля будут проверяться на точное соответствие.

Комментировать
1 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector