Собственные 12-й стул и пять автомобилей показывают различие порядкового и количественного числительных, окончание цифры и представление прописью.
Где и как запускать
Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.
Подготовка
Используйте отдельную учебную базу без рабочих данных. Создайте серверный общий модуль УчебныйЯзык с флагом Сервер, без Привилегированный.
Вставьте весь модуль выбранного примера, а не одну процедуру внутрь другой. Из своей серверной команды учебной обработки вызовите УчебныйЯзык.ВыполнитьПример().
Все числа, строки и коллекции созданы в самом примере. Документы, регистры, файловая система и сеть не используются; никаких зависимостей от КА2/УНФ/УТ/БП нет.
Браузер показывает код, но не исполняет BSL. Проверки результата нужно выполнить вручную на платформе 8.5.1.1343 в учебной базе.
Процедура ВыполнитьПример() Экспорт
Стулья = ПолучитьСклоненияСтрокиПоЧислу("стул", 12, "", "Л=ru_RU;ЧС=Порядковое", "ПД=Родительный;ПЧ=ЧислоСОкончанием");
Автомобили = ПолучитьСклоненияСтрокиПоЧислу("автомобиль", 5, "", "Л=ru_RU;ЧС=Количественное", "ПД=Дательный;ПЧ=ЧислоПрописью");
Если Стулья.Количество() = 0 Или Автомобили.Количество() = 0 Тогда
ВызватьИсключение "Не получен вариант собственной учебной строки";
КонецЕсли;
Сообщить(НРег(СокрЛП(Стулья[0])) = "12-го стула");
Сообщить(НРег(СокрЛП(Автомобили[0])) = "пяти автомобилям");
Сообщить("Номер собственного предмета: " + Стулья[0]);
Сообщить("Кому: " + Автомобили[0]);
ОшибкаОбработана = Ложь;
Попытка
НеверныйНомер = ПолучитьСклоненияСтрокиПоЧислу("стул", 3.5, "", "Л=ru_RU;ЧС=Порядковое", "ПД=Родительный;ПЧ=ЧислоСОкончанием");
Сообщить(НеверныйНомер.Количество());
Исключение
ОшибкаОбработана = Истина;
Диагностика = ИнформацияОбОшибке();
Сообщить(Диагностика.Описание);
Сообщить("Дробное число нельзя использовать как порядковое числительное");
КонецПопытки;
Сообщить(ОшибкаОбработана);
КонецПроцедурыРазбор по шагам
В первом вызове число 12 обозначает порядковый номер. Родительный падеж и ЧислоСОкончанием дают 12-го стула.
Во втором число 5 обозначает количество. Дательный падеж и ЧислоПрописью дают пяти автомобилям.
Пустая строка третьего аргумента означает отсутствие отдельной единицы измерения, а не пропуск локализации или падежа.
Оба результата — массивы. Проверить, что они не пустые, до чтения первого элемента.
Отдельный контролируемый отрицательный тест передаёт 3.5 для порядкового числительного. Справка прямо указывает, что это вызывает исключение.
Как проверить результат
Три проверки Истина, а также строки с 12-го стула и пяти автомобилям и сообщение о недопустимом дробном порядковом числе.
Если заменить 3.5 на 3, ошибочного ввода больше нет: последний флаг станет Ложь. Проверьте отдельно полученный вариант порядкового числительного.
Ожидаемый результат
Полные вызовы различают смысл числа, падеж, вид представления и документированное ограничение дробного порядкового числительного.
На что обратить внимание
ЧислоСОкончанием несовместимо с ЧС=Количественное. Не смешивайте эти параметры для пяти автомобилей.
Отрицательный тест намеренно создаёт ошибку только в собственной учебной строке и явно её обрабатывает.
Массив вариантов — не утверждение, что грамматика любой произвольной товарной карточки всегда будет однозначна.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.