|   |   | 
| 
 | v7: Тонны и килограммы прописью на украинском | ☑ | ||
|---|---|---|---|---|
| 0
    
        sivsoft 04.06.14✎ 12:47 | 
        Доброго времени суток!
 Перерыл форум нашел несколько тем, но то в одной словарь не выкладывали, в другой чего-то не работает. Попробовал сделать свой speller {"Speller", {"Money", {"Тонна","Тонни","Тонн","кг","кг","кг","F"}}, {"Numbers", {"Одна","Дві","Три","Чотири","П'ять","Шість","Сім","Вісім","Дев'ять","Одна","Дві", "Десять","Одинадцять","Дванадцять","Тринадцять","Чотирнадцять","П'ятнадцять","Шістнадцять","Сімнадцять","Вісімнадцять","Дев'ятнадцять", "Двадцять","Тридцять","Сорок","П'ятдесят","Шістдесят","Сімдесят","Вісімдесят","Дев'яносто", "Сто","Двісті","Триста","Чотириста","П'ятсот","Шістсот","Сімсот","Вісімсот","Дев'ятсот", "Тисяча","Тисячі","Тисяч", "Мільйон","Мільйона","Мільйонів", "Мільярд","Мільярда","Мільярдів", "Трильйон","Трильйона","Трильйонів", "Нуль"}} } Функция глВесПрописью(Сумма) Экспорт Перем Валюта; КоличествоТонн = Цел(Сумма); КоличествоКг = Цел((Сумма - КоличествоТонн)*1000); ИмяФайлаПрописиТонны = "tonnukr.spl"; //ИмяФайлаПрописиКг = "kilo.spl"; Если ФС.СуществуетФайл(КаталогИБ()+ИмяФайлаПрописиТонны) = 0 Тогда Предупреждение("Не найден файл прописи для тонн " + ИмяФайлаПрописиТонны); Возврат ""; Иначе Пропись(КаталогИБ()+ИмяФайлаПрописиТонны); КонецЕсли; СтрокаСуммы = СтрЗаменить(Формат(КоличествоТонн, "ЧПДС")," 00",""); СтрокаСуммы = СтрокаСуммы + " " + КоличествоКг + "кг"; Пропись(""); Возврат СтрокаСуммы; КонецФункции // глВесВТоннахПрописью() В итоге выдает какой-то бред вида: Двадцать кг рублей 0кг Причем Двадцать откуда берет? В словаря то стоит Двадцять на украинском. Люди помогите, плиз, разобраться. | |||
| 1
    
        Яйца 1С 04.06.14✎ 12:49 | 
        (0) Вы уж определитесь: на русском или на американском?     | |||
| 2
    
        sivsoft 04.06.14✎ 13:06 | 
        (1) на украинском, написал же
 а что не так? | |||
| 3
    
        Duke1C 04.06.14✎ 13:09 | 
        попробуй "ЧП" вместо "ЧПДС"     | |||
| 4
    
        osa1C 04.06.14✎ 13:15 | 
        КоличествоТонн = Цел(Сумма);
 где замена 20 тонн на его значение в словаре? | |||
| 5
    
        osa1C 04.06.14✎ 13:23 | 
        СтрокаСуммы = СтрЗаменить(Формат(КоличествоТонн, "ЧПДС")," 00","");
 эта строка вообще даёт ДвацАть прописью, потом ищет в этой строке " 00", и пытается заменить на "" ... само собой не находит и возвращает ДвацАть | |||
| 6
    
        sivsoft 04.06.14✎ 13:40 | 
        (5) А как правильно сделать тогда?     | |||
| 7
    
        sivsoft 04.06.14✎ 13:42 | 
        Я выдрал этот код на одной из веток здесь. Как работают эти прописи не пойму. Точнее я понимаю как стандартно сделать пропись, а вот когда свой файлик(еще и не уверен правильный ли он), то тут вообще плаваю.     | |||
| 8
    
        sivsoft 04.06.14✎ 13:43 | 
        (5)
 Пропись(Файл) вроде же устанавливает мой файлик в качестве шаблона. Или не? | |||
| 9
    
        z80a 04.06.14✎ 13:44 | 
        СтрЗаменить(Сумма, "и", "i") и т.д.     | |||
| 10
    
        osa1C 04.06.14✎ 13:50 | 
        (7) Попробуй для начала точку останова поставить на строке
 Пропись(КаталогИБ()+ИмяФайлаПрописиТонны); и посмотри приходит туда программа или нет ..потом похоже должно быть так: Пропись(КаталогИБ()+ "/" + ИмяФайлаПрописиТонны); | |||
| 11
    
        osa1C 04.06.14✎ 13:51 | 
        * только "\" вот такой слэш     | |||
| 12
    
        sivsoft 04.06.14✎ 13:54 | 
        (10) не слешь там не нужен и так в пути есть
 и да, пропись выполняется | |||
| 13
    
        sivsoft 04.06.14✎ 14:07 | 
        Люди, ну наверняка есть рабочие варианты. Запостите, плиз, сюда спеллер и функцию. Наверняка, многих будет полезно.     | |||
| 14
    
        osa1C 04.06.14✎ 14:28 | 
        (13) терзают смутные сомнения что  
 Типы прописей соответвуют секциям файла SPL: Money Numbers Date DateRange WeekDay http://pro1c7.ru/07/07-07/spelling/ {"Тонна","Тонни","Тонн","кг","кг","кг","F"}}, вот этого не вижу, тебе надо секцию Numbers ввести, а тонны и килограммы уже потом доставлять (т., кг.) | |||
| 15
    
        sivsoft 04.06.14✎ 14:33 | 
        Сделал так SPL-файл
 {"Speller", {"Numbers", {"Тонна","Тонни","Тонн","F"}}, {"Numbers", {"Одна","Дві","Три","Чотири","П'ять","Шість","Сім","Вісім","Дев'ять","Одна","Дві", "Десять","Одинадцять","Дванадцять","Тринадцять","Чотирнадцять","П'ятнадцять","Шістнадцять","Сімнадцять","Вісімнадцять","Дев'ятнадцять", "Двадцять","Тридцять","Сорок","П'ятдесят","Шістдесят","Сімдесят","Вісімдесят","Дев'яносто", "Сто","Двісті","Триста","Чотириста","П'ятсот","Шістсот","Сімсот","Вісімсот","Дев'ятсот", "Тисяча","Тисячі","Тисяч", "Мільйон","Мільйона","Мільйонів", "Мільярд","Мільярда","Мільярдів", "Трильйон","Трильйона","Трильйонів", "Нуль"}} } И вот так функцию: Функция глВесПрописью(Сумма) Экспорт Перем Валюта; КоличествоТонн = Цел(Сумма); КоличествоКг = Цел((Сумма - КоличествоТонн)*1000); ИмяФайлаПрописиТонны = "tonnukr.spl"; //ИмяФайлаПрописиКг = "kilo.spl"; Если ФС.СуществуетФайл(КаталогИБ()+ИмяФайлаПрописиТонны) = 0 Тогда Предупреждение("Не найден файл прописи для тонн " + ИмяФайлаПрописиТонны); Возврат ""; Иначе Пропись(КаталогИБ()+ИмяФайлаПрописиТонны); КонецЕсли; СтрокаСуммы = СтрЗаменить(Формат(КоличествоТонн, "ЧП")," 00",""); СтрокаСуммы = СтрокаСуммы + " " + КоличествоКг + "кг"; Пропись(""); Возврат СтрокаСуммы; КонецФункции // глВесВТоннахПрописью() Выдает на 48 тоннах: Сорок восемь 0кг Где тонны, и почему на русском? В спелере же на украинском. | |||
| 16
    
        osa1C 04.06.14✎ 14:42 | 
        (15) вообще секция должна заканчиваться либо "M" мужской, либо "F" женский род. Я так понимаю, что секция Numbers у тебя в первом случае просто игнорировалась и заменялась по умолчанию, а во втором случае ДВЕ секции Numbers, поэтому берётся за основу вторая, и игнорируюется по той же причине     | |||
| 17
    
        sivsoft 04.06.14✎ 15:07 | 
        (16) Чего-то совсем запустался. Как правильно тогда написать?     | |||
| 18
    
        an-korot 04.06.14✎ 15:25 | 
        (17) да найди ты русский файл да перепиши его, что ты мучаешься, сам выдумываешь ;)     | |||
| 19
    
        sivsoft 04.06.14✎ 15:29 | 
        (18) дык ДАЙТЕ ПРАВИЛЬНЫЙ ФАЙЛ С ТОННАМИ :)     | |||
| 20
    
        sivsoft 04.06.14✎ 15:53 | 
        (18) нет у меня русского файла с тоннами, а только гривни, рубли, евро. Так и попытался заменить. Но оно работает неправильно.     | |||
| 21
    
        vova4321 04.06.14✎ 16:49 | 
        Прочти это
 Масса брутто прописью в ТОРГ-12. Возможно ли это? Масса прописью И возьми то что понравится (без СПЛ) | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |