10(десять)рублей 5(пять)копеек как вывести?
Дня доброго, подскажите пожалуйста как вывести сумму по следующей схеме:
"10(десять)рублей 5(пять)копеек"
Ситуация следующая, нужно в шаблоне печатной формы выводить сумму прописью, так как выше.
Получилось вывести следующим путем 10,5 (десять рублей пять копеек), а как вывести тем что выше не понятно, есть у кого какие соображения или где можно подчерпнуть информацию?
Код, которым получаю прикрепляю, может что в нём поменять?
"10(десять)рублей 5(пять)копеек"
Ситуация следующая, нужно в шаблоне печатной формы выводить сумму прописью, так как выше.
Получилось вывести следующим путем 10,5 (десять рублей пять копеек), а как вывести тем что выше не понятно, есть у кого какие соображения или где можно подчерпнуть информацию?
Код, которым получаю прикрепляю, может что в нём поменять?
ФорматнаяСтрока = "Л = ru_RU; ДП = ИСТИНА; НП=ИСТИНА";
Параметр = "рубль,рубля,рублей,м,копейка,копейки,копеек,ж";
Число = Файл.ВладелецФайла.Сумма;
ЧислоТекстом = ЧислоПрописью(Число,ФорматнаяСтрока,Параметр);
РезультатОбработки = ЧислоТекстом
Найденные решения
(8)
Сумма=45.56;
ФорматнаяСтрока = "Л = ru_RU; ДП = ИСТИНА; НП=ИСТИНА";
Параметр = "рубль,рубля,рублей,м,копейка,копейки,копеек,ж";
_Рубли=Цел(Сумма);
_Копейки=(Сумма-Цел(Сумма))*100;
_КопейкиДробно=Сумма-Цел(Сумма);
_РублиПрописью=ЧислоПрописью(_Рубли,ФорматнаяСтрока,Параметр);
_РублиПрописью=СокрЛП(стрЗаменить(_РублиПрописью," ноль копеек",""));
_РублиПрописью=СокрЛП(_Рубли)+" ("+стрЗаменить(_РублиПрописью," рубл",") рубл");
_КопейкиПрописью=ЧислоПрописью(_КопейкиДробно,ФорматнаяСтрока,Параметр);
_КопейкиПрописью=СокрЛП(стрЗаменить(_КопейкиПрописью,"Ноль рублей",""));
_КопейкиПрописью=СокрЛП(_Копейки)+" ("+стрЗаменить(_КопейкиПрописью," копе",") копе");
Сообщить(_РублиПрописью+" "+_КопейкиПрописью);
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
ФорматнаяСтрока = "Л = ru_RU; ДП = ЛОЖЬ; НП=ИСТИНА";
Параметр = "рубль,рубля,рублей,м,копейка,копейки,копеек,ж";
мЧисло = Файл.ВладелецФайла.Сумма;
Стр = Формат(Цел(мЧисло ),"ЧГ=0") +"("+ЧислоПрописью(Цел(мЧисло ))+") рублей "+Формат((мЧисло - Цел(мЧисло )) * 100,"ЧГ=0") + "("+ЧислоПрописью((мЧисло - Цел(мЧисло )) * 100)+") копеек"
РезультатОбработки = Стр
Показать
(6)
ФорматнаяСтрока = "Л = ru_RU; ДП = ЛОЖЬ; НП=ЛОЖЬ;НД = ЛОЖЬ";
ФорматнаяСтрока2 = "Л = ru_RU; ДП = ЛОЖЬ; НП=ИСТИНА;НД = ЛОЖЬ";
Параметр = "рубль,рубля,рублей,м,копейка,копейки,копеек,ж,0";
Параметр2 = "копейка,копейки,копеек,м,копейка,копейки,копеек,ж,0";
мЧисло = Файл.ВладелецФайла.Сумма;;
СТР2 = ЧислоПрописью(Цел(мЧисло ),ФорматнаяСтрока2,Параметр);
СТР3 = ЧислоПрописью((мЧисло - Цел(мЧисло ))*100,ФорматнаяСтрока2,Параметр2);
Руб = Сред(СТР2,СтрНайти(СТР2," ",НаправлениеПоиска.СКонца));
Коп = Сред(СТР3,СтрНайти(СТР3," ",НаправлениеПоиска.СКонца));
Стр = Формат(Цел(мЧисло ),"ЧГ=0") +"("+ЧислоПрописью(Цел(мЧисло ),ФорматнаяСтрока,Параметр)+")"+Руб+" "+Формат((мЧисло - Цел(мЧисло ))*100,"ЧГ=0")
+ "("+ЧислоПрописью((мЧисло - Цел(мЧисло ))*100,ФорматнаяСтрока,Параметр2)+")"+Коп;
РезультатОбработки = Стр
Показать
Придется комплектовать из нескольких строк. Направление мысли : https://forum.infostart.ru/forum9/topic249119/
А вообще вот:
Функция ЧислоПрописью(ЗначЧисло) Экспорт
Перем Возвр;
Перем ЦелЧасть, ДробЧасть;
Перем Дробная;
Перем Окончание;
Перем ПоследнееСлово;
ЦелЧасть = Цел(ЗначЧисло);
ДробЧасть = Окр(ЗначЧисло - ЦелЧасть, 3);
Если ДробЧасть=Окр(ДробЧасть,0) Тогда
ДробЧасть = 0;
Дробная = "";
ИначеЕсли ДробЧасть = Окр(ДробЧасть, 1) Тогда
ДробЧасть = Окр(ДробЧасть, 1) * 10;
Дробная = "десят";
ИначеЕсли ДробЧасть = Окр(ДробЧасть, 2) Тогда
ДробЧасть = Окр(ДробЧасть, 2) * 100;
Дробная = "сот";
Иначе
ДробЧасть = ДробЧасть * 1000;
Дробная = "тысячн";
КонецЕсли;
Возвр = "";
Возвр = Возвр + ?(ПустоеЗначение(ЦелЧасть) = 1, "Ноль", СокрЛП(Формат(ЦелЧасть, "ЧП")));
Если Дробная <> "" Тогда // есть дробная часть
// теперь займемся окончанием последнего слова целой части
ПоследнееСлово = "";
Окончание = "";
Пока (Возвр <> "") И (Возвр = СокрП(Возвр)) Цикл // последний символ в строке не пробел
ПоследнееСлово = Прав(Возвр, 1) + ПоследнееСлово; // добавляем последнюю букву
Возвр = Лев(Возвр, СтрДлина(Возвр) - 1); // отрезаем последнюю букву
КонецЦикла;
Если Врег(ПоследнееСлово) = "ОДИН" Тогда
// первую букву слова оставляем
ПоследнееСлово = Лев(ПоследнееСлово, 1) + "дна";
Окончание = "ая";
Иначе
Если (Врег(ПоследнееСлово) = "ДВА") Тогда
ПоследнееСлово = Лев(ПоследнееСлово, 1) + "ве";
КонецЕсли;
Окончание = "ых";
КонецЕсли;
Возвр = Возвр + ПоследнееСлово + " цел" + Окончание + " " + НРег(СокрЛП(Формат(ДробЧасть, "ЧП")));
// теперь займемся окончанием последнего слова дробной части
ПоследнееСлово = "";
Окончание = "";
Пока Возвр = СокрП(Возвр) Цикл // последний символ в строке не пробел
ПоследнееСлово = Прав(Возвр, 1) + ПоследнееСлово; // добавляем последнюю букву
Возвр = Лев(Возвр, СтрДлина(Возвр) - 1); // отрезаем последнюю букву
КонецЦикла;
Если Врег(ПоследнееСлово) = "ОДИН" Тогда
// первую букву слова оставляем
ПоследнееСлово = Лев(ПоследнееСлово, 1) + "дна";
Окончание = "ая";
Иначе
Если (Врег(ПоследнееСлово) = "ДВА") Тогда
ПоследнееСлово = Лев(ПоследнееСлово, 1) + "ве";
КонецЕсли;
Окончание = "ых";
КонецЕсли;
Возвр = Возвр + ПоследнееСлово + " " + Дробная + Окончание;
КонецЕсли;
Возврат Возвр;
КонецФункции // ЧислоПрописью()
Показать
(8)
Сумма=45.56;
ФорматнаяСтрока = "Л = ru_RU; ДП = ИСТИНА; НП=ИСТИНА";
Параметр = "рубль,рубля,рублей,м,копейка,копейки,копеек,ж";
_Рубли=Цел(Сумма);
_Копейки=(Сумма-Цел(Сумма))*100;
_КопейкиДробно=Сумма-Цел(Сумма);
_РублиПрописью=ЧислоПрописью(_Рубли,ФорматнаяСтрока,Параметр);
_РублиПрописью=СокрЛП(стрЗаменить(_РублиПрописью," ноль копеек",""));
_РублиПрописью=СокрЛП(_Рубли)+" ("+стрЗаменить(_РублиПрописью," рубл",") рубл");
_КопейкиПрописью=ЧислоПрописью(_КопейкиДробно,ФорматнаяСтрока,Параметр);
_КопейкиПрописью=СокрЛП(стрЗаменить(_КопейкиПрописью,"Ноль рублей",""));
_КопейкиПрописью=СокрЛП(_Копейки)+" ("+стрЗаменить(_КопейкиПрописью," копе",") копе");
Сообщить(_РублиПрописью+" "+_КопейкиПрописью);
Показать Рубли = Цел(Сумма);
Копейки = (Сумма - Рубли)*100;
Рубли = СтрокаСЧислом(";%1 рубль;;%1 рубля;%1 рублей;%1 рубля", Рубли, ВидЧисловогоЗначения.Количественное, "L=ru");
Копейки = ?(Копейки = 0, "00 копеек", СтрокаСЧислом(";%1 копейка;;%1 копейки;%1 копеек;%1 копейки", Формат(Копейки, "ЧН=0"), ВидЧисловогоЗначения.Количественное, "L=ru"));
Возврат Рубли + " " + Копейки;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот