Как исправить ошибку дублирования атрибутов при выгрузке товара в сервис 1С:Номенклатура для получения GTIN?

Программист 1С v8.3 (Управляемые формы) Управленческий учет Торговля и дистрибуция
← На главную

При работе с маркируемым товаром в системе 1С:Управление нашей фирмой (УНФ) пользователи часто сталкиваются с необходимостью получения кодов GTIN через сервис 1С:Номенклатура и интеграцию с Национальным каталогом (система «Честный ЗНАК»). Одной из наиболее специфических проблем является ошибка валидации данных, при которой система сообщает о многократной передаче одного и того же атрибута в текущем массиве (фиде).

Рассмотрим подробнее текст типичной ошибки: Ошибка заполнения атрибута 'Код товара в учетной системе поставщика' (идентификатор Национального каталога: 13797): Атрибут передан несколько раз в текущем массиве. Аналогичная ошибка часто возникает и для атрибута Наименование товара в учетной системе поставщика (идентификатор 2480). Проанализируем причины этой ситуации и разберем по шагам методы её решения.

Выясним причину возникновения конфликта идентификаторов

Для начала разберем, что означают указанные идентификаторы. В структуре Национального каталога каждый реквизит имеет свой уникальный системный ID. Например, ID 13797 жестко закреплен за кодом товара, а ID 2480 — за его наименованием. Когда программа 1С формирует пакет данных (JSON-фид) для отправки в сервис, она собирает значения из различных полей карточки номенклатуры и её дополнительных реквизитов.

Ошибка «передан несколько раз» означает, что в сформированном пакете данных для одной позиции номенклатуры система дважды (или более) попыталась записать значение в один и тот же системный слот. Это происходит из-за избыточности настроек сопоставления в вашей базе 1С. Проанализируем ситуацию: если в настройках категории 1С:Номенклатуры два разных поля (например, стандартный «Артикул» и пользовательский «Код для весов») сопоставлены с одним и тем же атрибутом Национального каталога (13797), выгрузка будет прервана с ошибкой.

Метод 1: Проверка и удаление дублирующихся дополнительных реквизитов

Как показывает практика и подтверждают ответы технической поддержки, наиболее частой причиной являются лишние или продублированные дополнительные реквизиты. Разберем, как это проверить:

  1. Перейдем в раздел НастройкиДополнительные реквизиты.
  2. Проанализируем список реквизитов, закрепленных за номенклатурой. Ищем реквизиты с названиями, похожими на те, что указаны в ошибке: «Наименование для каталога», «Код товара в системе» и так далее.
  3. Проверим сопоставление. Часто бывает, что при обновлении конфигурации или переносе данных были созданы новые реквизиты, которые дублируют функции стандартных полей.
  4. Важно: Если вы обнаружили два реквизита, которые несут одну и ту же смысловую нагрузку и передаются в сервис, один из них необходимо удалить или исключить из состава выгрузки.

В некоторых случаях ДополнительныеРеквизиты могут содержать скрытые записи, которые не видны в форме элемента, но присутствуют в табличной части. Для очистки таких данных можно использовать стандартную обработку «Групповое изменение реквизитов», чтобы проверить значения полей у проблемных позиций.

Метод 2: Настройка соответствия реквизитов через Виды номенклатуры

Рассмотрим вариант решения, предложенный опытными пользователями, который помогает «сбросить» некорректные связи в метаданных сервиса. Посмотрим на алгоритм действий:

  1. Откроем справочник Виды номенклатуры (или Категории номенклатуры в УНФ).
  2. Создадим копию существующего вида номенклатуры (через кнопку «Создать копию»).
  3. Сохраним новый вид номенклатуры без сопоставления с каталогом.
  4. После сохранения откроем форму снова и выберем ссылку для выбора вида, полностью соответствующего вашему товару в 1С:Каталоге.
  5. При выгрузке в Национальный каталог используем механизм сопоставления по видам. Выберем необходимые реквизиты (характеристики) и нажмем Автоматическое сопоставление значений.

Этот метод позволяет очистить кэшированные настройки сопоставления, которые могли повредиться при обновлении релиза или смене версии API 1С:Номенклатуры.

Метод 3: Особенности работы с характеристиками

Проанализируем ситуацию, когда в УНФ используются характеристики. Если для одного товара создано несколько характеристик, система должна выгружать каждую как отдельный экземпляр с уникальным идентификатором. Однако, если настройки сопоставления указаны неверно, 1С может попытаться отправить для каждой характеристики общее наименование «владельца» (самой номенклатуры) под видом уникального атрибута.

Убедимся, что в настройках выгрузки для атрибута Код товара в учетной системе поставщика (ID 13797) выбрано поле, гарантирующее уникальность. Если вы используете характеристики, это должно быть сочетание Код + Характеристика или GUID. Если же в настройках выбрано просто поле Артикул, и он одинаковый у всех характеристик товара, система воспримет это как передачу одного и того же значения несколько раз для разных сущностей в рамках одного фида.

Технические нюансы и символы в данных

Иногда ошибка может быть вызвана не только логическим дублированием, но и техническим сбоем парсера. Рассмотрим несколько дополнительных моментов:

Итоги и рекомендации

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

  1. Очистите таблицу сопоставления для проблемной категории в сервисе 1С:Номенклатура.
  2. Нажмите «Заполнить по умолчанию», чтобы восстановить стандартную связь атрибутов 13797 и 2480 с системными полями 1С.
  3. Если у вас есть пользовательские доп. реквизиты, убедитесь, что они не привязаны к тем же идентификаторам Национального каталога, к которым уже привязаны стандартные поля.

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

← На главную