Код 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.
При выводе различных отчетов часто необходимо преобразовать числовое значение в строку прописью. В 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" ); // Триста сорок два телевизораКак мы выяснили, для получения числа прописью используется функция
ЧислоПрописью (< Число >, < ФорматнаяСтрока >, < ПараметрыПредметаИсчисления >)Функция возвращает строковое значение. В качестве входных параметров передаются:
Для русского языка параметры предмета исчисления имеют вид «рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2», где:
В конфигурациях, построенных на , в общем модуле РаботаСКурсамиВалют есть функция
СформироватьСуммуПрописью (СуммаЧислом , Валюта , ВыводитьСуммуБезКопеек = Ложь)Функция служит для преобразования валютных сумм в строку прописью.
Согласно действующему законодательству, платежные документы и финансовые отчеты должны содержать прописанные словами итоговые суммы. В бухгалтерской программе 1с число прописью можно получить с помощью специальной функции в глобальном контексте. Специалист задает нужные параметры в форматной строке и на выходе в документе получает число прописью. Алгоритм действий одинаковый для всех конфигураций 1с Предприятие.
Для того чтоб правильно оформить число прописными буквами, необходимо понимать значение всех составляющих схемы. Основные показатели:
Элементы форматной строки:
Важно. Все элементы схемы следует прописывать максимально точно. Перепроверить правильность вводимых данных можно в синтаксис помощнике.
Записать 1с число прописью можно по такой схеме: ЧислоПрописью (Число, «Форматная Строка», «Параметры Предмета Исчисления»), где
Число — набор цифр, например 2358,879.
Форматная Строка — название языка и способа отображения числа. На русском это будет выглядеть так: Л = ru_RU. Если дробная часть должна быть прописана словами, указываем ДП = Истина. По умолчанию данный показатель переключен на Ложь.
Параметры Предмета Исчисления — название единицы измерения во всех падежах с указанием рода. Например, рубль мужского рода, копейка – женского. Обозначаются буквами «м» и «ж».
Параметры указываются в кавычках и пишутся через запятую. Для русского языка схема будет выглядеть следующим образом: ЧислоПрописью (2358.879, «Л = ru_RU; ДП = Истина», «рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 3») В данном случае число 3 означает количество знаков после запятой.
Этот способ не подходит, если точное количество символов после запятой не известно. Для того чтобы упростить задание, используют представление сумы и валюты. Как правило, в подобных ситуациях принято оставлять две цифры после запятой.
Для того чтобы правильно дать программе задание для выполнения, необходимо сделать следующие шаги:
Параметры предмета исчисления на разных языках.
Далее 1с сумма прописью на разных языках собирается по стандартной схеме. На выходе получиться документ с итоговой суммой, прописанной словами. Например, необходимо создать финансовый документ в программе 1с для иностранных партнеров, которые говорят на английском. Валюта – евро. Схема будет выглядеть следующим образом: ЧислоПрописью (10 125.67, «Л=en_US; ДП=Истина», «euro,euros,eurocent,eurocents,2»)
Совет. Запоминать данные конструкции нет необходимости. Они все стандартны, меняются только параметры предмета. Поэтому лучше подготовить шаблоны заранее и использовать их в качестве шпаргалки.