Нормализация НСИ · 8 мин чтения

Нормализация «до/после» на реальном справочнике

Шаг за шагом: как строка «каб ВВГнг 3*2,5 ед:м.п <NULL>» превращается в классифицированную карточку. Примеры «было → стало» таблицей.

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

Перед стартом мы делаем аудит справочника «как есть» — с цифрами, а не на словах. Типичная картина для справочника материалов на десятки тысяч позиций:

~70%
позиций без кода ОКПД2
~20%
дубли и варианты записи
40+
написаний единиц вне ОКЕИ
~10%
позиций читаемы как есть

Плюс заглушки, которые притворяются данными: «нет», «---», «<NULL>», «-». Такой справочник не понимает ни человек, ни система закупок.

2. Конвейер: 7 шагов на одной строке

Разберём одну типичную строку, как она приходит из 1С:

каб ВВГнг-LS 3*2,5 , 0.66кв чёрн ГОСТ нет ед:м.п кол-756 <NULL>

Ни кода, ни нормальной единицы, ни структуры. Дальше — конвейер.

  1. Приём. Запись попадает в конвейер как есть — из 1С, Excel или XML. Оригинал сохраняется, чтобы каждый следующий шаг был прослеживаем.
  2. Очистка мусора. Убираем управляющие символы, двойные пробелы, обрывки и заглушки «нет», «<NULL>», «кол-756».
    каб ВВГнг-LS 3*2,5 0.66кв чёрн ГОСТ ед:м.п
  3. Раскрытие сокращений и разбор характеристик. «каб» → «Кабель», «чёрн» → «чёрный». Характеристики из названия уходят в отдельные поля: число жил 3, сечение 2,5 мм², напряжение 0,66 кВ, цвет чёрный.
  4. Единицы измерения. «м.п.», «пм», «метр» — одно и то же: единица Метр, код ОКЕИ 006.
  5. Классификация. Код присваивается каскадом: справочник → нечёткий поиск → языковая модель-арбитр. Результат: ОКПД2 27.32.13.110 (провода и кабели), КПВЭД 27.32.
  6. Обогащение. Пробелы дозаполняются из внешних источников — отраслевых справочников, ГИСП, открытых каталогов: материал жилы медь, изоляция ПВХ нг-LS, ГОСТ 31996-2012. У каждого значения сохраняется источник.
  7. Контроль полноты и дедупликация. Проверяем, что для класса заполнены все обязательные атрибуты, и сливаем разные написания той же позиции в одну эталонную карточку.
Эталонная карточка на выходе
НаименованиеКабель ВВГнг(А)-LS 3×2,5 0,66 кВ
Число жил / сечение3 / 2,5 мм²
Напряжение0,66 кВ
Материал жилы / изоляциямедь / ПВХ нг-LS
Цветчёрный
СтандартГОСТ 31996-2012
ЕдиницаМетр (ОКЕИ 006)
ОКПД2 / КПВЭД27.32.13.110 / 27.32
Полнота100% ✓ · дубли слиты

3. Примеры «было → стало»

Обезличенные строки из реального справочника материалов строительной компании. Обратите внимание на единый порядок: вид изделия → тип/марка → материал → размеры → стандарт.

#БылоСтало
1Лист г/к 8,0х1500х6000 ГОСТ 19903-74 Ст3спЛист горячекатаный Ст3сп 8х1500х6000 ГОСТ 19903-74
2Сталь листовая оцинк ГОСТ 14918-80 2кл Ст08пс 1,5x1250x2500Лист оцинкованный 2 класс сталь 08пс 1,5х1250х2500 ГОСТ 14918-80
3Кабель контр. 4х1,5 нг(А)-FRLSКабель контрольный нг(А)-FRLS 4х1,5
4Труба стальная 89х3,5 ГОСТ 10704-91 В20 ГОСТ 10705-80Труба стальная электросварная сталь 20 группа В 89х3,5 ГОСТ 10704-91 ГОСТ 10705-80
5Полоса 5х40 ГОСТ 103-2006 Ст3 пс/спПолоса стальная Ст3пс/сп 5х40 ГОСТ 103-2006
6Шайба оц. М6 DIN125Шайба М6 оцинкованная DIN 125
7Клапан запорный угл. никелир Ду 15Клапан запорный угловой никелированный Ду15
8Профиль монтажный зетовый (97*40*60*2000) УХЛ1 (S=2,0мм) оцинкованный листПрофиль Z-образный оцинкованный 97х40х60х2000 мм С2,0мм УХЛ1
9Сварочная смесь из аргона и углекислого газа К-20 (80%Ar+20%СО2)Смесь сварочная К-20 аргон 80% углекислота 20%
10Дюбель-гвоздь потайной бортик 6х60 (100 шт)Дюбель-гвоздь 6х60 с потайным бортиком упаковка 100 шт
11Сальник набивной Dy200 L=300Сальник набивной Ду200 Л300мм
12Ящик для песка 0,5 м.- ЯП-05Ящик для песка ЯП-05 0,5 м3
13Р/к фильтра ЦОМРемкомплект фильтра центробежной очистки масла
14Изделие закладное МН212-2 1.400-15 вып.1Изделие закладное МН 212-2 серия 1.400-15 выпуск 1

Что происходит в этих примерах: раскрыты сокращения («г/к», «оцинк», «контр.», «угл.», «Р/к»), латиница в обозначениях заменена на принятые («Dy» → «Ду», «L=» → «Л»), марка стали и стандарт стоят на постоянных местах, диапазоны и размеры записаны единообразно, единица в названии («м.» → «м3») исправлена по смыслу.

4. Единицы измерения по ОКЕИ

Каждое написание единицы приводится к Общероссийскому классификатору единиц измерения — тогда остатки и цены складываются корректно.

Как записано в справочникеЕдиница ОКЕИКод
м.п., пм, м/п, метр, мпМетр006
шт, шт., штук, ед, компл. (поштучно)Штука796
кг, кило, кгрКилограмм166
т, тн, тоннТонна168
м2, кв.м, м.кв.Квадратный метр055
м3, куб.м, м.куб.Кубический метр113
л, литр, лит.Литр112
уп, упак, пачкаУпаковка778

5. Коды ОКПД2 и КПВЭД

ОКПД2 — российский классификатор продукции, КПВЭД — его аналог для стран ЕАЭС. Коды нужны для закупочных процедур, подтверждения производства в РФ и корректной аналитики по видам продукции. Код присваивается каскадом:

  1. точное совпадение по внутренним правилам и справочникам;
  2. нечёткий поиск по нормализованному наименованию и характеристикам;
  3. в спорных случаях — языковая модель в роли арбитра, которая выдаёт код вместе с обоснованием.

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

6. Склейка дублей

Дубли ищутся не по совпадению текста, а по смыслу — после нормализации у разных написаний совпадают вид изделия, характеристики и стандарт. Дубль не удаляется, а получает ссылку на эталон.

Исходная записьПосле нормализацииРешение
Лист 2,0 (1,25*2,5)Лист 2х1250х2500эталон
Лист оц. 2мм 1250х2500дубль → эталон
Изделие закладное МН104-6 L=950 1.400-15 вып.1Изделие закладное МН 104-6 Л950мм серия 1.400-15 выпуск 1эталон
Закладная деталь МН104-6, L=950 1.400-15 вып.1дубль → эталон
Хомут силовой 112-121ммХомут силовой 112–121 ммэталон
Хомут силовой 112*121дубль → эталон

При слиянии берётся наиболее полный вариант, а в эталоне остаётся история — из какой записи пришло каждое значение. Как дубли схлопываются между несколькими базами, разобрано в статье «Слияние нескольких баз 1С в один справочник».

7. Что уходит на ручную проверку

Конвейер не «додумывает» то, чего нет в данных. Если после очистки характеристик не хватает для однозначной идентификации, позиция помечается «требует уточнения» с указанием, чего именно не хватает. Например:

  • Углекислота (б) → «Углекислота баллон» — не указан объём баллона, а аналоги бывают разных типоразмеров;
  • Лента перфорированная — нет ширины и толщины, позицию невозможно отличить от соседних.

Такие позиции получают от заказчика недостающие данные. Обычно на ручную доводку уходит не больше 10–15% справочника, и это действительно неполные записи, а не ложные срабатывания.

8. Как принимается результат

Работа принимается по измеримым показателям, согласованным до старта:

ПоказательЦелевое значение
Классификация ОКПД2≥ 95%
Классификация КПВЭД≥ 90%
Единицы приведены к ОКЕИ100%
Средняя полнота атрибутов≥ 0,9
Позиции на ручную проверку≤ 10%, только реально неполные
Дублислиты в эталоны

Заказчик заранее знает, что получит и как это проверить, — приёмка идёт по метрикам, а не «на глаз».

Разберём ваш справочник

Пришлите обезличенную выгрузку на 100–500 позиций — бесплатно покажем «было → стало» и долю дублей на ваших данных. Вопросы по нормализации и 1С:MDM обсуждаем в Telegram.

Читайте также