Переход с конфигурации «Управление торговлей», редакция 10.3 на «Управление торговлей», редакция 11 — это не просто очередное обновление программы. Это фундаментальная смена архитектуры данных платформы 1С. Справочник Номенклатура претерпел самые серьезные изменения: изменились принципы хранения единиц измерения, весогабаритных характеристик, штрихкодов, свойств и изображений.
Если вы используете стандартный помощник перехода, велика вероятность столкнуться с тем, что часть критически важных данных перенесется некорректно или потеряется вовсе. В этой статье мы подробно разберем, как устроен перенос основных реквизитов номенклатуры, с какими подводными камнями вы столкнетесь и как решить возникающие проблемы с помощью встроенных инструментов и несложных доработок.
В конфигурации УТ 10.3 значения веса и объема хранились непосредственно в карточке товара либо в справочнике единиц измерения. В УТ 11 весогабаритные характеристики тесно связаны с механизмом Упаковок и могут рассчитываться динамически.
Рассмотрим подробнее главную проблему: в УТ 11 расчет веса может использовать структуру числителя и знаменателя для корректного пересчета дробных значений. Если в вашей исходной базе велся учет в граммах или миллилитрах (например, значение веса было 0.150 кг), стандартные правила переноса могут округлить эти значения до целых чисел или перенести их с ошибками. Это критически ломает дальнейшую складскую логистику и расчет доставки.
Решение: Перед запуском переноса убедитесь, что в УТ 11 настроены правила округления и базовые единицы измерения веса. После переноса обязательно запустите выборочную проверку карточек номенклатуры с дробными весогабаритными характеристиками. Если данные исказились, потребуется написать простую обработку для прямого переноса значений веса из старой базы.
В УТ 10.3 штрихкоды хранились в регистре сведений Штрихкоды, а в УТ 11 они записываются в регистр ШтрихкодыНоменклатуры. Перенос этих данных имеет свои особенности:
Если стандартный перенос не справился, мы можем быстро написать обработку для прямого переноса штрихкодов. Проанализируем пример кода для загрузки штрихкодов напрямую:
// Пример переноса штрихкодов через прямое подключение COM или чтение XML
НоваяЗапись = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьМенеджерЗаписи();
НоваяЗапись.Штрихкод = СтрокаДанных.Штрихкод;
НоваяЗапись.Номенклатура = НайденнаяНоменклатураСсылка;
НоваяЗапись.Характеристика = НайденнаяХарактеристикаСсылка;
НоваяЗапись.Упаковка = НайденнаяУпаковкаСсылка;
НоваяЗапись.Записать(Истина);
Выясним причину, почему после переноса база данных УТ 11 может резко вырасти в объеме и стать неудобной для работы. В УТ 10.3 у товара могли одновременно существовать: единица хранения остатков, единица отчетов, единица мест и базовая единица. В УТ 11 логика иная — есть одна базовая единица хранения, а все остальные альтернативные варианты реализуются через справочник Упаковки.
При переносе для каждого товара, имевшего дополнительные единицы измерения в старой базе, УТ 11 создает индивидуальный набор упаковок. В результате справочник упаковок раздувается миллионами дублирующих записей (например, индивидуальная упаковка «Коробка (10 шт.)» создается отдельно для каждого товара).
Решение: После завершения переноса рекомендуется объединить индивидуальные упаковки в общие (типовые) наборы упаковок. Это можно сделать как вручную для групп товаров, так и с помощью написания групповой обработки, которая сопоставит одинаковые индивидуальные упаковки и заменит их ссылками на общие наборы.
В УТ 11 привычные по старой версии «Свойства» и «Категории» заменены механизмами «Дополнительные реквизиты» и «Дополнительные сведения». Они переносятся в План видов характеристик ДополнительныеРеквизитыИСведения.
Разберем по шагам известную проблему: очень часто после стандартного переноса перенесенные свойства отображаются в карточке товара в УТ 11 как «зачеркнутые». Их невозможно отредактировать, и они не видны в стандартных настройках дополнительных реквизитов.
Причина этого кроется в том, что правила переносят сами свойства и их значения, но не связывают их с конкретным Набором дополнительных реквизитов, который привязан к определенному Виду номенклатуры в новой базе.
Для исправления этой ситуации необходимо привязать перенесенные свойства к наборам дополнительных реквизитов. Посмотрим на пример кода, который решает эту задачу:
// Привязка свойства к набору дополнительных реквизитов вида номенклатуры
НаборОбъект = Справочники.НаборыДополнительныхРеквизитовИСведений.НайтиПоНаименованию("Свойства_ИмяВидаНоменклатуры").ПолучитьОбъект();
Если НаборОбъект <> Неопределено Тогда
НоваяСтрока = НаборОбъект.Реквизиты.Добавить();
НоваяСтрока.Свойство = СсылкаНаПеренесенноеСвойство;
НаборОбъект.Записать();
КонецЕсли;
При переносе характеристик критически важно обратить внимание на настройку в помощнике выгрузки из УТ 10.3 под названием «Сворачивать характеристики номенклатуры».
Проанализируем два сценария работы этого флага:
Важный нюанс с ценами: Если в УТ 10.3 цены регистрировались в разрезе характеристик, после переноса прайс-листы могут перестать отображаться. Чтобы характеристики корректно участвовали в механизмах ценообразования новой УТ 11, часто требуется программно перезаписать элементы перенесенного справочника характеристик для обновления их внутренних индексов.
В УТ 10.3 картинки хранились в справочнике ХранилищеДополнительнойИнформации. В УТ 11 они переносятся в справочник НоменклатураПрисоединенныеФайлы.
При переносе картинок вы гарантированно столкнетесь со следующими проблемами:
Рекомендованный алгоритм переноса картинок:
00000123.jpg).Чтобы минимизировать количество ошибок при переносе справочника Номенклатура, выполните следующие шаги перед началом выгрузки данных: