|
v7: Масса прописью | ☑ | ||
---|---|---|---|---|
0
КонецЦикла
30.10.13
✎
21:55
|
У кого-то есть готовая функция массы прописью?
Чтобы не писать кг и гр поделив число, а нормально забацать: "двадцать килограммов сто семьдесят граммов" |
|||
1
Armando
30.10.13
✎
21:58
|
Так же как сумма прописью не? Тока вместо рублей килограммы, копейки - граммы
|
|||
2
КонецЦикла
30.10.13
✎
21:59
|
воно не так как надо
двадцать киллограммов 170 граммов |
|||
3
EvgeniuXP
30.10.13
✎
22:03
|
170 переведи отдельно в слово, потом замени на 170.
|
|||
4
КонецЦикла
30.10.13
✎
22:06
|
Эх... не прокатила хлява
|
|||
5
DGorgoN
30.10.13
✎
22:14
|
(4) Ты не только хляву. но и кого угодно не прокатим. 1Сники ж, жадные ж..
|
|||
6
Толич
30.10.13
✎
22:17
|
ПараметрыПредметаИсчисления = "килограмм, килограмма, килограммов, м, грамм, грамма, граммов, м, 3";
ФорматнаяСтрока = "Л=ru_RU; ДП=Истина"; Сообщить(ЧислоПрописью(ВыводимоеЧисло, ФорматнаяСтрока, ПараметрыПредметаИсчисления)); Строковое представление числа - как это делается? |
|||
7
Armando
30.10.13
✎
22:24
|
(6) семерка же
|
|||
8
DGorgoN
30.10.13
✎
22:26
|
(7) Можно 8-ку вызывать и в ней форматить!
|
|||
9
Толич
30.10.13
✎
22:27
|
Функция ЧислоПрописью(ЗначЧисло,ДП=1)
Перем Возвр; Перем ЦелЧасть, ДробЧасть; Перем Дробная; Перем Окончание; Перем ПоследнееСлово; ЦелЧасть = Цел(ЗначЧисло); ДробЧасть = Окр(ЗначЧисло - ЦелЧасть,4); Возвр = ""; Возвр = Возвр + ?(ПустоеЗначение(ЦелЧасть) = 1, "Ноль", СокрЛП(Формат(ЦелЧасть, "ЧП"))); Если ДробЧасть <> 0 Тогда // есть дробная часть Если ДробЧасть=Окр(ДробЧасть,0) Тогда ДробЧасть = 0; Дробная = ""; ИначеЕсли ДробЧасть = Окр(ДробЧасть, 1) Тогда ДробЧасть = Окр(ДробЧасть, 1) * 10; Дробная = "десят"; ИначеЕсли ДробЧасть = Окр(ДробЧасть, 2) Тогда ДробЧасть = Окр(ДробЧасть, 2) * 100; Дробная = "сот"; ИначеЕсли ДробЧасть = Окр(ДробЧасть, 3) Тогда ДробЧасть = ДробЧасть * 1000; Дробная = "тысячн"; Иначе ДробЧасть = ДробЧасть * 10000; Дробная = "десятитысячн"; КонецЕсли; // теперь займемся окончанием последнего слова целой части ПоследнееСлово = ""; Окончание = ""; Пока (Возвр <> "") И (Возвр = СокрП(Возвр)) Цикл // последний символ в строке не пробел ПоследнееСлово = Прав(Возвр, 1) + ПоследнееСлово; // добавляем последнюю букву Возвр = Лев(Возвр, СтрДлина(Возвр) - 1); // отрезаем последнюю букву КонецЦикла; Если Врег(ПоследнееСлово) = "ОДИН" Тогда // первую букву слова оставляем ПоследнееСлово = Лев(ПоследнееСлово, 1) + "дна"; Окончание = "ая"; Иначе Если (Врег(ПоследнееСлово) = "ДВА") Тогда ПоследнееСлово = Лев(ПоследнееСлово, 1) + "ве"; КонецЕсли; Окончание = "ых"; КонецЕсли; Если ДП<>0 Тогда Возвр = Возвр + ПоследнееСлово + " цел" + Окончание + " " + НРег(СокрЛП(Формат(ДробЧасть, "ЧП"))); // теперь займемся окончанием последнего слова дробной части ПоследнееСлово = ""; Окончание = ""; Пока Возвр = СокрП(Возвр) Цикл // последний символ в строке не пробел ПоследнееСлово = Прав(Возвр, 1) + ПоследнееСлово; // добавляем последнюю букву Возвр = Лев(Возвр, СтрДлина(Возвр) - 1); // отрезаем последнюю букву КонецЦикла; Если Врег(ПоследнееСлово) = "ОДИН" Тогда // первую букву слова оставляем ПоследнееСлово = Лев(ПоследнееСлово, 1) + "дна"; Окончание = "ая"; Иначе Если (Врег(ПоследнееСлово) = "ДВА") Тогда ПоследнееСлово = Лев(ПоследнееСлово, 1) + "ве"; КонецЕсли; Окончание = "ых"; КонецЕсли; Возвр = Возвр + ПоследнееСлово + " " + Дробная + Окончание; Иначе Возвр = Возвр + ПоследнееСлово + " цел" + Окончание + " " + СокрЛП(Формат(ДробЧасть,"Ч 18.0")); // теперь займемся окончанием последнего числа ПоследнееСлово = Прав(Возвр,1); Окончание = ""; Если ПоследнееСлово = "1" Тогда Окончание = "ая"; Иначе Окончание = "ых"; КонецЕсли; Возвр = Возвр + " " + Дробная + Окончание; КонецЕсли; КонецЕсли; Возврат Возвр; КонецФункции // ЧислоПрописью() Масса брутто прописью в ТОРГ-12. Возможно ли это? Скоро буду как телепатБот. =) |
|||
10
Сияющий Асинхраль
30.10.13
✎
23:03
|
(0) Да не надо здесь ничего писать. Создай файл прописи для килограмм-грамм и все. Чтобы посмотреть на подобный файл, зайди в каталог тиса, там файл usd.* (расширение не помню). По аналогии сотвори то что надо...
|
|||
11
КонецЦикла
30.10.13
✎
23:06
|
(9) Видел это поиском, но т.к. не увидел килограммов и изумило кол-во текста - поспешил закрыть
|
|||
12
КонецЦикла
30.10.13
✎
23:07
|
(10) да, надо 2 файла создать и не ипать моск
|
|||
13
КонецЦикла
30.10.13
✎
23:07
|
Пока не добрался еще. Знаю что просто, но временная жаба дущит :)
|
|||
14
Сияющий Асинхраль
30.10.13
✎
23:09
|
(11) для варианта (10) нужно иметь файл прописи и четыре строки кода для его использования
|
|||
15
КонецЦикла
30.10.13
✎
23:46
|
(14) вот именно
|
|||
16
Ненавижу 1С
гуру
30.10.13
✎
23:56
|
(15) тебе впадлу добавить?
|
|||
17
Злопчинский
31.10.13
✎
01:34
|
КЦ, ты мну поразил... я такую хрень лет 10 назад пришпандоривал.. сбацал файл прописи и все... граммы выделял отдельно потом кг заменял на гр
|
|||
18
zak555
31.10.13
✎
09:53
|
(17) файл прописи использовать необязательно, достаточно сформировать СЗ
|
|||
19
КонецЦикла
31.10.13
✎
09:55
|
(17) Привет, не ипи моск плиз
Я еще не добрался до этого |
|||
20
Ёпрст
31.10.13
✎
09:57
|
(0) возьми на сайте Рупора.
|
|||
21
Ёпрст
31.10.13
✎
10:03
|
http://zalil.ru/34791603
модернизированная Uho с кубани |
|||
22
КонецЦикла
31.10.13
✎
10:59
|
(21) Спасибо, посморим
|
|||
23
пипец
31.10.13
✎
11:15
|
мдааа , еще на 6.0 все работало
|
|||
24
КонецЦикла
31.10.13
✎
11:35
|
(21) Это полный улет, спасипки
(23) Так-с... |
|||
25
zak555
31.10.13
✎
12:42
|
(21) надо был весь исходный код выложить
??????? ?????????????(??,???1,???2,???3,???) Speller=?????????????("??????????????"); Money=?????????????("??????????????"); Money.??????????????????????(""""+???1+""","""+???2+""","""+???3+""","""","""","""","""+?(???=1,"?","?")+""""); Speller.????????????????(Money,"Money"); ???????(Speller); ??? = ??????(???(??),"????"); ??? = ???(???,????????(???)-2); ??????? ???; ???????????? ????????? ??() ???????????=??????(??????(?,"?15."+??????)); ?????=???(???????????); ??????????=?????(????(""+???????????+".0",?????(""+???????????+".0",".")+1)); ????????(??????(?((???????????????????=0) ? (?????=0),"",?????????????(?????,??????(???11),??????(???12),??????(???13),???1)) +?((????????????????????????=0) ? (??????????=0) ,""," "+????(?????????????(??????????,??????(???21),??????(???22),??????(???23),???2))))); ?????????????? ?=1234.56789; ???11="?????";???12="?????";???13="????"; ???21="?????????";???22="??????????";???23="???????????"; ???1=2;???2=1; ??????=3; ????????????????????????=1; ???????????????????=1 |
|||
26
zak555
31.10.13
✎
12:42
|
//// за основу взята обработка avb:
//// //// Alexey Bazhitov aka avb //// Moscow, october 2003 //// mailto: [email protected] //// //// от исходной обработки осталась форма, //// алгоритм написан заново by Uho, [email protected] Функция ЧислоПрописью(зн,стр1,стр2,стр3,пол) Speller=СоздатьОбъект("СписокЗначений"); Money=СоздатьОбъект("СписокЗначений"); Money.ИзСтрокиСРазделителями(""""+стр1+""","""+стр2+""","""+стр3+""","""","""","""","""+?(пол=1,"М","Ж")+""""); Speller.ДобавитьЗначение(Money,"Money"); Пропись(Speller); рез = Формат(Цел(зн),"ЧПДС"); рез = Лев(рез,СтрДлина(рез)-2); Возврат рез; КонецФункции Процедура ОК() Округленное=СокрЛП(Формат(Ч,"Ч15."+Округл)); Целые=Цел(Округленное); Десятичные=Число(Сред(""+Округленное+".0",Найти(""+Округленное+".0",".")+1)); Сообщить(СокрЛП(?((ПоказыватьЦелыйНуль=0) И (Целые=0),"",ЧислоПрописью(Целые,СокрЛП(стр11),СокрЛП(стр12),СокрЛП(стр13),пол1)) +?((ПоказыватьДесятичныйНуль=0) И (Десятичные=0) ,""," "+Нрег(ЧислоПрописью(Десятичные,СокрЛП(стр21),СокрЛП(стр22),СокрЛП(стр23),пол2))))); КонецПроцедуры ч=1234.56789; стр11="тонна";стр12="тонны";стр13="тонн"; стр21="килограмм";стр22="килограмма";стр23="килограммов"; пол1=2;пол2=1; округл=3; ПоказыватьДесятичныйНуль=1; ПоказыватьЦелыйНуль=1 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |