Оформить номер стула и количество автомобилей в разных падежах

Учебные задачи

Собственные 12-й стул и пять автомобилей показывают различие порядкового и количественного числительных, окончание цифры и представление прописью.

Где и как запускать

Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.

Подготовка

  1. Используйте отдельную учебную базу без рабочих данных. Создайте серверный общий модуль УчебныйЯзык с флагом Сервер, без Привилегированный.

  2. Вставьте весь модуль выбранного примера, а не одну процедуру внутрь другой. Из своей серверной команды учебной обработки вызовите УчебныйЯзык.ВыполнитьПример().

  3. Все числа, строки и коллекции созданы в самом примере. Документы, регистры, файловая система и сеть не используются; никаких зависимостей от КА2/УНФ/УТ/БП нет.

  4. Браузер показывает код, но не исполняет BSL. Проверки результата нужно выполнить вручную на платформе 8.5.1.1343 в учебной базе.

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

Разбор по шагам

  1. В первом вызове число 12 обозначает порядковый номер. Родительный падеж и ЧислоСОкончанием дают 12-го стула.

  2. Во втором число 5 обозначает количество. Дательный падеж и ЧислоПрописью дают пяти автомобилям.

  3. Пустая строка третьего аргумента означает отсутствие отдельной единицы измерения, а не пропуск локализации или падежа.

  4. Оба результата — массивы. Проверить, что они не пустые, до чтения первого элемента.

  5. Отдельный контролируемый отрицательный тест передаёт 3.5 для порядкового числительного. Справка прямо указывает, что это вызывает исключение.

Как проверить результат

  1. Три проверки Истина, а также строки с 12-го стула и пяти автомобилям и сообщение о недопустимом дробном порядковом числе.

  2. Если заменить 3.5 на 3, ошибочного ввода больше нет: последний флаг станет Ложь. Проверьте отдельно полученный вариант порядкового числительного.

Ожидаемый результат

Полные вызовы различают смысл числа, падеж, вид представления и документированное ограничение дробного порядкового числительного.

На что обратить внимание

  1. ЧислоСОкончанием несовместимо с ЧС=Количественное. Не смешивайте эти параметры для пяти автомобилей.

  2. Отрицательный тест намеренно создаёт ошибку только в собственной учебной строке и явно её обрабатывает.

  3. Массив вариантов — не утверждение, что грамматика любой произвольной товарной карточки всегда будет однозначна.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.