При организации обмена данными между двумя независимыми конфигурациями 1С:Управление производственным предприятием (УПП) разработчики часто сталкиваются с ситуацией, когда в базы добавляется новый самописный документ, а нормативно-справочная информация (в частности, справочник Номенклатура) велась автономно в каждой из баз. В результате уникальные идентификаторы (GUID) одних и тех же позиций номенклатуры не совпадают.
Рассмотрим подробно, как правильно включить новый документ в план обмена, зарегистрировать ранее созданные документы для выгрузки, настроить правила конвертации данных без снятия конфигурации с поддержки и организовать правильное сопоставление справочников.
Для организации обмена между двумя конфигурациями УПП в составе метаданных используются специальные планы обмена. Проанализируем, что необходимо сделать в Конфигураторе и пользовательском режиме:
ОбменУППУПП и ОбменУППУППФоновый. Включите созданный документ в состав обоих планов обмена. Флаг автоматической регистрации установите в значение Авторегистрация (или настройте алгоритм автоматической регистрации при проведении/записи).Регистрация изменений для обмена данными.Если требуется зарегистрировать объекты программно по определенному условию, разберем следующий пример кода:
УзелОбмена = ПланыОбмена.ОбменУППУПП.НайтиПоКоду("УЗЕЛ_ПРИЕМНИК");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТекДок.Ссылка КАК Ссылка
|ИЗ
| Документ.МойНовыйДокумент КАК ТекДок
|ГДЕ
| ТекДок.Проведен = ИСТИНА";
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, РезультатЗапроса.Ссылка);
КонецЦикла;
Стандартный обмен УПП–УПП построена на правилах конвертации объектов (ПКО) и правилах выгрузки данных (ПВД), созданными в программе «1С:Конвертация данных 2.1» (КД 2.1).
Разберем алгоритм получения и правки типовых правил обмена:
MD82.epf (так как УПП работает в режиме совместимости с платформой 8.2).ПравилаОбмена_УПП_УПП. Сохраните содержимое макета в файл XML.Один из частых вопросов — обязательно ли править типовой макет ПравилаОбмена_УПП_УПП в конфигураторе? Ответ — нет. В УПП предусмотрен механизм подмены правил обмена напрямую в пользовательском режиме.
Выполним следующие действия в режиме «1С:Предприятие»:
Настройки обмена данными.Типовой механизм УПП при выполнении обмена автоматически отдаст приоритет правилам, загруженным в справочник Настройки обмена данными, игнорируя макет из конфигуратора.
Если справочник Номенклатура заводился в двух базах независимо, то позиция с одинаковым артикулом или наименованием имеет разные Уникальные Идентификаторы (GUID). При выгрузке документа по умолчанию система попытается найти номенклатуру по GUID, не найдет ее и создаст дубль.
Выясним, как штатно решить проблему дублирования НСИ в 1С:УПП. Существует три основных подхода:
В конфигурации УПП есть встроенный регистр сведений Соответствия объектов информационных баз. Этот регистр хранит связи вида:
[Узел обмена + УИД объекта в базе-источнике] -> [Ссылка на объект в базе-приемнике]
Перед первым обменом запустите обработку Помощник интерактивного обмена данными. В ней можно выполнить предварительное интерактивное сопоставление номенклатуры двух баз (по Наименованию, Коду или Артикулу). Все установленные связи помощник автоматически записывает в регистр Соответствия объектов информационных баз.
В КД 2.1 в ПКО справочника Номенклатура проанализируем настройки поиска:
Искать объект по уникальному идентификатору (или оставьте его, но настройте поля поиска при ненайденном УИД).Поиск ключевые поля сопоставления (например, Артикул и Наименование или Код).Если справочники полностью идентичны по составу, перед запуском регулярного обмена рекомендуется выполнить разовую синхронизацию GUID. С помощью специальной обработки ссылкам номенклатуры в базе-приемнике присваиваются аналогичные GUID из базы-источника. После выравнивания ГУИДов необходимость в поддержании регистра соответствий полностью отпадает.
Проанализируем ключевое техническое различие между обработками загрузки данных, с которым часто путаются разработчики:
1. Штатная обработка ОбменДаннымиXML:
Используется системой по умолчанию при регламентном и интерактивном обмене через справочник Настройки обмена данными. Она полноценно поддерживает работу с регистром Соответствия объектов информационных баз. При загрузке объектов система сначала ищет соответствие в этом регистре, и лишь при его отсутствии переходит к поиску по GUID или полям поиска из правил.
2. Внешняя обработка УниверсальныйОбменДаннымиXML:
Предназначена для ручного обмена файлами. В своем стандартном виде она не обращаеся к специфическому регистру соответствий УПП и производит поиск strictly по GUID или по полям поиска, заданным непосредственно в правилах конвертации.
Таким образом, при использовании стандартных механизмов планов обмена УПП алгоритм поиска номенклатуры по регистру соответствий работает автоматически и не требует написания дополнительного кода в обработчиках правил обмена.