пятница, 17 января 2014 г.

Количество прописью

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

// Стандартная для данной конфигурации функция форматирования прописи количества
//
// Параметры:
//  Количество - число, которое мы хотим форматировать
//
// Возвращаемое значение:
//  Отформатированная должным образом строковое представление количества.
//
Функция КоличествоПрописью(Количество, КодЯзыка = "ru") Экспорт

   
ЦелаяЧасть   = Цел(Количество);
   
ДробнаяЧасть = Окр(Количество - ЦелаяЧасть, 3);

    Если
ДробнаяЧасть = Окр(ДробнаяЧасть,0) Тогда
       
ПараметрыПрописи = ", , , , , , , , 0";
    ИначеЕсли
ДробнаяЧасть = Окр(ДробнаяЧасть, 1) Тогда
       
ПараметрыПрописи = НСтр("ru='целая, целых, целых, ж, десятая, десятых, десятых, м, 1';uk='ціла ,цілих ,цілих , ж, десята, десятих, десятих, м, 1'",КодЯзыка);
    ИначеЕсли
ДробнаяЧасть = Окр(ДробнаяЧасть, 2) Тогда
       
ПараметрыПрописи = НСтр("ru='целая, целых, целых, ж, сотая, сотых, сотых, м, 2';uk='ціла ,цілих ,цілих , ж, сота, сотих, сотих, м, 2'",КодЯзыка);
    Иначе
       
ПараметрыПрописи = НСтр("ru='целая, целых, целых, ж, тысячная, тысячных, тысячных, м, 3';uk='ціла ,цілих ,цілих , ж, тисячна, тисячних, тисячних, м, 3'",КодЯзыка);
    КонецЕсли;

    Возврат
ЧислоПрописью(Количество,"Л="+Локализация.ОпределитьКодЯзыкаДляФормат(КодЯзыка), ПараметрыПрописи);

КонецФункции
// КоличествоПрописью()

Пример вызова функции:
ОбластьМакета.Параметры.ВсегоПрописью = ФормированиеПечатныхФорм.КоличествоПрописью(Всего, "uk");


Добавить комментарий

Комментариев нет :

Отправить комментарий