Сравнение строк с транслитерацией (с символами из разных алфавитов)

14.05.12

Разработка - Универсальные функции

При разработке правил обмена или при поиске дублей возможен вариант, когда пользователь использовал одинаковые символы из русского и английского алфавита. Например  Н (эн) <> H (аш), Р(эр)<> P(пэ) и т.д.
В данной обработке реализовано сравнение строк с учетом такой криворукости пользователя.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
ДублиПоКодамСТранслитерацией
.epf 7,70Kb
25 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Обработка содержит две функции

СравнитьСтрокиСТранслитерацией(Строка1,Строка2)   и    СравнитьСимволыСТранслитерацией(С1,С2)

Перед сравнением обе строки приводятся к верхнему регистру (на всякий случай), т.е. регистр не учитывается при сравнении.

В функции СравнитьСимволыСТранслитерацией(С1,С2) содержится ТЗ соответствий символов разных алфавитов, ее можно дополнить и другими символами, например "точка" и "запятая".

Функции лежат в модуле обработки. В форме реализован пример использования.

Доп: Добавил сравнение на "вхождение" одной строки в другую, тоже с учетом транслитерации.
В разных базах может быть разная длина кода, напрмер в одной базе код "АВС123456ААА", а в другой "АВС123456А". В этом случае обработка вернет "Вхождение" вместо "Истина или Ложь".
Проверяется по принципу Строка1Н = Лев(Строка1,СтрДлина(Строка2));
т.е. строки "АВС123456ААА",  "ААААВС123456" вернут ложь.... если надо, допишите сами, мне нужно было только такое условие.

Доп2: Предыдущая версия очень медленно обрабатывала большие объемы данных. Оптимизировал.
Таблица соответствия символов формируется отдельной функцией (т.е. вне цикла)
Убрал лишние циклы.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Загрузка и выгрузка в Excel Универсальные функции Программист 1С:Предприятие 8 Россия Бесплатно (free)

Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux). Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).

30.10.2025    4624    Abysswalker    11    

46

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

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

14.05.2025    8591    DeerCven    15    

62

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    56416    dimanich70    85    

174

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    7946    7    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    70896    atdonya    31    

72

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    9957    ke.92@mail.ru    17    

68
Для отправки сообщения требуется регистрация/авторизация