|
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. Возможно ли это? Масса прописью И возьми то что понравится (без СПЛ) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |