Как правильно организовать хранение артикулов маркетплейсов в карточках номенклатуры 1С?

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

При интеграции 1С с маркетплейсами через API одной из ключевых задач становится выбор надежного способа сопоставления товаров. Часто начинающие разработчики и пользователи ограничиваются простым совпадением по артикулу, однако на практике это приводит к ряду сложностей. Рассмотрим подробнее, почему стандартного поля Артикул в карточке Номенклатура бывает недостаточно, и какие архитектурные решения существуют для корректного обмена данными.

Зачем вообще хранить идентификаторы маркетплейсов в 1С?

Прежде чем перейти к технической реализации, выясним причину необходимости хранения этих данных. Синхронизация по артикулу поставщика — это лишь верхушка айсберга. Хранение специфических ID маркетплейсов (таких как SKU, Offer ID, nmID) необходимо для решения следующих задач:

  1. Обновление цен и остатков: Большинство API (особенно у Ozon и Wildberries) требуют передачи не артикула, а внутренних числовых идентификаторов товара в их системе.
  2. Загрузка отчетов комиссионера: В документах о продажах маркетплейсы часто указывают свои SKU. Если в 1С нет таблицы соответствия, автоматизировать разнесение продаж по позициям Номенклатура будет невозможно, как и создание задач для ответственных сотрудников.
  3. Работа с наборами и комплектами: Один товар в 1С может продаваться на маркетплейсе как поштучно, так и упаковками (наборами). В этом случае одной карточке в 1С соответствуют несколько карточек на площадке.
  4. Мультиаккаунтинг: Если вы ведете продажи от нескольких юридических лиц или в разных магазинах одной площадки, артикулы могут пересекаться или требовать раздельного учета.

Проанализируем ситуацию с точки зрения выбора инструмента реализации в среде 1С:Предприятие.

Решение 1: Использование дополнительных сведений (для простых случаев)

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

Разберем по шагам, как это работает: В справочнике Номенклатура создаются дополнительные сведения с именами вроде "Артикул WB" или "SKU Ozon". Программа позволяет выводить эти поля в списки и использовать их в запросах при выгрузке данных. Однако у этого метода есть существенный минус: он реализует связь "один к одному". Если у вас появится второй магазин или товар будет дублироваться в разных категориях маркетплейса, этот метод перестанет работать.

Решение 2: Создание собственного регистра сведений (универсальный подход)

Если требуется надежная архитектура, посмотрим на пример создания специализированного регистра сведений. Это решение наиболее гибкое и позволяет хранить историю связей и работать с несколькими площадками одновременно.

Рекомендуемая структура регистра (например, с именем СоответствиеНоменклатурыМаркетплейсов):

Измерения:

  1. Маркетплейс (Тип: Перечисление или Справочник) — указывает, к какой площадке относится запись.
  2. ЛичныйКабинет (Тип: Справочник) — если у вас несколько аккаунтов на одной площадке.
  3. ИдентификаторТовараНаМаркетплейсе (Тип: Строка) — тот самый внутренний ID (SKU, nmID).

Ресурсы:

  1. Номенклатура (Тип: СправочникСсылка.Номенклатура).
  2. Характеристика (Тип: СправочникСсылка.ХарактеристикиНоменклатуры).

Проанализируем пример кода для получения артикула маркетплейса при выгрузке остатков, включая механизмы обработки ответов сервера:


Функция ПолучитьИдентификаторМП(ТоварСсылка, ВыбранныйМаркетплейс) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Соответствие.ИдентификаторТовараНаМаркетплейсе КАК ID
        |ИЗ
        |   РегистрСведений.СоответствиеНоменклатурыМаркетплейсов КАК Соответствие
        |ГДЕ
        |   Соответствие.Номенклатура = &Номенклатура
        |   И Соответствие.Маркетплейс = &Маркетплейс";
    
    Запрос.УстановитьПараметр("Номенклатура", ТоварСсылка);
    Запрос.УстановитьПараметр("Маркетплейс", ВыбранныйМаркетплейс);
    
    Результат = Запрос.Выполнить();
    Если Не Результат.Пустой() Тогда
        Выборка = Результат.Выбрать();
        Выборка.Следующий();
        Возврат Выборка.ID;
    КонецЕсли;
    
    Возврат "";
КонецФункции

Решение 3: Типовой механизм «Сопоставление номенклатуры»

В современных конфигурациях, таких как 1С:Управление нашей фирмой 3.0 или 1С:Управление торговлей 11.5, разработчики 1С уже предусмотрели штатные подсистемы для работы с маркетплейсами. Рассмотрим подробнее, как это реализовано в типовых модулях.

Система использует справочники НоменклатураМаркетплейсов или специализированные регистры сопоставления. Основное преимущество типового подхода заключается в том, что 1С хранит не только артикул, но и состояние публикации карточки, ошибки модерации и текущую категорию товара на площадке.

В УНФ 3.0 для этого выделено целое рабочее место в разделе "Продажи" — "Маркетплейсы". Разберем по шагам процесс синхронизации: Сначала вы загружаете список товаров из личного кабинета маркетплейса. Система создает записи в таблице сопоставления, где для каждой позиции маркетплейса указывается соответствующая Номенклатура в базе. Это позволяет избежать дублирования артикулов и корректно обрабатывать заказы.

Специфика идентификаторов по площадкам

При проектировании системы хранения важно понимать, что именно мы сохраняем. Выясним специфику основных игроков рынка:

Проблема использования штрихкодов

Часто возникает вопрос: "Почему бы не использовать типовой регистр ШтрихкодыНоменклатуры для хранения артикулов маркетплейсов?". Проанализируем этот момент. Штрихкод в 1С предназначен для идентификации физической единицы товара при сканировании. Если вы начнете записывать в этот регистр все технические коды маркетплейсов, вы рискуете "засорить" базу. При обычном складском сканировании система может находить десятки соответствий для одного кода, что создаст ошибки при приемке или отгрузке. Для идентификаторов маркетплейсов лучше использовать отдельное хранилище.

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

Подводя итог, выясним наиболее правильную стратегию: Если вы используете современную конфигурацию (УНФ 3.0, УТ 11.5), в первую очередь изучите возможности встроенного модуля интеграции. В большинстве случаев он уже содержит необходимые механизмы сопоставления.

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

← На главную