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

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

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

Примеры

Для начала приведем примеры преобразования, чтобы узнать возможности 1С:

// ***** Вывод чисел: ***** ЧислоПрописью (9876.54 ); // Девять тысяч восемьсот семьдесят шесть 54 ЧислоПрописью (1234.56 , "Л=ru_RU;ДП=ИСТИНА" , "целая, целых, целых, ж, сотая, сотой, сотых, ж, 2" ); // Одна тысяча двести тридцать четыре целых пятьдесят шесть сотых ЧислоПрописью (7432 , "Л=ru_RU;НП=Ложь" , ",0" ); // Семь тысяч четыреста тридцать два // ***** Вывод денежных сумм: ***** ЧислоПрописью (9845.11 , "Л=ru_RU" , ); // Девять тысяч восемьсот сорок пять рублей 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).

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

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

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

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

Код 1C v 8.х
// Пример форматной строки для вывода числа прописью на русском
// языке, с выводом целой и дробной части прописью и выводом
// предмета исчисления.
ФормСтрока = "Л = ru_RU; ДП = Истина";
ПарПредмета="доллар,доллара,долларов,м,цент,цента,центов,м,2";
ПрописьЧисла = ЧислоПрописью(2341.56, ФормСтрока, ПарПредмета);
// Результат вычисления: "Две тысячи триста сорок один доллар пятьдесят шесть центов"

ЧислоПрописью(Число, Форматная строка, Параметры предмета исчисления)

Число - Число, которое необходимо преобразовать в строку прописью.

Форматная строка представляет собой строковое значение, включающее параметры форматирования. Параметры форматирования перечисляются через символ ";" (точка с запятой). Если параметр не указывается, используется значение параметра по умолчанию.
Каждый параметр задается именем параметра, символом "=" (равно) и значением параметра. Значение параметра может указываться в одинарных или двойных кавычках. Это необходимо, если значение параметра содержит символы, используемые в синтаксисе форматной строки.
Л (L) - Код локализации. По умолчанию используется код локализации, установленный в операционной системе. Примеры кодов локализации: ru_RU - Русский (Россия); en_US - Английский (США).
НП (SN) - Включать/не включать название предмета исчисления (Булево), по умолчанию - Истина.
НД (FN) - Включать/не включать название десятичных частей предмета исчисления (Булево), по умолчанию - Истина.
ДП (FS) - Дробную часть выводить прописью/числом (Булево), по умолчанию - Ложь.

Параметры предмета исчисления - Представляет собой строковое значение, определяющее параметры предмета исчисления. Параметры предмета исчисления перечисляются через "," (запятая). Формат строки зависит от кода локализации.
Для русского и белорусского языков (ru_RU, be_BY)
"рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2", где:
"рубль, рубля, рублей, м" - предмет исчисления:
рубль - единственное число именительный падеж,
рубля - единственное число родительный падеж,
рублей - множественное число родительный падеж,



Для украинского языка (uk_UA)
"гривна, гривны, гривен, м, копейка, копейки, копеек, ж, 2", где:
"гривна, гривны, гривен, м" - предмет исчисления:
"гривна - единственное число именительный падеж,
гривны - единственное число родительный падеж,
гривен - множественное число родительный падеж,
м - мужской род (ж - женский род, с - средний род);
"копейка, копейки, копеек, ж" - дробная часть, аналогично предмету исчисления (может отсутствовать);
"2" - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Для польского языка (pl_PL)
z?oty, z?ote, z?otych, m, grosz, grosze, groszy, m, 2
где:
"z?oty, z?ote, z?otych, m " - предмет исчисления (m - мужской род, ? - женский род, ? - средний род, mo - личностный мужской род)
z?oty - единственное число именительный падеж
z?ote - единственное число винительный падеж
z?otych - множественное число винительный падеж
m - мужской род (? - женский род, ? - средний род, mo - личностный мужской род)
"grosz, grosze, groszy, m " - дробная часть (может отсутствовать) (аналогично целой части)
2 - количество разрядов дробной части (может отсутствовать, по-умолчанию равно 2)
Код 1C v 8.х
Пропись = ЧислоПрописью(1832, “L=pl_PL;SN=true;FN=true;FS=true”, “z?oty, z?ote, z?otych, m, grosz, grosze, groszy, m, 2”);

Для английского, финского и казахского языков (en_US, fi_FI, kk_KZ)
"dollar, dollars, cent, cents, 2", где:
"dollar, dollars" - предмет исчисления в единственном и множественном числе;
"cent, cents" - дробная часть в единственном и множественном числе (может отсутствовать);
"2" - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Для немецкого языка (de_DE)
"EURO, EURO, М, Cent, Cent, M, 2", где:
"EURO, EURO, М" - предмет исчисления:
EURO, EURO - предмет исчисления в единственном и множественном числе;
М - мужской род (F - женский род, N - средний род);
"Cent, Cent, M" - дробная часть, аналогично предмету исчисления (может отсутствовать);
"2" - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).

Примеры:
Код 1C v 8.х x = ЧислоПрописью(123456.78,"ДП=Истина" ,"тонна, тонны, тонн, ж, кг., кг., кг., м,3");
//x = "Сто двадцать три тысячи четыреста пятьдесят шесть тонн семьсот восемьдесят кг."

X = ЧислоПрописью(123456.78,",0");
//x = "Сто двадцать три тысячи четыреста пятьдесят семь "

X = ЧислоПрописью(123456.78,",2");
//x = "Сто двадцать три тысячи четыреста пятьдесят шесть 78 "

X = ЧислоПрописью(123456.78,"Л=ru_RU; ДП=Ложь","рубль, рубля, рублей, м, копейка, копейки, копеек, ж");
//x = "Сто двадцать три тысячи четыреста пятьдесят шесть рублей 78 копеек"

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

Информация взята с сайта

Согласно действующему законодательству, платежные документы и финансовые отчеты должны содержать прописанные словами итоговые суммы. В бухгалтерской программе 1с число прописью можно получить с помощью специальной функции в глобальном контексте. Специалист задает нужные параметры в форматной строке и на выходе в документе получает число прописью. Алгоритм действий одинаковый для всех конфигураций 1с Предприятие.

Основные составляющие алгоритма

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

  1. Число – набор цифр, которые следует преобразовать в слова;
  1. Форматная строка – место в программе для задавания необходимых параметров языка. Там же прописываются требования к виду дробной части. Составные элементы указываются через точку с запятой;

Элементы форматной строки:

  • Код локализации, обозначается с помощью буквы Л (L). Его можно изменить самостоятельно, указав необходимый язык;
  • Воспроизводить/ не воспроизводить название единиц измерения (НД = ложь или истина);
  • Воспроизводить/ не воспроизводить дробных частей суммы (ДП = ложь или истина);
  1. Параметры предмета исчисления – это точное описание единиц измерения суммы, которую необходимо написать словами. Например, рубль, доллар, копейка.

Важно. Все элементы схемы следует прописывать максимально точно. Перепроверить правильность вводимых данных можно в синтаксис помощнике.

Как прописать схему вывода числа прописью

Записать 1с число прописью можно по такой схеме: ЧислоПрописью (Число, «Форматная Строка», «Параметры Предмета Исчисления»), где

Число — набор цифр, например 2358,879.

Форматная Строка — название языка и способа отображения числа. На русском это будет выглядеть так: Л = ru_RU. Если дробная часть должна быть прописана словами, указываем ДП = Истина. По умолчанию данный показатель переключен на Ложь.

Параметры Предмета Исчисления — название единицы измерения во всех падежах с указанием рода. Например, рубль мужского рода, копейка – женского. Обозначаются буквами «м» и «ж».

Параметры указываются в кавычках и пишутся через запятую. Для русского языка схема будет выглядеть следующим образом: ЧислоПрописью (2358.879, «Л = ru_RU; ДП = Истина», «рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 3») В данном случае число 3 означает количество знаков после запятой.

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

Как правильно прописать схему

Для того чтобы правильно дать программе задание для выполнения, необходимо сделать следующие шаги:

  1. На первом этапе определить нужную кодировку языка. Наиболее популярны на территории России:
  • Английский — en_US;
  • Русский — Л = ru_RU.
  1. Далее задается вид единиц измерения и дробной части (НД, ДП);
  1. При подготовке документов может возникнуть необходимость вывести сумму в рублях на английском языке или на оборот, написать слова доллар, евро на русском. Для этого прописывается название валюты детально во всех падежах с указанием рода.

Параметры предмета исчисления на разных языках.

Далее 1с сумма прописью на разных языках собирается по стандартной схеме. На выходе получиться документ с итоговой суммой, прописанной словами. Например, необходимо создать финансовый документ в программе 1с для иностранных партнеров, которые говорят на английском. Валюта – евро. Схема будет выглядеть следующим образом: ЧислоПрописью (10 125.67, «Л=en_US; ДП=Истина», «euro,euros,eurocent,eurocents,2»)

Совет. Запоминать данные конструкции нет необходимости. Они все стандартны, меняются только параметры предмета. Поэтому лучше подготовить шаблоны заранее и использовать их в качестве шпаргалки.

Код 1C v 8.х
// Пример форматной строки для вывода числа прописью на русском
// языке, с выводом целой и дробной части прописью и выводом
// предмета исчисления.
ФормСтрока = "Л = ru_RU; ДП = Истина";
ПарПредмета="доллар,доллара,долларов,м,цент,цента,центов,м,2";
ПрописьЧисла = ЧислоПрописью(2341.56, ФормСтрока, ПарПредмета);
// Результат вычисления: "Две тысячи триста сорок один доллар пятьдесят шесть центов"

ЧислоПрописью(Число, Форматная строка, Параметры предмета исчисления)

Число - Число, которое необходимо преобразовать в строку прописью.

Форматная строка представляет собой строковое значение, включающее параметры форматирования. Параметры форматирования перечисляются через символ ";" (точка с запятой). Если параметр не указывается, используется значение параметра по умолчанию.
Каждый параметр задается именем параметра, символом "=" (равно) и значением параметра. Значение параметра может указываться в одинарных или двойных кавычках. Это необходимо, если значение параметра содержит символы, используемые в синтаксисе форматной строки.
Л (L) - Код локализации. По умолчанию используется код локализации, установленный в операционной системе. Примеры кодов локализации: ru_RU - Русский (Россия); en_US - Английский (США).
НП (SN) - Включать/не включать название предмета исчисления (Булево), по умолчанию - Истина.
НД (FN) - Включать/не включать название десятичных частей предмета исчисления (Булево), по умолчанию - Истина.
ДП (FS) - Дробную часть выводить прописью/числом (Булево), по умолчанию - Ложь.

Параметры предмета исчисления - Представляет собой строковое значение, определяющее параметры предмета исчисления. Параметры предмета исчисления перечисляются через "," (запятая). Формат строки зависит от кода локализации.
Для русского и белорусского языков (ru_RU, be_BY)
"рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2", где:
"рубль, рубля, рублей, м" – предмет исчисления:
рубль – единственное число именительный падеж,
рубля – единственное число родительный падеж,
рублей – множественное число родительный падеж,


Для украинского языка (uk_UA)
"гривна, гривны, гривен, м, копейка, копейки, копеек, ж, 2", где:
"гривна, гривны, гривен, м" – предмет исчисления:
"гривна – единственное число именительный падеж,
гривны – единственное число родительный падеж,
гривен – множественное число родительный падеж,
м – мужской род (ж – женский род, с - средний род);
"копейка, копейки, копеек, ж" – дробная часть, аналогично предмету исчисления (может отсутствовать);
"2" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Для польского языка (pl_PL)
z?oty, z?ote, z?otych, m, grosz, grosze, groszy, m, 2
где:
"z?oty, z?ote, z?otych, m " - предмет исчисления (m - мужской род, ? - женский род, ? - средний род, mo – личностный мужской род)
z?oty - единственное число именительный падеж
z?ote - единственное число винительный падеж
z?otych - множественное число винительный падеж
m - мужской род (? - женский род, ? - средний род, mo – личностный мужской род)
"grosz, grosze, groszy, m " - дробная часть (может отсутствовать) (аналогично целой части)
2 - количество разрядов дробной части (может отсутствовать, по-умолчанию равно 2)
Код 1C v 8.х
Пропись = ЧислоПрописью(1832, “L=pl_PL;SN=true;FN=true;FS=true”, “z?oty, z?ote, z?otych, m, grosz, grosze, groszy, m, 2”);

Для английского, финского и казахского языков (en_US, fi_FI, kk_KZ)
"dollar, dollars, cent, cents, 2", где:
"dollar, dollars" – предмет исчисления в единственном и множественном числе;
"cent, cents" – дробная часть в единственном и множественном числе (может отсутствовать);
"2" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Для немецкого языка (de_DE)
"EURO, EURO, М, Cent, Cent, M, 2", где:
"EURO, EURO, М" – предмет исчисления:
EURO, EURO – предмет исчисления в единственном и множественном числе;
М – мужской род (F – женский род, N - средний род);
"Cent, Cent, M" – дробная часть, аналогично предмету исчисления (может отсутствовать);
"2" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).

Примеры:
Код 1C v 8.х x = ЧислоПрописью(123456.78,"ДП=Истина" ,"тонна, тонны, тонн, ж, кг., кг., кг., м,3");
//x = "Сто двадцать три тысячи четыреста пятьдесят шесть тонн семьсот восемьдесят кг."

X = ЧислоПрописью(123456.78,",0");
//x = "Сто двадцать три тысячи четыреста пятьдесят семь "

X = ЧислоПрописью(123456.78,",2");
//x = "Сто двадцать три тысячи четыреста пятьдесят шесть 78 "

X = ЧислоПрописью(123456.78,"Л=ru_RU; ДП=Ложь","рубль, рубля, рублей, м, копейка, копейки, копеек, ж");
//x = "Сто двадцать три тысячи четыреста пятьдесят шесть рублей 78 копеек"

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

ЧислоПрописью(1457.25,"L=en_US","dollar, dollars, cent, cents, 2");
// One thousand four hundreds fifty seven dollars 25 cents.