По теме из базы знаний
Найденные решения
(13) Немного не практично, но вроде подойдет.
ПарамПредмета = "рубль, рубля, рублей, м, копейка, копейки, копеек, ж,2";
ФормСтрока = "Л=ru_RU; ДП=Ложь";
СуммаПрописью = ЧислоПрописью(Реквизит2,ФормСтрока, ПарамПредмета);
СуммаПрописью = СтрЗаменить(СуммаПрописью," ",Символы.ПС);
Результат = Строка(Реквизит2) +" "+ ?(СтрЧислоСтрок(СуммаПрописью) > 3,
СтрПолучитьСтроку(СуммаПрописью,СтрЧислоСтрок(СуммаПрописью) -2) + " "+
СтрПолучитьСтроку(СуммаПрописью,СтрЧислоСтрок(СуммаПрописью) -1) + " "+
СтрПолучитьСтроку(СуммаПрописью,СтрЧислоСтрок(СуммаПрописью)), "");
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)https://wonderland.v8.1c.ru/blog/sklonenie-slovosochetaniy-s-chislitelnymi/?ysclid=lcheixijry191475329
ПолучитьСклоненияСтрокиПоЧислу()
ПолучитьСклоненияСтрокиПоЧислу()
(7)
Заодно уж процитирую и и решение, на всякий случай:
там нужно не прописью
А вы прочитали ТЗ? Непохоже:
нужно получить из числа строку вида 2500 рублей, или 252 рубля. и т.п.
Т.е. не всю сумму прописью, а число числом, а валюта с нужным склонением.
Т.е. не всю сумму прописью, а число числом, а валюта с нужным склонением.
Заодно уж процитирую и и решение, на всякий случай:
извратился так
Валюта = СокрЛП(СтрЗаменить(СуммаПрописью, ЧислоПрописью(Сумма,ФормСтрока, ",,,,,,,,0" ),""));
Валюта = СокрЛП(СтрЗаменить(СуммаПрописью, ЧислоПрописью(Сумма,ФормСтрока, ",,,,,,,,0" ),""));
ПолучитьСклоненияСтрокиПоЧислу()
https://wonderland.v8.1c.ru/blog/sklonenie-slovosochetaniy-s-chislitelnymi/
(8)
сделал так и всё равно выводит с прописью
ПарамПредмета = "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2";
ФормСтрока = "Л=ru_RU; ДП=Ложь";
СуммаПрописью = ЧислоПрописью(Выборка1.Результат,ФормСтрока, ПарамПредмета);
ЧислоРуу = СокрЛП(СтрЗаменить(СуммаПрописью, ЧислоПрописью(Выборка1.Результат,ФормСтрока, ",,,,,,,,0" ),""));
сделал так и всё равно выводит с прописью
(13) Немного не практично, но вроде подойдет.
ПарамПредмета = "рубль, рубля, рублей, м, копейка, копейки, копеек, ж,2";
ФормСтрока = "Л=ru_RU; ДП=Ложь";
СуммаПрописью = ЧислоПрописью(Реквизит2,ФормСтрока, ПарамПредмета);
СуммаПрописью = СтрЗаменить(СуммаПрописью," ",Символы.ПС);
Результат = Строка(Реквизит2) +" "+ ?(СтрЧислоСтрок(СуммаПрописью) > 3,
СтрПолучитьСтроку(СуммаПрописью,СтрЧислоСтрок(СуммаПрописью) -2) + " "+
СтрПолучитьСтроку(СуммаПрописью,СтрЧислоСтрок(СуммаПрописью) -1) + " "+
СтрПолучитьСтроку(СуммаПрописью,СтрЧислоСтрок(СуммаПрописью)), "");
Показать
(17) Или так, если без копеек:
ПарамПредмета = "рубль, рубля, рублей, м,,,,,0";
ФормСтрока = "Л=ru_RU; ДП=Ложь";
СуммаПрописью = ЧислоПрописью(Реквизит2,ФормСтрока, ПарамПредмета);
СуммаПрописью = СтрЗаменить(СуммаПрописью," ",Символы.ПС);
Результат = Формат(Реквизит2,"ЧГ=3,0; ЧФ='Ч '") + СтрПолучитьСтроку(СуммаПрописью,СтрЧислоСтрок(СуммаПрописью));
(13)
Конечно, тоже извращение... но вполне себе эффективное. И притом - с копейками! :-)
сделал так и всё равно выводит с прописью
А если так:
ПарамПредмета = "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2";
ФормСтрока = "Л=ru_RU; ДП=Ложь";
СуммаПрописью = ЧислоПрописью(Выборка1.Результат, ФормСтрока, ПарамПредмета);
ЧислоРуу = Строка(Цел(Выборка1.Результат)) + Сред(СуммаПрописью, Найти(СуммаПрописью, " рубл"));
Конечно, тоже извращение... но вполне себе эффективное. И притом - с копейками! :-)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот