Имя: Пароль:
1C
1C 7.7
v7: Вывести массу прописью
,
0 work92
 
12.05.15
12:03
Может кто подскажет как сделать чтобы масса 2.5 кг вывелась прописью Ноль тон два килограмма  пятьсот грамм
1 zak555
 
12.05.15
12:06
2 1Сергей
 
12.05.15
12:07
см. функцию Пропись + файлы *.SPL
3 palpetrovich
 
12.05.15
12:07
дык,
Функция глВернутьМассуСтрокой(Масса) Экспорт
...
4 palpetrovich
 
12.05.15
12:08
(1) че-т не открывается avb-шный сайт, сто лет туда не заходил :)
5 work92
 
12.05.15
12:09
Может есть полная функция с кодом
6 zak555
 
12.05.15
12:10
(5) скачай из (1)
7 work92
 
12.05.15
12:12
1Сергей CП
8 Mikhail Volkov
 
12.05.15
12:24
(3) Из какой конфигурации глВернутьМассуСтрокой(Масса)? В ТиС нет такой, для себя писал:
Функция ВесПрописью(Вес) Экспорт
    
    // установим пропись по умолчанию
    Пропись("");
    
    Тонны = Цел(Вес/1000);
    Если Тонны = 0 Тогда
        ТонныПрописью = "";
    ИначеЕсли Тонны = 1 Тогда
        ТонныПрописью = "Одна тонна";
    ИначеЕсли Тонны = 2 Тогда
        ТонныПрописью = "Две тонны";
    ИначеЕсли Тонны < 5 Тогда
        ТонныПрописью = Формат(Тонны, "ЧП") + " тонны";
    Иначе
        ТонныПрописью = Формат(Тонны, "ЧП") + " тонн";
    КонецЕсли;
    
    Кг = Цел(Вес) - Тонны*1000;
    КгПрописью = Формат(Кг, "ЧП") + " килограмм" + ?(Найти("234", Прав(Кг, 1)) = 0, "", "а");
    ВесПрописью = ?(Тонны = 0, КгПрописью, ТонныПрописью + " " + Нрег(КгПрописью));

    Возврат ВесПрописью;
    
КонецФункции // ВесПрописью()
9 palpetrovich
 
12.05.15
12:25
(8) из любой, только в (3) дописать недостающее надо :)
10 фобка
 
12.05.15
12:28
(8) 22 тонны? И что за Пропись("")?
11 1Сергей
 
12.05.15
12:32
(10) в СП всё написано
12 Mikhail Volkov
 
12.05.15
17:40
(10) Не знаю, хотел сделать по аналогии сделать с
Функция глСуммаПрописью(Сумма, Валюта) Экспорт
    
    Если Валюта <> глРубли Тогда
        
        Если ФС.СуществуетФайл(КаталогИБ() + Валюта.ИмяФайлаПрописи) = 1 Тогда
            Пропись(Валюта.ИмяФайлаПрописи);
        Иначе
            Сообщить("Для валюты " + Валюта + " отсутствует файл прописей." +
                     РазделительСтрок +
                     "Сумма прописью сформирована в национальной валюте.");
        КонецЕсли;
        
    КонецЕсли;

    СтрокаСуммы    = Формат(Сумма, "ЧПДС");
    
    // установим пропись по умолчанию
    Пропись("");
    Возврат СтрокаСуммы;
    
КонецФункции // глСуммаПрописью()
13 Cap_1977
 
12.05.15
18:45
(12) Непрокатывает с величинами у которых дробная часть более 2х символов.
530 грамм выведет как 53 грамма.
14 Лалым
 
14.05.15
21:05
(13) Если определить сразу граммы как число 530 то прокатит
15 Лалым
 
15.05.15
09:10
Попробовал реализовать это на файлах прописи,
беру любой стандартный в денежных единицах пишу нужное измерение,  создаю три файла для тон, килограмм и грамм,
нарисовал для пробы обработку и о чудо,  тонны ну никак не хочет подтягивать из файла прописи,  ну  первый запуск использует по умолчанию а затем  использует  последнюю установленную пропись то есть граммы
Здесь весь пакет с прописями - https://yadi.sk/d/7-mZ_MmVge5Vy
код функции
Функция ВесПропись()
    //Определяем отдельно тонны, килограммы и граммы
    Тонны = Цел(Вес/1000);
    Килограммы = Цел(Вес) - Тонны*1000;
    Граммы = (Вес - Килограммы - Тонны*1000)*1000;
    //Получаем отдельно строковые  значения из файлов прописи
    Пропись(КаталогИБ()+"/veston.spl");                    
    ТоннПрописью = Формат(Тонны,"ЧПД");  
    Пропись(КаталогИБ()+"/kilogram.spl");
    КилограмПрописью = Формат(Килограммы,"ЧПД");
    Пропись(КаталогИБ()+"/gram.spl");
    ГрамПрописью = Формат(Граммы,"ЧПД");
    ВесПропись = ?(Тонны>0,ТоннПрописью,"") + " " + ?(Килограммы>0,КилограмПрописью,"") + " " +?(Граммы>0," и "+ГрамПрописью,"");
    Возврат(ВесПропись);
КонецФункции;
16 Лалым
 
15.05.15
09:20
Нашел в чем была ошибка в фалй veston была нарушена как бы структура, не стояли кавычки  перед "тонны"
Если кому интересно то исправьте файл который в архиве