Механизм сопоставления данных при обмене через универсальный формат
Логично ожидать, что при синхронизации данных, как начальной, так и основанной на регулярной основе, одинаковые данные в приложениях будут сопоставлены между собой.
Для решения этой задачи как раз и предназначен механизм сопоставления данных.
В идеальном случае данные синхронизируемых приложений могли бы сопоставляться по уникальным внутренним идентификаторам объектов (GUID). Но для этого необходимо, чтобы добавление данных, подлежащих синхронизации, осуществлялся только в одном приложении, а в другом эти данные появлялись исключительно в результате синхронизации. В этом случае GUID в двух приложениях у одинаковых объектов будут одинаковыми, и по ним можно будет однозначно сопоставить объекты.
На практике соблюдать данное требование не всегда возможно, особенно в случае настройки синхронизации между приложениями, работа в которых велась независимо. Это связано с тем, что у двух одинаковых объектов, созданных параллельно в каждом приложении, будет два разных GUID.
В некоторых случаях данные не могут быть сопоставлены по GUID по причине его отсутствия (особые случаи, которые не рассматриваются в данной статье).
Для успешного сопоставления объектов с разными GUID должно быть место для хранения информация об их соответствии. Таким местом является регистр сведений Публичные идентификаторы синхронизируемых объектов (далее РПИ ). Структура регистра представлена в таблице:
ПланВидовХарактеристикСсылка,
ДокументСсылка
При получении данных записи в регистре могут появляться на нескольких этапах (см. рисунок 1). Подробное описание самих алгоритмов сопоставления см. далее.
Рисунок 1. Этапы, на которых могут быть сделаны записи в РПИ
Этапы, помеченные пунктиром, опциональные: при выполнении сеанса обмена в автоматическом режиме отсутствуют этапы 1 и 2, при выполнении в интерактивном режиме этап 2 может быть пропущен пользователем.
Записи в РПИ создаются и на стороне отправителя при подтверждении получения данных корреспондентом через механизм квитирования. В поле Идентификатор в таких записях устанавливается исходный идентификатор объекта. Регистрация таких записей необходима для того, чтобы при получении других данных от корреспондента можно было понимать, что данный объект должен быть исключен из процедуры поиска по полям и по уникальному идентификатору.
В процессе обмена данные РПИ обеспечивают следующую функциональность:
- Сопоставление объектов при получении данных (см. рисунок 2-а).
- Обработка получаемых данных (замена ссылок) с целью обеспечения ссылочной целостности (см. рисунок 2-b).
- Обработка отправляемых данных (замена ссылок) для исключения повторного сопоставления на стороне приложения-корреспондента уже сопоставленных данных (см. рисунок 2-b).
Рисунок 2. Использование данных РПИ при получении и при отправке данных.
Прикладная логика, определяющая порядок автоматического сопоставления объектов при получении, содержится в правилах конвертации объектов (ПКО), предназначенных для получения данных.
Все компоненты (правила обработки данных, правила конвертации объектов и т.д.), определяющие прикладную логику обработки данных в процессе их получения, либо отправки (подробнее в статье Методика работы с конфигурацией «Конвертация данных 3.0» ) формируют так называемый менеджер обмена . Код менеджера обмена разрабатывается в общем модуле (подробное описание см. в документации по БСП , в разделе Обмен через универсальный формат ). Модуль создается автоматически с помощью КД3.0 на основе настроенных правил обмена либо вручную в конфигураторе (см. пример — общий модуль _ДемоМенеджерОбменаЧерезУниверсальныйФормат демо-конфигурации БСП ).
Вариант автоматического сопоставления (идентификации) объектов при получении задается с помощью свойства ВариантИдентификации ПКО и может принимать одно из трех значений:
- ПоУникальномуИдентификатору — идентификация по GUID,
- СначалаПоУникальномуИдентификаторуПотомПоПолямПоиска — идентификация по GUID и полям поиска,
- ПоПолямПоиска — идентификация по полям поиска,
Еще одним свойством, определяющим логику сопоставления, является массив полей поиска, определяемый в свойстве ПоляПоиска ПКО.
Рисунок 3. Настройки идентификации в модуле менеджера и в КД3.0.
В таблице 1 представлено описание использования данных настроек при автоматическом сопоставлении на разных этапах получения данных:
Этап анализа данных (при загрузке через помощник синхронизации данных)
Ручное сопоставление (при загрузке через помощник синхронизации данных)
Идентификация по РПИ .
Идентификация по GUID.
Запись соответствий в РПИ: делается, если соответствие нашлось при выполнении п.3.
Запись соответствий в РПИ: делается по результатам сопоставления.
Идентификация по РПИ .
Идентификация по GUID среди объектов, отсутствующих в РПИ .
Запись соответствий в РПИ: делается для либо с исходным GUID, либо с вновь сгенерированным, п. 1 не дал результата но объект с таким GUID уже есть в РПИ .
Аналогично варианту «По GUID».
Идентификация по РПИ .
Идентификация по GUID.
Запись соответствий в РПИ: см. выше.
См. колонку «Загрузка данных»
Запись соответствий в РПИ: не делаются.
Таблица 1. Правила работы настроек идентификации.
Происходит последовательное применение вариантов поиска, заданных в свойстве ПоляПоиска ПКО, используемого при загрузке объекта.
Ограничение.
При сопоставлении на этапе анализа данных применяется только 1-й вариант поиска.
Переход к следующему варианту осуществляется в двух случаях:
- У загружаемого объекта не заполнено какое-либо из полей, которое указано в варианте поиска.
- Вариант поиска не дал результата.
Если в загружаемом объекте есть информация об исходном GUID и вариант идентификации для объекта «По GUID» или «По GUID и полям поиска», то поиск выполняется среди всех объектов заданного типа, кроме тех, для которых в РПИ уже установлены соответствия.
В остальных случаях поиск осуществляется среди всех объектов информационной базы соответствующего типа.
Особенность.
При сопоставлении на этапе анализа данных у загружаемых объектов не проверяется заполнение полей, участвующих в поиске.
Особенность.
На этапе анализа данных соответствие будет установлено только в том случае, когда для одного объекта отправителя был найден один объект получателя.
На этапе загрузки данных соответствие будет установлено и в том случае, когда для одного объекта отправителя нашлось несколько объектов получателя. В такой ситуации соответствие будет установлено с одним из них.
Особенность.
На этапе загрузки данных вариант поиска Номер + Дата для документов работает следующим образом: номер искомого документа проверяется на точное соответствие, дата определяет интервал, в котором проводится поиск по номеру. Сам интервал определяется как период уникальности номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года.
На этапе анализа данных этот вариант поиска будет работать как обычно: оба поля будут проверяться на точное соответствие.
v8: Как сопоставить объекты? Обмен данными УТ 11.2 -]> БП 3.0
Обмен настроен через «Универсальный формат обмена». Косяк в банковском счете из реализации. При запуске обмена в БП в сопоставлении данных не выпадает этот банк.счет и в БП создается дубль. В БП открываю РС.»Соответствия объектов информационных баз» и вообще не вижу записей по соответствиям этого обмена, при том что договоры и контрагентов я сопоставлял при загрузке в БП и они корректно загружаются.
Как сопоставить объекты?
Аналогичная ситуация. РС.»Соответствия объектов информационных баз» пустой». Как сопоставляются объекты. Кто-нибудь подскажите плз.
abcdef, я заново настроил обмен. Через файловый каталог. Когда в БП запускаешь синхронизацию идет анализ данных, затем увидишь объекты в списке которые необходимо сопоставить
Я настраивал обмен через прямое подключение к базе, сейчас попробую через сетевой каталог
При настройке синхронизации через универсальный формат обмена, используется РС Публичные идентификаторы синхронизируемых объектов.
Что пришло на смену регистру «Соответствие объектов информационных баз» при синхронизации КА и 1С
Здравствуйте. А что пришло на смену регистру «Соответствие объектов информационных баз»?
Обсуждение (5)
Здравствуйте. 1С Бухгалтерию с 1С КА.
Хотел изменить (обобщить) Группы аналитического учета Номенклатуры при выгрузке из КА в Бух. Но вот уже понял, что наверное неправильным путем пошел.
Вообще нужно заменить группы аналитического учета в документе «Выпуск продукции» в Бух при выгрузке документа с КА. Подскажите какие варианты есть?
Дмитрий присоединюсь к беседе. Регистр сведений Соответствие объектов информационных баз в котором ранее хранились идентификаторы объектов синхронизации теперь называется Публичные идентификаторы синхронизируемых объектов.
Вы пишите «нужно заменить группы аналитического учета в документе «Выпуск продукции» в Бух при выгрузке документа с КА» — какой цели добиться хотите? Чтобы в БП выгрузилась не номенклатура, а именно группа аналитического учета?
Не совсем. Номенклатуру не меняем. В КА много групп аналитического учета. Они там нужны, мы в ней рег. учет не ведем. В БП столько не надо, там сложности на 20 от этого будут., и мы их сводим по минимуму. Раньше с УТ грузили через обработку. Перешли на КА. Вот думаю как обойтись без обработок. Через «Соответствие…» мы настроили подобную схему с подразделениями при выгрузки с ЗУП. Думал таким же образом поступить, но понял что тогда группы аналитического учета поменяются не только в выпусках, но и в справочнике номенклатур, но этого не хотелось бы.
Ну тогда только правила конвертации КА-БП дорабатывать, чтобы не править справочную информацию в КА.
Тема: Соответствие объектов информационных баз
Соответствие объектов информационных баз
Здравствуйте! с 1С дружу или нет, но не долго, требовалось сделать в типовых конфигурациях:
ИЗ Управление торговлей, редакция 11 (11.4.2.132) В
Бухгалтерия предприятия, редакция 3.0 (3.0.54.20)
перегрузку, всего того что редактировалось, корректировалось, добавлялось. Ну в общем обычная синхронизация баз.
При первом создании при синхронизации с дополнительными параметрами было то самое заветное окно для настройки соответствий объектов! Настроил, синхронизировал, и вот что обнаружил что данные дублируются. Решил проверить все это дело, что было занесено, что нет в регистр соответствие объектов информационных баз и к моему не удивлению я там ничего не обнаружил, настройку синхронизации повторял несколько раз, руки и пальцы уже в мозолях, нет настроек соответствие объектов не в УТ не в БП.
Дальше я пошел иным путем открыл в УТ Регистр соответствие объектов информационных баз и начал вносить туда в ручную,
создаю новое соответствие и передо мной возникло чудное окно! С параметрами: (сопоставляю контрагента)
Уникальный идентификатор приемника: сюда я внес УИД контрагента в базе приемник т.е БП
Уникальный идентификатор источника: тут нужно выбирать из справочника базы контрагента, выбрал.
Тип приемника: Тут я долго нагуглить не мог что нужно вносить, но мне подсказали что то, вроде, как то вот так (СправочникСсылка.Организа ции)
Тип источника: то же самое (СправочникСсылка.Организа ции)
Узел информационной базы: у меня два узла, я точно знаю какой рабочий, но на всякий случай пробовал оба. Но в первый раз ставил тот что точно знаю что это.
Уникальный идентификатор источника строкой: УИД контрагента в базе источника
Объект выгружен по ссылке: Галочка установленна я ее не трогал.
Сохраняю все это дело! Отлично одно сопоставление есть! Не долго думав над тем, а правильно ли я заполнил параметры ( Тип приемника: Тип источника: ) решил что все же с параметрам я на мудрил и нужно не (СправочникСсылка.Организа ции) а (СправочникСсылка.Контраге нты).
Открываю значит сопоставление, делаю исправления, сохраняю, а мне вот такая ошибка:
Несоответствие типов (параметр номер ‘1’)
Полный текст ошибки
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
<РегистрСведений.Соответст вияОбъектовИнформационных Баз.МодульНабораЗаписей(32)>: Ошибка при вызове метода контекста (Добавить)
ОбменДанными.Получатели.До бавить(Отбор.УзелИнформаци оннойБазы.Значение);
по причине:
Несоответствие типов (параметр номер ‘1’)
При чем, даже если я, просто открою сопоставление и решу его сохранить, ни чего не меняя то ошибка будет та же, а также если я решу просто его удалить то ошибка будет та же.
Подскажите это БАГ 1С ? Ведь конфигурация типовая, ошибки валятся на ровном месте.
Также помогите все же победить данную проблему, необходимо настроить соответствие данных!
Спасибо! Надеюсь не много написал, если нужна какая-то еще информация буду рад ответить!