Имя: Пароль:
1C
1C 7.7
v7: Печать кг и гр прописью
,
0 Belarus
 
08.09.16
12:54
как напечатать 27.4 прописью  - двадцать семь кг. четыре гр. ?
1 Belarus
 
08.09.16
12:55
1с 7.7
2 vicof
 
08.09.16
13:02
Напиши свой парсер, с блэкджеком и шлюхами
3 Метранпаж
 
08.09.16
13:03
Пропись()
4 vicof
 
08.09.16
13:03
А ещё можно всегда в кг выводить
5 vtolga
 
08.09.16
13:09
Напиши 27 рублей 40 копеек и замени "рублей" на кг , а "копеек" на "гр." :)
6 Slypower
 
08.09.16
13:18
а потом при печати ТТН будет писать: сто рублей 00 грамм
7 LazyStranger
 
08.09.16
13:21
вообще-то 27.4 кг - это 27 кг четыреста грамм, а не 4 :)
8 zak555
 
08.09.16
13:21
9 vtolga
 
08.09.16
13:22
(6) это с какого перепугу? менять нужно только там, где надо.
А еще можно, например, завести валюту ("килотонны, например"), а для нее создать файл прописи.
http://buh.ru/forum/forum18376/topic1955/
10 Fish
 
08.09.16
13:23
(5) 0,4 - это 40 копеек. Но в для кг - это 400, а не 40 грамм.
11 vtolga
 
08.09.16
13:23
(7) это да, воообще-то с заменой -шутка была. Но валюту можно.
12 LazyStranger
 
08.09.16
13:24
программиста позвать предлагали? работы минут на 15
13 LazyStranger
 
08.09.16
13:25
(11) с валютой не прокатит - там же не сотые доли после запятой нужны, а тысячные (см 10)
14 Slypower
 
08.09.16
13:27
Вот наша фунцкция
Функция ПрописьСДробью(числ) // возвращает прописью дробное число
Др=числ-Цел(числ); //выделили дробную часть
    ДлинаДр=СтрДлина(др); //определили длину строки дробной части    
                
    н=0; //количество нулей в конце дробной части
    Для й=1 По ДлинаДр Цикл
        Если сред(др,ДлинаДр+й-1,1)="0" Тогда
            н=н+1;
        КонецЕсли;
    КонецЦикла;                                  
    
    др2=Лев(др,ДлинаДр-н); //получили дробную часть без нулей
    др2=Число(Др2);
    ДлинаДрНаст=СтрДлина(др2)-2; //получили реальное количество цифр дробной части (без нуля и точки)
    
    стр="";
    Если Цел(числ)=0 Тогда //значит ноль целых
        Если ДлинаДрНаст=-1 Тогда
            стр=стр+"Ноль";
        Иначе
            стр=стр+"Ноль целых";
        КонецЕсли;
    Иначе
        Если ДлинаДрНаст=-1 Тогда //значит дробной части нет
            стр=стр+Формат(Цел(числ),"ЧП");
        Иначе
            Пропись("tsel.spl");
            стр=стр+Формат(Цел(числ),"ЧПД"); //пропись целой части
        КонецЕсли;
    КонецЕсли;
    
    Если ДлинаДрНаст=1 Тогда //десятые
        ДрЦел=Др2*10;                  
        Пропись("des.spl");
        стр=стр+", "+Нрег(Формат(ДрЦел,"ЧПД"));
    ИначеЕсли ДлинаДрНаст=2 Тогда //сотые
        ДрЦел=Др2*100;
        Пропись("sot.spl");
        стр=стр+", "+Нрег(Формат(ДрЦел,"ЧПД"));
    ИначеЕсли ДлинаДрНаст=3 Тогда //тысячные
        ДрЦел=Др2*1000;
        Пропись("tys.spl");
        стр=стр+", "+Нрег(Формат(ДрЦел,"ЧПД"));
        //больше едва ли понадобится, но при желании несложно по образу и подобию
        //создать еще (главное сделать файлы прописей с соответствующими долями)
    КонецЕсли;
    //Пропись("");
    Пропись(Валюта.ИмяФайлаПрописи); //тут выводим, чтобы не выводило в сумму для ТТН сотых, сотые, вместо коппек
    //Сообщить(стр);                  
    Возврат(стр);
    
КонецФункции //ПрописьСДробью(числ)

только тут уже нужный файлы spl для килограмм, грамм.
Судя по нику, это для Беларуси. После деноминации в ТТН нужно писать Белорусских рублей. НО поступило инфа, не уже не нужно. В итоге, хер знает, нужно или нет. Но данная функция рабочая
15 zak555
 
08.09.16
13:37
какие все тугие

используйте универсальную обработку из 8
16 aka AMIGO
 
08.09.16
13:38
(15) и еще туже :)
Это 7.7, 8-ки может у ТС и не быть
17 LazyStranger
 
08.09.16
13:42
офигеть, функцию из 3 строчек целый час обсуждаете, с отладкой минут 5 на написание ушло:

Функция КгПрописью(ТекЧисло)
    КолКг = Цел(ТекЧисло);
    КолГр = Цел((ТекЧисло-КолКг)*1000);
    Рез = Нрег(Формат(КолКг,"ЧП"))+" кг. "+Нрег(Формат(КолГр,"ЧП"))+" гр.";
    Возврат рез;
КонецФункции
18 zak555
 
08.09.16
13:42
(16) это ссылка на обработку 77
19 Смотрящий
 
08.09.16
13:46
(17) Из 4х !
20 aka AMIGO
 
08.09.16
14:09
(18) дошло, боярин :)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс