gifts2017

Числа прописью в родительном падеже в 7.7? Легко!

Опубликовал Gimalaj Gimalaev (gimalaj) в раздел Программирование - Практика программирования

Вывод числительных прописью в родительном падеже штатными средствами в три строчки кода.

Часто бывают случаи, когда нужно вывести имена числительные прописью в родительном (и других) падеже. Например, «в течение 3 (Трех) дней», «не более 50 (Пятидесяти) рублей» и т.д.

Для этого есть сторонние компоненты, но часто имеют место случаи, когда компонента неправильно склоняет числительные, да и когда внешние компоненты по разным причинам невозможно (нельзя) использовать.

Выход: внимательно ознакомившись с описанием функции Пропись(), мы увидим, что задать образец вывода чисел прописью можно этой функцией, подсунув ей файл прописи (*.cpl). Дальше – дело техники: копируем файл 1cv7.spl (например, в файл 1cv7R.spl) и заменяем в нем числа в именительном падеже на числа в родительном. А в 1С пишем:

Пропись("1CV7R.SPL"); // Задаем использование вывода прописью из этого файла
Число_50_В_Род_Падеже = Формат(50, "ЧП");
Пропись(""); // Возвращаемся к дефолтному файлу
Сообщить(Число_50_В_Род_Падеже);

Вот и все! Аналогичным образом числительные превращаются в дательный/винительный/другие падежи.

P.S. Может, идея и не нова, но в интернете я ее не встретил.

P.S.S. Содержание моего файла 1cv7R. spl:

{"Speller",
{"Money",
{"Рубль","Рубля","Рублей","Копейка","Копейки","Копеек","M"}},
{"Numbers",
{"Одного","Двух","Трех","Четырех","Пяти","Шести","Семи","Восьми","Девяти", "Одной","Двух",
"Десяти","Одиннадцати","Двенадцати","Тринадцати","Четырнадцати","Пятнадцати","Шестнадцати","Семнадцати","Восемнадцати","Девятнадцати",
"Двадцати","Тридцати","Сорока","Пятидесяти","Шестидесяти","Семидесяти","Восьмидесяти","Девяноста",
"Ста","Двухсот","Трехсот","Четырехсот","Пятисот","Шестисот","Семисот","Восьмисот","Девятисот",
"Тысячи","Тысяч",
"Миллиона","Миллионов",
"Миллиарда","Миллиардов",
"Триллиона","Триллионов",
"Ноль"}},
{"Date",
{"Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь",
"Января","Февраля","Марта","Апреля","Мая","Июня","Июля","Августа","Сентября","Октября","Ноября","Декабря",
"г.","Квартал"}},
{"DateRange",
{"Полугодие","Месяцев"}},
{"WeekDay",
{"Понедельник","Вторник","Среда","Четверг","Пятница","Суббота","Воскресенье"}}
}


См. также

Подписаться Добавить вознаграждение
Комментарии
1. Марина Чирина (chmv) 24.06.15 18:01
Не поняла, почему эта будет склонять верно
2. Михаил (Consit) 25.06.15 08:45
(1)Она не склоняет, а подставляет готовый падеж числительного - в файл 1cv7R.spl автор зашил числительные в родительном падеже.