Проверка смешивания английских/русских букв в наименовании номенклатуры
Как проверить смешивание английских и русских букв в наименовании?
Например:
вес (Если в — русская, е — английская).
Патчкорд PMCONN-3-623-040-FC/APC-FC/AP (APC, AP—английские С-русская).
Если Вы уверовали в поиск по номенклатуре, то эту боль надо прочувствовать…
- Описание
- Подробнее
Описание
Доброго времени суток!
Если у Вас Ваши пользователи постоянно жалуются, что не могут найти в номенклатуре нужную позицию, то, возможно, проблема в неправильных наименованиях. А точнее, в смешении русских и английских букв в наименовании.
Предлагаю обработку, которая будет искать резкие переходы из русских в английские и наоборот. И показывать, где есть возможные ошибки. Пробелы и спец. символы можно использовать как разделители, и обработка не будет считать это за ошибки.
Выдает список всех подозрительных наименований. Здесь же можно зайти в редактирование и сразу поправить наименование.
Основной алгоритм:
ЭтоРусскаяБуква = Найти(строкаРусскихБукв,Символ)>0;
ЭтоАнглБуква = Найти(строкаАнглийскихБукв,Символ)>0;
Если позСимвола <> 1 Тогда
Если (этоРусскийТекст И ЭтоАнглБуква) ИЛИ (этоАнглийскийТекст И ЭтоРусскаяБуква) Тогда
стр = ТаблицаОшибок.Добавить();
стр.НомерСтроки = ВсегоСтрок + 1;
стр.Номенклатура = ВыборкаДетальныеЗаписи.Ссылка;
стр.ПозициявСтроке = позСимвола;
стр.ПравильнаяСтрока = Лев(ВыборкаДетальныеЗаписи.Наименование, позСимвола - 1);
Если этоРусскийТекст И ЭтоАнглБуква Тогда
стр.Примечание = "Англ. буква в русском тексте";
ИначеЕсли этоАнглийскийТекст И ЭтоРусскаяБуква Тогда
стр.Примечание = "Рус. буква в английском тексте";
КонецЕсли;
ВсегоСтрок = ВсегоСтрок + 1;
КонецЕсли;
КонецЕсли;
этоРусскийТекст = ЭтоРусскаяБуква;
этоАнглийскийТекст = ЭтоАнглБуква;
позСимвола = позСимвола + 1;
