ПострочноСправочник номенклатуры · каждая строка

Перенос номенклатуры из одной базы 1С в другую без дублей

Чтобы перенос номенклатуры из одной базы 1С в другую не дал дублей, сначала сопоставляют два справочника, потом загружают. Каждой строке источника находят пару в целевой базе или помечают её как новую. Загружают только новые, а для найденных пар переносят ссылки на уже существующие карточки. Код карточки ключом между базами не служит.

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

Три сценария: копия, слияние, переход на новую базу

  • Копия в пустую базу. Целевой справочник пуст, переносится всё. Новых дублей не появится, но старые переедут вместе с карточками. Если источник давно не чистили, это время почистить его до переноса.
  • Слияние двух живых баз. Например, две компании группы переходят на одну базу. В цели уже есть свой справочник, и большая часть позиций в нём есть, только записана по-другому. Здесь рождается основная масса дублей.
  • Переход на новую базу или конфигурацию. Переносят в новую базу, где часть справочника уже завели заранее: по проекту внедрения или из каталога. По риску это то же слияние, только меньше по объёму.

Сценарий стоит назвать до начала работ. От него зависит, нужна ли таблица соответствий, сколько строк уйдёт на проверку людям и кто отвечает за целевой справочник. При копии хватает чистки источника. При слиянии без сопоставления не обойтись.

Подготовка справочника к переезду на новую конфигурацию разобрана в статье о чистке перед переходом. Здесь речь о самой встрече двух справочников.

Чем сопоставлять: код, артикул, наименование

У строки номенклатуры есть три поля, по которым её можно узнать в другой базе.

  • Код присваивает каждая база сама. По нему можно сопоставить только базы, которые когда-то были одной.
  • Артикул работает, если его вели одинаково в обеих базах. Чаще в одной базе это артикул производителя, в другой артикул поставщика, в третьей пусто.
  • Наименование есть всегда. Но «Подш. 6205 2RS» и «Подшипник 6205-2RS 25х52х15» для точного сравнения разные строки.

На практике работают все три ключа по очереди. Сначала то, что совпало надёжно, затем остальное по наименованию и ключевым характеристикам: размеру, марке, исполнению.

Как подготовить наименования к сравнению

Перед сравнением наименования обеих баз приводят к одному виду. Регистр сводят к нижнему, лишние пробелы и точки убирают. Латинские буквы, похожие на русские, заменяют там, где они случайны. Размеры записывают одним знаком: «12х60», «12*60» и «12 x 60» становятся одной записью. Сокращения раскрывают по словарю: «подш.» в «подшипник», «каб.» в «кабель».

Исходные наименования при этом не трогают. Приведённая запись живёт в отдельном столбце и нужна только для сравнения. В целевую базу уходит наименование по её шаблону.

Почему код не ключ между базами

Код номенклатуры уникален внутри одной базы. В соседней базе код 00-00001234 может принадлежать совсем другой позиции. Одна и та же позиция может иметь в двух базах разные коды. Совпадение кодов между независимыми базами случайно.

У карточки есть и внутренний идентификатор. Он совпадает в двух базах только тогда, когда обе когда-то были одной копией или уже связаны обменом. Тогда перенос по нему корректен для старых позиций. Карточки, заведённые после разделения баз, всё равно приходится сопоставлять по содержанию.

Проверить это просто. Выгрузите из обеих баз код и наименование и сравните строки с одинаковым кодом. Если наименования у них разные, код как ключ использовать нельзя.

Сначала сопоставить, потом загрузить

Порядок работ такой:

  1. Выгрузите оба справочника. Колонки: Код, Наименование, Артикул, Единица, Группа. Как это сделать, описано в статье про выгрузку в Excel.
  2. Почистите дубли внутри источника. Если в источнике три карточки на один подшипник, после переноса все три найдут одну пару в цели. Остатки и документы надо будет свести, и лучше сделать это до переноса.
  3. Сопоставьте источник с целью. Для каждой строки источника нужна пара в цели, пометка «новая» или пометка «вопрос». Это та же задача, что и сопоставление номенклатуры поставщика с каталогом: два списка, разные записи одних вещей.
  4. Соберите таблицу соответствий. Код источника, код цели, статус, причина. Её проверяет человек, который знает позиции.
  5. Загрузите. Новые позиции заводятся карточками, для найденных пар обмен или обработка подставляет существующую карточку цели.

Пока идёт сопоставление, справочник цели продолжает жить. Пользователи заводят новые карточки, и часть из них совпадёт с позициями источника. Удобно договориться о дате, после которой новые карточки в цели заводит один ответственный. Перед загрузкой карточки, созданные после выгрузки цели, сопоставляют отдельно.

Большой справочник переносят частями, по группам. Сначала группы с понятными обозначениями: подшипники, крепёж, кабель. Потом группы, где записи свободные. Так первые ошибки видно на малом объёме.

Таблица соответствий остаётся после переноса. По ней потом сверяют остатки, ищут потерянные строки и отвечают на вопрос «куда делась наша позиция».

Что совпало при сопоставлении и что с этим делать
Что совпалоЧто делаем
Артикул и наименование по смыслуСвязываем с карточкой цели
Артикул совпал, наименования разныеПроверяет человек: артикул мог попасть в чужую карточку
Наименование по смыслу, артикул пустойСвязываем, если совпали ключевые характеристики: размер, марка, исполнение
Наименование похоже, одна характеристика другаяНе связываем. Ру16 и Ру25, 2RS и 2Z это разные позиции
Строка похожа на две карточки целиВопрос: в цели дубль, его надо решить до переноса
Ничего не совпалоНовая позиция, заводим по шаблону цели

Что делать с позициями, которых нет в целевой базе

Строку со статусом «новая» не стоит переносить как есть. Целевая база обычно ведёт наименования по своим правилам. Новая карточка, записанная по правилам источника, станет в цели белой вороной и первым кандидатом в будущие дубли.

  • Приведите наименование к шаблону цели до загрузки: порядок слов, сокращения, единицы.
  • Назначьте группу цели. Группа источника может не существовать в цели. Разносите позиции по классу. Дерево папок источника копировать не нужно.
  • Отложите мёртвые позиции. Карточки без движения и помеченные на удаление можно не переносить совсем. Это решение принимает владелец справочника, а в таблице соответствий им ставят свой статус.

Предполагаю, что в вашем переносе именно «новые» позиции вызывают больше всего споров. Так ли это?

Единицы, группы, характеристики при переносе

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

Группы. Деревья групп двух баз почти никогда не совпадают. Строить соответствие папка к папке долго и бесполезно. Проще назначить группу цели каждой новой позиции по её классу.

Характеристики. В одной базе размер одежды может быть характеристикой одной карточки, в другой отдельной карточкой. Тогда одна карточка источника соответствует нескольким карточкам цели или наоборот. Как выбирать между этими способами, разобрано в отдельной статье о характеристиках. Для переноса важно одно: решить заранее и записать решение в таблицу соответствий.

Проверка после: пересчёт и выборка

  1. Пересчёт строк. Строк в источнике должно быть ровно столько, сколько связанных, новых, отложенных и вопросов вместе. Если сумма не сходится, часть строк потерялась по дороге.
  2. Новых не больше, чем ждали. Число новых карточек в цели должно совпасть со статусом «новая» в таблице. Лишние карточки означают, что обмен не узнал часть пар и завёл их заново.
  3. Повторный поиск дублей в цели. Запустите его по свежим карточкам. Пары из новой и старой карточки цели показывают промахи сопоставления.
  4. Выборка глазами. Возьмите несколько десятков связанных пар из разных групп и проверьте их целиком. Ошибки сопоставления обычно собираются в одном классе, например в арматуре или кабеле.
  5. Сверка остатков. Остаток по позиции в цели после переноса равен сумме остатков связанных с ней строк источника, в базовой единице цели.

О коде как о поле карточки написано в материале как кодировать номенклатуру в 1С. Как свести несколько списков в один, описано в материале единый справочник МТР предприятия.

Если дубли уже попали в целевую базу, их сводят штатным поиском и объединением, подробности в статье про загрузку из Excel без дублей. До переноса сопоставление можно проверить на своих строках: пришлите 5–10 тысяч строк источника и выгрузку цели на бесплатную пробу. Спорные пары придут отдельным листом с причиной.

Вопросы про перенос номенклатуры

Можно ли переносить номенклатуру без сопоставления?
Можно, если целевая база пустая. Если в ней уже есть справочник, обмен без сопоставления заведёт заново все позиции, которые записаны по-другому. Дубли тогда придётся объединять уже после переноса, вместе с документами и остатками.
Что делать с остатками при переносе?
Остатки переносят после номенклатуры, по таблице соответствий. Если несколько строк источника связаны с одной карточкой цели, их остатки складывают. Если единицы разные, сначала пересчитывают в базовую единицу цели.
Переносить ли карточки с пометкой на удаление?
Обычно нет. Исключение: на них ещё есть остатки или открытые документы. Тогда сначала разберитесь, почему их пометили, и свяжите с живой позицией цели.
Поможет ли совпадение артикулов?
Поможет как первый ключ. Совпавший артикул при разных наименованиях всё равно стоит проверить: артикулы поставщиков повторяются, а пустые артикулы совпадают друг с другом формально.

Сопоставим два справочника до переноса

Пришлите 5–10 тыс строк справочника номенклатуры в Excel или CSV, можно обезличенных. В течение дня вернём файл с группами дублей, единым наименованием, классом, уверенностью и статусом. Бесплатно.

Прислать строки на пробу