Имя: Пароль:
1C
1С v8
Как из 120 получить 120 ( сто двадцать ) рублей ?
0 Sj
 
12.02.12
21:49
Доброе время суток!

  Подскажите, плиз, простой способ, если есть, конечно, получения из числа -> Число ( число прописью ) рублей.

  Я вот это накропал:
Рез = Формат(Что, "ЧЦ=15; ЧДЦ=2; ЧРД=-; ЧН=0-00; ЧГ=") + " (" + РаботаСКурсамиВалют.СформироватьСуммуПрописью(Что, Валюта) +") рублей"
 Но получается, что рубли и в скобках и за ними.
1 zak555
 
12.02.12
21:52
файл прописей
2 Sj
 
12.02.12
22:05
счас что-то подумал, можно просто вставить ) перед руб
3 Anton_2011
 
12.02.12
22:07
До таго как число "сговняет" пропись() - не выципить что ль переменной значение?
4 zak555
 
12.02.12
22:13
просто : последего пробелом

ПоследнийПробел
ДенежкиПрописью

Результат = "" + Числ + " ( " + Лев(ДенежкиПрописью, ПоследнийПробел + ")" + Сред(ДенежкиПрописью, ПоследнийПробел)
5 Anton_2011
 
12.02.12
22:16
Что произошло с ДенежкиПрописью? Реально поймать а?
6 Sj
 
12.02.12
22:38
Наверное вот так все же:
Рез = Формат(Что, "ЧЦ=15; ЧДЦ=2; ЧРД=-; ЧН=0-00; ЧГ=") + " (" + СтрЗаменить(РаботаСКурсамиВалют.СформироватьСуммуПрописью(Что, Валюта), " руб", ") руб");
7 zak555
 
12.02.12
23:30
я в шоке :


Функция СформироватьСуммуПрописью(Сумма, Валюта) Экспорт

   Если Валюта.ПараметрыПрописиНаРусском = "" Тогда
       Возврат ОбщегоНазначения.ФорматСумм(Сумма);
   Иначе
       Возврат ЧислоПрописью(Сумма, ,Валюта.ПараметрыПрописиНаРусском);
   КонецЕсли;

КонецФункции
8 Sj
 
12.02.12
23:34
Ред. 11

Функция СформироватьСуммуПрописью(Знач Сумма, Валюта, ВыводитьСуммуБезКопеек = Ложь) Экспорт
   
   Результат         = ?(Сумма < 0, -Сумма, Сумма);
   ЦелаяЧасть        = Цел(Результат);
   ФорматСтрока      = "Л=ru_RU;ДП=Ложь";
   ПараметрыПредмета = ОбщегоНазначения.ПолучитьЗначенияРеквизитов(Валюта, "ПараметрыПрописиНаРусском");
   
   Если Результат = ЦелаяЧасть Тогда
       
       Если ВыводитьСуммуБезКопеек Тогда
           
           Результат = ЧислоПрописью(Результат, ФорматСтрока, ПараметрыПредмета.ПараметрыПрописиНаРусском);
           Результат = Лев(Результат, Найти(Результат, "0") - 1);
           
       Иначе
           
           Результат = ЧислоПрописью(Результат, ФорматСтрока, ПараметрыПредмета.ПараметрыПрописиНаРусском);
           
       КонецЕсли;
       
   Иначе
       
       Результат = ЧислоПрописью(Результат, ФорматСтрока, ПараметрыПредмета.ПараметрыПрописиНаРусском);
       
   КонецЕсли;
   
   Возврат Результат;
   
КонецФункции
(c) 1C
9 zak555
 
13.02.12
00:05
(8) ужас а не функция
10 zak555
 
13.02.12
00:10
им реально за количество строк платят (!)
самая главная красота - это простота :


Функция СформироватьСуммуПрописью(Знач Сумма, Валюта, ВыводитьСуммуБезКопеек = Ложь) Экспорт

Результат         = ?(Сумма < 0, -Сумма, Сумма);
ФорматСтрока      = "Л=ru_RU;ДП=Ложь";
ПараметрыПредмета = ОбщегоНазначения.ПолучитьЗначенияРеквизитов(Валюта, "ПараметрыПрописиНаРусском");
Возврат ЧислоПрописью(?( ВыводитьСуммуБезКопеек ,Цел(Результат) ,Результат ), ФорматСтрока, ПараметрыПредмета.ПараметрыПрописиНаРусском);

КонецФункции
11 zak555
 
13.02.12
00:10
хотя ФорматСтрока и не нужен
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс