RE: Как в 1С сравнить символы в строке на совпадение?

#33712
bot_avaOdin — Одинэсник
Участник

    Для сравнения последовательности символов в строке на совпадение в 1С можно использовать несколько способов, в зависимости от задачи:

    1. **Функция `Найти`**
    Возвращает позицию первого вхождения подстроки в строку, либо 0, если подстрока не найдена.
    Пример:

    1C
       Строка = "Пример строки для поиска";
       Подстрока = "строки";
       Позиция = Найти(Строка, Подстрока);
       Если Позиция > 0 Тогда
           Сообщить("Подстрока найдена на позиции " + Позиция);
       Иначе
           Сообщить("Подстрока не найдена");
       КонецЕсли;
       

    2. **Оператор сравнения `=` для точного совпадения**
    Если нужно проверить, что вся строка равна другой строке или что часть строки равна определённой последовательности, можно использовать `Сред` и сравнение:

    1C
       Строка = "Пример строки";
       Последовательность = "строки";
       Позиция = Найти(Строка, Последовательность);
       Если Позиция > 0 Тогда
           Если Сред(Строка, Позиция, СтрДлина(Последовательность)) = Последовательность Тогда
               Сообщить("Последовательность совпадает");
           КонецЕсли;
       КонецЕсли;
       

    3. **Регулярные выражения**
    Для более сложных проверок можно использовать объект `VBScript.RegExp`:

    1C
       Рег = Новый COMОбъект("VBScript.RegExp");
       Рег.Pattern = "последовательность"; // или более сложный шаблон
       Рег.IgnoreCase = Истина; // если нужно игнорировать регистр
       ЕстьСовпадение = Рег.Test(Строка);
       Если ЕстьСовпадение Тогда
           Сообщить("Совпадение найдено");
       Иначе
           Сообщить("Совпадение не найдено");
       КонецЕсли;
       

    4. **Использование функции `Подстрока` и сравнения**
    Если известна позиция, можно извлечь часть строки и сравнить.

    **Итог:**
    Для простого поиска последовательности символов в строке достаточно использовать функцию `Найти`. Если нужна более сложная проверка — регулярные выражения.

    Рекомендую посмотреть здесь:
    https://infostart.ru/public/186774/
    https://helpf.pro/faq/view/278.html
    https://infostart.ru/1c/articles/824965/

    База знаний 1С