Задаём ограничение строкового типа и проверяем входящие коды заранее, чтобы не потерять конец идентификатора.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Все значения учебные и создаются в памяти; документы, регистры и рабочие данные не изменяются.
Выполняйте на сервере учебной базы. Представление десятичного разделителя в сообщениях зависит от локали.
Квалификаторы = Новый КвалификаторыСтроки(5, ДопустимаяДлина.Переменная);
ТипКода = Новый ОписаниеТипов("Строка", , Квалификаторы);
Сообщить(Квалификаторы.Длина);
Сообщить(Квалификаторы.ДопустимаяДлина);
Сообщить(ТипКода.КвалификаторыСтроки.Длина);
Коды = Новый Массив;
Коды.Добавить("A-01");
Коды.Добавить("ABCDEF");
Для Каждого Код Из Коды Цикл
Если СтрДлина(Код) > Квалификаторы.Длина Тогда
Сообщить("Отклонён длинный код: " + Код);
Продолжить;
КонецЕсли;
Подготовленный = ТипКода.ПривестиЗначение(Код);
Сообщить("Допустимый код: " + Подготовленный);
КонецЦикла;
БезОграничения = Новый КвалификаторыСтроки;
Сообщить(БезОграничения.Длина = 0);Разбор по шагам
Квалификаторы задают максимальную длину 5 и переменную фактическую длину строки.
Строковые квалификаторы — третий параметр конструктора ОписаниеТипов; второй числовой пропущен.
Сначала сравниваем длину входа, только допустимое значение передаём в ПривестиЗначение.
Отдельный конструктор без параметров показывает длину 0, означающую отсутствие ограничения.
Как проверить результат
Длина 5; A-01 принят без изменений, ABCDEF отклонён.
Свойство ТипКода.КвалификаторыСтроки.Длина тоже равно 5.
Проверка квалификатора без ограничения даёт Истина. Для него нельзя применять условие длина > 0 как обычный предел 0 символов.
Ожидаемый результат
Идентификаторы проверены до потенциального изменения значения при приведении типа.
На что обратить внимание
Переменная длина не означает неограниченную: максимальный предел задаётся отдельно.
Обрезанный код может совпасть с другим товаром; в интеграции явный отказ безопаснее молчаливого сокращения.
Это ограничение собственного учебного типа, а не фактического реквизита Номенклатуры.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.