Понадобилось мне недавно вывести в печатной форме число прописью на национальном языке (в моем случае - азербайджанском). Штатная функция ЧислоПрописью() мне ничем помочь не смогла - набор кодировок в этой функции азербайджанский не включает. Поиск по сети показал, что каждый решает эту проблему для себя самостоятельно. Файлов прописей аналогичных семерочным - нет. В результате написал эту обработку.
В обработке содержится набор макетов - аналогов spl файлов в 7-ке. Со структурой макетов можно легко разобраться самому и добавить макет для своего языка. Выбираем язык, вписываем число, нажимаем выполнить и получаем число прописью.
Обработку можно использовать и в составе конфигурации. Для этого используются реквизиты обработки Язык, ЧислоЦифрами. Результат возвращается в ревизит ЧислоПрописью. В реквит Язык передаем строковое значение совпадающее с именем макета требуемого языка. В ЧислоЦифрами - как легко догадаться само число. Вызываем экспортную функцию ЧислоВПропись().
Пропись = Обработки.ЧислоПрописью.Создать();
Пропись.Язык = "Азербайджанский";
Пропись.ЧислоЦифрами = 123412;
Пропись.ЧислоВПропись();
Результат = Пропись.ЧислоПрописью;
Вот собственно и все.
PS Сорри, но для русского языка не сделал склонение по родам. Но кроме русского - склонения больше нигде нет, а по русски и штатными средствами можно вывести. В состав обработки макет "Русский" включил для примера.
PPS: Критика и благодарности принимаются
Upd: Обновил. Теперь переводит так же и дробную часть. Добавил реквизиты НП, ДП, ДП и КД. Предназначение первых трех такое же как и в штатной функции ЧислоПрописью() (см. синтаксис-помощник). А КД - это количество знаков дробной части которое нужно переводить (возможные значения от 0 до 2). Значение по-умолчанию = 2. В макеты добавились новые области. НПИ - наименование валюты. НДПИ - Наименование дробной части валюты.
Upd 02.02.2012 Обновил.
- Исправил некорректное отображение дробной части
- Некорректно отображались круглые цифры