Для формирования количества прописью можно использовать стандартную функцию, расположенную в общем модуле ФормированиеПечатныхФорм:
// Стандартная для данной конфигурации функция форматирования прописи количества
//
// Параметры:
// Количество - число, которое мы хотим форматировать
//
// Возвращаемое значение:
// Отформатированная должным образом строковое представление количества.
//
Функция КоличествоПрописью(Количество, КодЯзыка = "ru") Экспорт
ЦелаяЧасть = Цел(Количество);
ДробнаяЧасть = Окр(Количество - ЦелаяЧасть, 3);
Если ДробнаяЧасть = Окр(ДробнаяЧасть,0) Тогда
ПараметрыПрописи = ", , , , , , , , 0";
ИначеЕсли ДробнаяЧасть = Окр(ДробнаяЧасть, 1) Тогда
ПараметрыПрописи = НСтр("ru='целая, целых, целых, ж, десятая, десятых, десятых, м, 1';uk='ціла ,цілих ,цілих , ж, десята, десятих, десятих, м, 1'",КодЯзыка);
ИначеЕсли ДробнаяЧасть = Окр(ДробнаяЧасть, 2) Тогда
ПараметрыПрописи = НСтр("ru='целая, целых, целых, ж, сотая, сотых, сотых, м, 2';uk='ціла ,цілих ,цілих , ж, сота, сотих, сотих, м, 2'",КодЯзыка);
Иначе
ПараметрыПрописи = НСтр("ru='целая, целых, целых, ж, тысячная, тысячных, тысячных, м, 3';uk='ціла ,цілих ,цілих , ж, тисячна, тисячних, тисячних, м, 3'",КодЯзыка);
КонецЕсли;
Возврат ЧислоПрописью(Количество,"Л="+Локализация.ОпределитьКодЯзыкаДляФормат(КодЯзыка), ПараметрыПрописи);
КонецФункции // КоличествоПрописью()
//
// Параметры:
// Количество - число, которое мы хотим форматировать
//
// Возвращаемое значение:
// Отформатированная должным образом строковое представление количества.
//
Функция КоличествоПрописью(Количество, КодЯзыка = "ru") Экспорт
ЦелаяЧасть = Цел(Количество);
ДробнаяЧасть = Окр(Количество - ЦелаяЧасть, 3);
Если ДробнаяЧасть = Окр(ДробнаяЧасть,0) Тогда
ПараметрыПрописи = ", , , , , , , , 0";
ИначеЕсли ДробнаяЧасть = Окр(ДробнаяЧасть, 1) Тогда
ПараметрыПрописи = НСтр("ru='целая, целых, целых, ж, десятая, десятых, десятых, м, 1';uk='ціла ,цілих ,цілих , ж, десята, десятих, десятих, м, 1'",КодЯзыка);
ИначеЕсли ДробнаяЧасть = Окр(ДробнаяЧасть, 2) Тогда
ПараметрыПрописи = НСтр("ru='целая, целых, целых, ж, сотая, сотых, сотых, м, 2';uk='ціла ,цілих ,цілих , ж, сота, сотих, сотих, м, 2'",КодЯзыка);
Иначе
ПараметрыПрописи = НСтр("ru='целая, целых, целых, ж, тысячная, тысячных, тысячных, м, 3';uk='ціла ,цілих ,цілих , ж, тисячна, тисячних, тисячних, м, 3'",КодЯзыка);
КонецЕсли;
Возврат ЧислоПрописью(Количество,"Л="+Локализация.ОпределитьКодЯзыкаДляФормат(КодЯзыка), ПараметрыПрописи);
КонецФункции // КоличествоПрописью()
ОбластьМакета.Параметры.ВсегоПрописью = ФормированиеПечатныхФорм.КоличествоПрописью(Всего, "uk");
Комментариев нет :
Отправить комментарий