Как организовать проверку справочников НСИ на некорректные наименования?

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

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

Основные критерии формальной проверки

Для начала разберем технические критерии, которые можно проверить программно без глубокого анализа смысла слов. Эти проверки позволяют отсеять до 70% очевидного мусора:

Техническая реализация через запросы (оператор ПОДОБНО)

Для создания быстрого отчета в 1С удобнее всего использовать язык запросов. Посмотрим на пример использования оператора ПОДОБНО для поиска символов, которые не входят в разрешенный перечень (кириллица, цифры, дефис, пробел):


ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Наименование КАК Наименование,
    Номенклатура.Артикул КАК Артикул
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    (НЕ Номенклатура.Наименование ПОДОБНО "%[А-Яа-яЁё0-9 -]%")
    ИЛИ Номенклатура.Наименование ПОДОБНО " %" // Начинается с пробела
    ИЛИ Номенклатура.Наименование ПОДОБНО "% " // Заканчивается пробелом
    ИЛИ Номенклатура.Наименование ПОДОБНО "%  %" // Двойной пробел

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

Семантический анализ и «стоп-слова»

Следующим шагом выясним причину появления бессмысленных названий через поиск ключевых слов-маркеров. Мы можем составить список выражений, которые сигнализируют о некорректности карточки:

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

Использование регулярных выражений (RegEx)

Для более тонкой очистки данных в современных версиях платформы 1С 8.3 (начиная с 8.3.24) можно использовать встроенные функции работы с регулярными выражениями. Это позволяет проанализировать структуру строки на соответствие сложным шаблонам. Например, если нам нужно проверить формат записи ГОСТа или артикула внутри наименования.

Разберем по шагам пример использования регулярного выражения для проверки формата входящей строки:


// Проверка, является ли строка набором мусорных символов
Шаблон = "^[ \t\r\n\.\,\-\=\+\*]+$"; // Строка состоит только из спецсимволов
Если СтрПодобнаПоРегулярномуВыражению(Наименование, Шаблон) Тогда
    Сообщить("Найдено некорректное наименование: " + Наименование);
КонецЕсли;

Кросс-проверки и логический контроль

Иногда наименование само по себе выглядит корректно, но является ошибочным в контексте других реквизитов. Проанализируем следующие сценарии:

  1. Дублирование единиц измерения: Если в поле Наименование написано «Труба 10 метров», а в реквизите ЕдиницаИзмерения указано «шт», это создает путаницу при отгрузке.
  2. Парность скобок: Проверяем, чтобы каждой открывающей скобке соответствовала закрывающая. Строки типа «Подшипник (пр-во Самара» являются признаком обрезанных данных.
  3. Совпадение с Артикулом: Если Наименование в точности равно значению поля Артикул, значит, пользователь поленился заполнить описание товара.

Методология регулярного контроля

Для внедрения регулярной проверки в филиалах выясним, как сделать отчет удобным для пользователя. Рекомендуем добавить в результат отчета колонку «Тип ошибки» (например: «Найден дубль», «Спецсимволы в начале», «Короткое имя») и колонку «Автор». Это позволит администратору НСИ быстро фильтровать задачи и проводить обучение с сотрудниками, которые чаще всего допускают ошибки.

Посмотрим на алгоритм поиска дублей: Самый простой способ — «грязный» поиск. Мы приводим все наименования к верхнему регистру, удаляем все пробелы и заменяем «ё» на «е». Если после такой нормализации два разных Ref (ссылки) имеют одинаковую строку — это потенциальный дубль, требующий объединения через «Поиск и замену дублей».

Используя предложенные методы, вы сможете превратить разовую чистку базы в стройную систему контроля качества нормативно-справочной информации.

← На главную