Переезд с «МоегоСклада» (МС) на 1С часто осложняется тем, что эти системы используют принципиально разные подходы к хранению модификаций товаров. В МС используются «Варианты», где каждая комбинация свойств — это фактически отдельная карточка, а в 1С применяется справочник ХарактеристикиНоменклатуры. Рассмотрим, как грамотно связать эти сущности и какие стратегии переноса данных наиболее эффективны.
Прежде чем приступать к импорту через ВыгрузкаЗагрузкаEnterpriseData, нам необходимо проанализировать структуру каталога. В 1С характеристики могут быть привязаны либо к конкретной позиции Номенклатура, либо к объекту ВидыНоменклатуры. Разберем по шагам правильный алгоритм подготовки:
ДополнительныеРеквизитыИСведения.UUID. Его крайне важно сохранить в 1С (например, в дополнительном реквизите характеристики), чтобы избежать дублирования при повторных обменах.Проанализируем ситуацию: если мы загрузим данные «как есть» без подготовки ВидовНоменклатуры, мы получим хаотичный список характеристик, который будет сложно использовать в отчетах и при интеграции с маркетплейсами. Рекомендуется сначала создать в 1С нужную структуру аналитики (свойства и категории), а затем настраивать маппинг в правилах конвертации.
Если вы используете КонвертацияДанных версии 3.0, мы можем написать алгоритм, который при загрузке XML будет искать существующую характеристику по набору свойств или создавать новую, заполняя таблицу ДополнительныеРеквизиты.
Для продвинутых разработчиков существует вариант изменения структуры самого XML-файла перед его загрузкой в 1С. Рассмотрим подробнее этот процесс: с помощью XSLT-преобразования можно перехватить данные о вариантах МС и переформировать их в структуру, которую ожидает формат EnterpriseData. Это позволяет «на лету» объединять свойства вариантов в правильные коллекции ЗначенияСвойствОбъектов.
Выясним причину, по которой некоторые специалисты советуют грузить все варианты как отдельные карточки Номенклатура (без характеристик). Это упрощает первичный перенос остатков, так как не требует сложной логики сопоставления. Однако в дальнейшем вам придется выполнить следующий алгоритм:
Этот процесс можно автоматизировать через КорректировкаРегистров. Рассмотрим пример логики переброски остатков:
// Пример логики для переноса остатков между типами номенклатуры
Движения.СвободныеОстатки.Записать = Истина;
Для Каждого СтрокаТОВАРА Из ТаблицаПереноса Цикл
// Списываем товар без характеристики
Движение = Движения.СвободныеОстатки.ДобавитьРасход();
Движение.Номенклатура = СтрокаТОВАРА.СтараяНоменклатура;
Движение.Количество = СтрокаТОВАРА.Количество;
// Приходуем на новую номенклатуру с характеристикой
Движение = Движения.СвободныеОстатки.ДобавитьПриход();
Движение.Номенклатура = СтрокаТОВАРА.НоваяНоменклатура;
Движение.Характеристика = СтрокаТОВАРА.НужнаяХарактеристика;
Движение.Количество = СтрокаТОВАРА.Количество;
КонецЦикла;
При переносе данных не забудьте про сопутствующие объекты:
ШтрихкодыНоменклатуры. При записи штрихкода обязательно указывайте и Номенклатуру, и Характеристику, иначе вы не сможете различать товары при сканировании.УстановкаЦенНоменклатуры. Если в МС цена привязана к варианту, в 1С она должна быть зафиксирована в разрезе характеристики.ПрисоединенныеФайлы. Привязка фото к конкретной характеристике — это отдельная задача, которую лучше решать через скрипт после завершения основной загрузки товаров.Подводя итог, наиболее надежным способом является использование штатного модуля обмена от «МоегоСклада» или разработка собственных правил в КонвертацияДанных 2.0/3.0, где вы сможете явно прописать логику поиска характеристик по входящим свойствам.