Синхронизация данных между конфигурациями 1С:Управление нашей фирмой (УНФ) и 1С:Розница — это процесс, требующий предельной точности в настройках справочников. Одной из самых неприятных проблем является дублирование справочника Виды номенклатуры, когда на каждую карточку товара в базе-приемнике создается новый вид номенклатуры, даже если идентичный уже существует. Более того, часто возникают ситуации, когда созданный «дубль» ошибочно помечается системой как группа, что делает невозможным его выбор в документах и установку цен. Разберем детально, почему это происходит и как навести порядок в обмене.
Проанализируем ситуацию. Основная причина кроется в механизме поиска объектов при обмене через формат EnterpriseData. Когда данные передаются из УНФ в Розницу, система пытается найти существующий объект в базе-приемнике. Если поиск по уникальному идентификатору (GUID) и полям поиска не дает результата, создается новый объект.
Рассмотрим основные факторы, провоцирующие проблему:
Категории номенклатуры, а в Рознице — Виды номенклатуры. При трансляции данных правила конвертации могут быть настроены так, что для каждой позиции передается уникальный набор свойств, который Розница интерпретирует как новый вид.Использовать характеристики. Если в УНФ категория подразумевает характеристики, а в Рознице структура объекта не была подготовлена, загрузчик может ошибочно создать родительский элемент вместо элемента справочника.Первым делом проанализируем актуальность используемых правил. Зачастую ошибки уже исправлены разработчиками в свежих релизах, но в самой настройке обмена могут сохраняться старые правила. Посмотрим, как это проверить:
ExchangeRules.zip).Важно: Версии конфигураций УНФ и Розницы должны быть совместимы. Несоответствие версий формата EnterpriseData (например, передача в 1.15 при ожидании 1.10) гарантированно ведет к потере полей поиска и дублированию.
Если обмен уже запущен и дубли созданы, нам необходимо «подружить» объекты в двух базах. Для этого воспользуемся стандартным механизмом сопоставления.
Рассмотрим порядок действий:
Виды номенклатуры.После этого при следующей итерации обмена система поймет, что эти объекты идентичны, и перестанет плодить новые записи.
Разберем ситуацию, когда дубли уже «засорили» базу. В этом случае нам поможет стандартная обработка Поиск и замена дублей. Посмотрим, как правильно объединить записи:
Виды номенклатуры.Совет: В качестве оригинала всегда выбирайте ту позицию, которая была создана в результате загрузки (обмена). Ее можно определить по префиксу кода или дате создания. Если вы выберете «ручной» объект как оригинал, при следующем обмене система может снова создать дубль, так как связь по GUID в регистре Соответствия объектов информационных баз будет утеряна.
Если стандартные методы не помогают, проанализируем ситуацию на уровне кода правил обмена. Нам потребуется выгрузить правила в конфигурацию Конвертация данных.
Выясним причину ошибки сопоставления:
Виды номенклатуры.При загрузке. Возможно, в коде жестко прописано создание нового объекта при определенных условиях (например, если не заполнен ТипНоменклатуры).Проанализируем техническую составляющую. В последних версиях формата EnterpriseData в объекте Виды номенклатуры появились новые реквизиты, такие как ВариантОформленияПродаж или настройки наборов. Если УНФ передает эти поля пустыми, а в Рознице они обязательны для заполнения, механизм сопоставления может игнорировать существующий объект с заполненными полями, считая его «другим».
Для исправления можно попробовать в узле синхронизации на стороне УНФ снять флаг «Выгружать настройки видов номенклатуры». В этом случае система будет передавать только ссылку на объект, а настройки в Рознице останутся нетронутыми.
В некоторых случаях после исправления сопоставлений дубли продолжают появляться. Это происходит из-за того, что ошибочные связи сохранились в регистре сведений Соответствия объектов информационных баз.
Выполним очистку:
СправочникСсылка.ВидыНоменклатуры.Следуя этим шагам, мы сможем добиться стабильной работы обмена между 1С:УНФ и 1С:Розница без дублирования справочников и ошибок иерархии.