Учебный контракт требует две латинские заглавные буквы, дефис и четыре ASCII-цифры. Проверяем весь код, а не его фрагмент.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Все исходные строки заданы прямо в примере; товары, файлы и настройки рабочих конфигураций не нужны.
Выполняйте на сервере учебной базы. Особенно важно для встроенных функций регулярных выражений.
Это специально заданный учебный формат, а не правило артикулов УТ, КА2, УНФ или Avito.
Сначала используйте фиксированный шаблон из примера; не принимайте произвольные регулярные выражения от пользователей.
Шаблон = "^[A-Z]{2}-[0-9]{4}$";
Коды = Новый Массив;
Коды.Добавить("AB-0042");
Коды.Добавить("ab-0042");
Коды.Добавить("XAB-0042Y");
Коды.Добавить("AB-42");
Для Каждого Код Из Коды Цикл
Соответствует = СтрПодобнаПоРегулярномуВыражению(Код, Шаблон, Ложь, Ложь);
Сообщить(СтрШаблон("%1: %2", Код, Соответствует));
КонецЦикла;
Сообщить(СтрПодобнаПоРегулярномуВыражению("ab-0042", Шаблон, Истина, Ложь));Разбор по шагам
^ и $ закрепляют начало и конец. [A-Z] допускает латиницу, [0-9] — ASCII-цифры.
Квантификаторы {2} и {4} задают точное число символов.
Ложь для ИгнорироватьРегистр сохраняет требование заглавных букв.
Последняя строка отдельно показывает, как меняется результат при ИгнорироватьРегистр=Истина.
Как проверить результат
Из четырёх кодов только AB-0042 даёт Истина; остальные три — Ложь.
Последняя проверка строчного ab-0042 с ИгнорироватьРегистр=Истина даёт Истина.
Замените латинскую A на кириллическую А: исходный строгий шаблон должен отклонить код.
Ожидаемый результат
Строгий учебный артикул проверен до преобразования в данные обмена.
На что обратить внимание
Наличие похожей визуально буквы не делает латиницу и кириллицу одним символом.
Это проверка формата, не существования товара и не уникальности артикула.
Проверяйте также предельную длину входящего текста; сложные непроверенные шаблоны могут расходовать много времени.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.