Получение числа прописью

При выводе различных отчетов часто необходимо преобразовать числовое значение в строку прописью. В 1С это решается очень просто: для этого предусмотрена функция ЧислоПрописью().

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

  • Без предмета исчисления:
    • Двадцать два;
    • Триста восемьдесят четыре.
  • С предметом исчисления:
    • Тридцать восемь дублонов;
    • Двенадцать кораблей;
    • Два дома.

Примеры

Для начала приведем примеры преобразования, чтобы узнать возможности 1С:
// ***** Вывод чисел: *****
ЧислоПрописью(9876.54);
// Девять тысяч восемьсот семьдесят шесть 54

ЧислоПрописью(1234.56, "Л=ru_RU;ДП=ИСТИНА", "целая, целых, целых, ж, сотая, сотой, сотых, ж, 2");
// Одна тысяча двести тридцать четыре целых пятьдесят шесть сотых

ЧислоПрописью(7432, "Л=ru_RU;НП=Ложь", ",,,,,,,,0");
// Семь тысяч четыреста тридцать два

// ***** Вывод денежных сумм: *****
ЧислоПрописью(9845.11, "Л=ru_RU", "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2");
// Девять тысяч восемьсот сорок пять рублей 11 копеек

ЧислоПрописью(2845.11, "Л=ru_RU;ДП=Истина", "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2");
// Две тысячи восемьсот сорок пять рублей одиннадцать копеек

ЧислоПрописью(555.16, "Л=ru_RU;ДП=Истина", "доллар, доллара, долларов, м, цент, цента, центов, м, 2");
// Пятьсот пятьдесят пять долларов шестнадцать центов

ЧислоПрописью(453.23, "Л=ru_RU;ДП=Истина", "евро, евро, евро, м, цент, цента, центов, м, 2");
// Четыреста пятьдесят три евро двадцать три цента

ЧислоПрописью(812.44, "Л=en_US;ДП=Истина", "dollar, dollars, cent, cents, 2");
// Eight hundred twelve dollars forty four cents

ЧислоПрописью(3945.76, "Л=en_US;ДП=Истина", "euro, euros, cent, cents, 2");
// Three thousand nine hundred forty five euros seventy six cents

// ***** Преобразовывать можно не только денежные единицы: *****
ЧислоПрописью(535, "Л=ru_RU", "коробка, коробки, коробок, ж,,,,ж, 0");
// Пятьсот тридцать пять коробок

ЧислоПрописью(342, "Л=ru_RU", "телевизор, телевизора, телевизоров, м,,,,м, 0");
// Триста сорок два телевизора

Описание работы с функцией

Как мы выяснили, для получения числа прописью используется функция
ЧислоПрописью(<Число>, <ФорматнаяСтрока>, <ПараметрыПредметаИсчисления>)
Функция возвращает строковое значение. В качестве входных параметров передаются:

  • Число — преобразуемое значение;
  • ФорматнаяСтрока — параметры форматирования:
    • Л — Код локализации (например, u_RU — русский; en_US — английский, de_DE — немецкий). По умолчанию используются настройки операционной системы.
    • НП — Выводить название предмета исчисления, по умолчанию — Истина.
    • НД — Выводить название десятичных частей предмета исчисления, по умолчанию — Истина.
    • ДП — Дробную часть выводить прописью/числом, по умолчанию — Ложь.
    • ИИ — Выводить союз and. Анализируется только для англоязычной локализации. Возможные значения: «НеИспользовать», «Использовать».
  • ПараметрыПредметаИсчисления — перечисление через запятую параметров предмета исчисления. Формат зависит от локализации.

Для русского языка параметры предмета исчисления имеют вид «рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2», где:

  • рубль – единственное число именительный падеж;
  • рубля – единственное число родительный падеж;
    рублей – множественное число родительный падеж;
    м – мужской род (ж – женский род, с – средний род);
    «копейка, копейки, копеек, ж» – дробная часть, аналогично предмету исчисления (может отсутствовать);
    «2» – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).

Использование в типовых решениях

В конфигурациях, построенных на библиотеке стандартных подсистем, в общем модуле РаботаСКурсамиВалют есть функция

СформироватьСуммуПрописью(СуммаЧислом, Валюта, ВыводитьСуммуБезКопеек = Ложь)

Функция служит для преобразования валютных сумм в строку прописью.

Оцените статью