Как перенести номенклатуру, остатки и розничные цены из УТ 10.3, УТ 11 и Розницы 1.0 в Розницу 2.2?

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

Переход со старых систем учета на современную конфигурацию 1С:Розница 2.2 — это классическая задача, с которой сталкивается множество внедренцев и владельцев бизнеса. Ситуация осложняется, когда миграцию данных нужно выполнить из целого «зоопарка» конфигураций-источников (таких как «Управление торговлей 10.3», «Управление торговлей 11» или «Розница 1.0»), а бюджет на задачу сильно ограничен. В этой статье мы подробно разберем, как осуществить перенос номенклатуры (вместе со всей иерархией папок, штрихкодами и кодами SKU), а также текущих складских остатков и цен, не прибегая к дорогостоящей заказной разработке.

Мы проанализируем различные методологические подходы, разберем по шагам технологию транзитной сборки данных и выясним причины, почему прямая конвертация «один в один» не всегда является лучшим решением.

---

Метод 1. Использование стандартных правил обмена и Конвертации данных 2.0 (КД 2)

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

При установке шаблона конфигурации «Розница 2.2» (или ее последующих редакций) на компьютере создается рабочий каталог. Внутри этого каталога (обычно это папка AddFiles или ConvTr103) поставляются файлы правил обмена и специализированные внешние обработки выгрузки. Например, для миграции из УТ 10.3 предназначены файлы:

Проанализируем основные подводные камни этого метода:

  1. Несоответствие версий (релизов): Стандартные правила от разработчиков 1С жестко привязаны к релизам конфигураций. Если ваша Розница 2.2 значительно обновлена, а исходная УТ 10.3 не обновлялась несколько лет, при загрузке XML-файла вы гарантированно получите ошибки из-за изменившейся структуры метаданных. К примеру, в старых версиях Розницы существовали «Номенклатурные группы», а в версии 2.2+ им на смену пришли «Товарные группы». Из-за этого выгрузка цен может завершиться ошибкой или привести к записи нулевых цен.
  2. Замусоренность исходных баз: Если в базах-источниках присутствует задвоенная номенклатура, отрицательные остатки или некорректно заполненные штрихкоды, автоматический перенос «один в один» перенесет весь этот хаос в чистую базу Розницы 2.2.

Решение в рамках бюджета: Если вы выбираете путь XML-переноса, рекомендуется использовать специализированные доработанные правила обмена (их можно приобрести на профильных ресурсах, таких как Инфостарт, в пределах небольшого количества стартмани/бюджета). Они уже адаптированы под новые релизы Розницы 2.2/2.3, умеют автоматически обходить ошибки метаданных и корректно создают документы ВводОстатков и УстановкаЦенНоменклатуры.

---

Метод 2. Универсальный транзитный перенос через Excel (CSV)

Если перед вами стоит задача объединить данные из нескольких разных баз (например, одна торговая точка работала на УТ 10.3, вторая на Рознице 1.0, а оптовый склад велся в УТ 11), то прямое использование правил КД 2 превратится в кошмар. Возникнет проблема дублирования позиций, пересечения кодов SKU и путаницы в иерархии папок.

В такой ситуации наиболее эффективным, безопасным и дешевым способом является транзитная сборка данных в таблицах Excel с последующей загрузкой в Розницу 2.2.

Разберем этот процесс по шагам:

Шаг 1. Выгрузка данных из источников

Из каждой старой базы необходимо выгрузить плоскую таблицу. Для этого можно воспользоваться любой универсальной обработкой выгрузки табличных частей или стандартным отчетом (например, «Ведомость по товарам на складах» с добавлением свойств артикула, штрихкода и цен). Нам понадобятся следующие колонки:

Шаг 2. Консолидация и очистка данных в Excel

Собрав файлы из всех источников, мы можем провести их аудит и чистку:

Шаг 3. Загрузка в Розницу 2.2

В Рознице 2.2 есть отличный встроенный механизм: «Загрузка данных из внешнего источника». Найти его можно в разделе Компания — Начальные остатки или непосредственно в списках справочников. Однако для более гибкой загрузки (особенно штрихкодов и цен в один проход) лучше использовать внешние обработки загрузки табличных документов, работающие по принципу «Copy-Paste» (копирование колонок из Excel прямо в сетку обработки).

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

  1. Проверяет наличие номенклатуры по ключевому полю (например, по Штрихкоду или Артикулу).
  2. Если товар не найден — создает его, автоматически генерируя структуру папок (иерархию), указанную в файле импорта.
  3. Записывает штрихкоды в регистр сведений ШтрихкодыНоменклатуры.
  4. Создает документ ОприходованиеТоваров (или ВводОстатков) для фиксации остатков на складе.
  5. Создает документ УстановкаЦенНоменклатуры для регистрации розничных цен.

---

Как технически реализовать загрузку штрихкодов и создание иерархии программно?

Если вы решите написать собственную простую обработку для импорта консолидированного CSV-файла, вам потребуется понимание того, как устроены объекты метаданных в Рознице 2.2. Рассмотрим пример кода на встроенном языке 1С, который демонстрирует, как программно создать группу номенклатуры, саму карточку товара и привязать к ней штрихкод.


// Пример программного создания структуры номенклатуры и штрихкода
Процедура СоздатьНоменклатуруИШтрихкод(Знач НаименованиеТовара, Знач АртикулТовара, Знач ШтрихкодТовара, Знач ИмяГруппы)
    
    // 1. Поиск или создание родительской группы
    РодительскаяГруппа = Справочники.Номенклатура.НайтиПоНаименованию(ИмяГруппы, Истина);
    Если РодительскаяГруппа.Пустая() Тогда
        ГруппаОбъект = Справочники.Номенклатура.СоздатьГруппу();
        ГруппаОбъект.Наименование = ИмяГруппы;
        ГруппаОбъект.Записать();
        РодительскаяГруппа = ГруппаОбъект.Ссылка;
    КонецЕсли;
    
    // 2. Поиск или создание самой номенклатуры
    ТоварСсылка = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", АртикулТовара);
    Если ТоварСсылка.Пустая() Тогда
        ТоварОбъект = Справочники.Номенклатура.СоздатьЭлемент();
        ТоварОбъект.Наименование = НаименованиеТовара;
        ТоварОбъект.Артикул = АртикулТовара;
        ТоварОбъект.Родитель = РодительскаяГруппа;
        ТоварОбъект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар;
        
        // В Рознице 2.2 важно указать ставку НДС и единицу измерения по умолчанию
        ТоварОбъект.БазоваяЕдиницаИзмерения = Справочники.БазовыеЕдиницыИзмерения.НайтиПоКоду("796"); // Штуки
        ТоварОбъект.СтавкаНДС = Перечисления.СтавкиНДС.НДС18; // или актуальная для вашего случая
        
        ТоварОбъект.Записать();
        ТоварСсылка = ТоварОбъект.Ссылка;
    КонецЕсли;
    
    // 3. Запись штрихкода в регистр сведений
    Если ЗначениеЗаполнено(ШтрихкодТовара) Тогда
        МенеджерЗаписи = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьМенеджерЗаписи();
        МенеджерЗаписи.Штрихкод = ШтрихкодТовара;
        МенеджерЗаписи.Номенклатура = ТоварСсылка;
        // Если используется учет по характеристикам, можно указать пустую характеристику
        МенеджерЗаписи.Характеристика = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();
        МенеджерЗаписи.Записать(Истина); // Перезаписывать при совпадении
    КонецЕсли;

КонецПроцедуры

---

Отражение текущих остатков и цен: Методологические нюансы

Важно ответить на вопрос, который часто вызывает споры на форумах: «Как правильно отражать остатки в Рознице 2.2 при переносе?»

Существует три основных документа для фиксации остатков в новой базе:

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

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

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

---

Лайфхак: Как победить «кавардак» с иерархией при слиянии баз

Когда вы переносите данные из нескольких баз, структура папок неизбежно перемешается. Товар «Молоко» в УТ 10.3 лежал в папке /Продукты/Молочка/, а в Рознице 1.0 — в папке /Молочные продукты/.

Применим эффективную тактику разделения:

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

Таким образом, комбинируя транзитную очистку в Excel и мощные встроенные инструменты Розницы 2.2, вы сможете выполнить качественный и чистый переход с любых старых конфигураций, уложившись в минимальный бюджет.

← На главную