Имя: Пароль:
1C
1С v8
v8: 278,29=278руб.29к.
0 Rizhij_Nikitos
 
30.08.11
09:01
Есть ли подобная функция в 1С, знаю что сумма прописью существует, мб и такая, что я хочу, чтобы опиралась на используемую валюту.
1 Alpen906
 
30.08.11
09:04
Напиши сам
2 Rizhij_Nikitos
 
30.08.11
09:06
Эта мысль посетила, но зачем изобретать велосипед? Я так пробывал с суммой пропись, писал полчаса, пока случайно не забил в поиске суммаПрописью, и все решилось за пару минут. А тута я ожидаю, что типо такого, СуммаВалютой(Число,ВидВалюты), и выдаст резульатт 278,29=278руб.29к.
3 Азат
 
30.08.11
09:09
Сум = 278.29;

_Прописью = "" + Цел(Сум) + "руб." + 100 *(Сум - Цел(Сум)) + "коп."
4 dva1c
 
30.08.11
09:10
типа так:

// Функция формирует представление суммы прописью в указанной валюте
//
// Возвращаемое значение:
//  Строка - сумма прописью
//
Функция СформироватьСуммуПрописью(Сумма, Валюта) Экспорт

   Если Валюта.ПараметрыПрописиНаРусском = "" Тогда
       Возврат ФорматСумм(Сумма);
   Иначе
       Возврат ЧислоПрописью(Сумма, "L=ru_RU", Валюта.ПараметрыПрописиНаРусском);
   КонецЕсли;

КонецФункции // СформироватьСуммуПрописью()
5 lxs
 
30.08.11
09:10
ЧислоПрописью(Сумма, ,Валюта.ПараметрыПрописиНаРусском)  в типовых.
6 Irbis
 
30.08.11
09:10
ЧислоПрописью (NumberInWords)
Синтаксис:
ЧислоПрописью(<Число>, <Форматная строка>, <Параметры предмета исчисления>)
Параметры:
<Число> (обязательный)
Тип: Число. Число, которое необходимо преобразовать в строку прописью.
<Форматная строка> (необязательный)
Тип: Строка. Форматная строка представляет собой строковое значение, включающее параметры форматирования. Параметры форматирования перечисляются через символ ";" (точка с запятой). Если параметр не указывается, используется значение параметра по умолчанию.
Каждый параметр задается именем параметра, символом "=" (равно) и значением параметра. Значение параметра может указываться в одинарных или двойных кавычках. Это необходимо, если значение параметра содержит символы, используемые в синтаксисе форматной строки.
Л (L) - Код локализации. По умолчанию используется код локализации, установленный в операционной системе. Примеры кодов локализации: ru_RU - Русский (Россия); en_US - Английский (США).
НП (SN) - Включать/не включать название предмета исчисления (Булево), по умолчанию - Истина.
НД (FN) - Включать/не включать название десятичных частей предмета исчисления (Булево), по умолчанию - Истина.
ДП (FS) - Дробную часть выводить прописью/числом (Булево), по умолчанию - Ложь.
<Параметры предмета исчисления> (необязательный)
Тип: Строка. Представляет собой строковое значение, определяющее параметры предмета исчисления. Параметры предмета исчисления перечисляются через "," (запятая). Формат строки зависит от кода локализации.
Для русского и белорусского языков (ru_RU, be_BY)
"рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2", где:
"рубль, рубля, рублей, м" – предмет исчисления:
рубль – единственное число именительный падеж,
рубля – единственное число родительный падеж,
рублей – множественное число родительный падеж,
м – мужской род (ж – женский род, с - средний род);
"копейка, копейки, копеек, ж" – дробная часть, аналогично предмету исчисления (может отсутствовать);
"2" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Для украинского языка (uk_UA)
"гривна, гривны, гривен, м, копейка, копейки, копеек, ж, 2", где:
"гривна, гривны, гривен, м" – предмет исчисления:
"гривна – единственное число именительный падеж,
гривны – единственное число родительный падеж,
гривен – множественное число родительный падеж,
м – мужской род (ж – женский род, с - средний род);
"копейка, копейки, копеек, ж" – дробная часть, аналогично предмету исчисления (может отсутствовать);
"2" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Для польского языка (pl_PL)
z?oty, z?ote, z?otych, m, grosz, grosze, groszy, m, 2
где:
"z?oty, z?ote, z?otych, m " - предмет исчисления (m - мужской род, ? - женский род, ? - средний род, mo – личностный мужской род)
z?oty - единственное число именительный падеж
z?ote - единственное число винительный падеж
z?otych - множественное число винительный падеж
m - мужской род (? - женский род, ? - средний род, mo – личностный мужской род)
"grosz, grosze, groszy, m " - дробная часть (может отсутствовать) (аналогично целой части)
2 - количество разрядов дробной части (может отсутствовать, по-умолчанию равно 2)
Пример:
Пропись = ЧислоПрописью(1832, “L=pl_PL;SN=true;FN=true;FS=true”, “z?oty, z?ote, z?otych, m, grosz, grosze, groszy, m, 2”);
Для английского, финского и казахского языков (en_US, fi_FI, kk_KZ)
"dollar, dollars, cent, cents, 2", где:
"dollar, dollars" – предмет исчисления в единственном и множественном числе;
"cent, cents" – дробная часть в единственном и множественном числе (может отсутствовать);
"2" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Для немецкого языка (de_DE)
"EURO, EURO, М, Cent, Cent, M, 2", где:
"EURO, EURO, М" – предмет исчисления:
EURO, EURO – предмет исчисления в единственном и множественном числе;
М – мужской род (F – женский род, N - средний род);
"Cent, Cent, M" – дробная часть, аналогично предмету исчисления (может отсутствовать);
"2" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Для латышского языка (lv_LV)
"lats, lati, latu, V, sant?ms, sant?mi, sant?mu, V, 2, J, J", где:
"lats, lati, latu, v" – предмет исчисления:
lats – для чисел заканчивающихся на 1, кроме 11
lati – для чисел заканчивающихся на 2-9 и 11
latu – множественное число (родительный падеж) используется после числительных 0, 10, 20,..., 90, 100, 200, ..., 1000, ..., 100000,
v – мужской род (s – женский род);
"sant?ms, sant?mi, sant?mu, V" – дробная часть, аналогично предмету исчисления (может отсутствовать);
"2" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2);
"J" - число 100 выводится как "Одна сотня" для предмета исчисления (N - как "Сто"),
может отсутствовать, по умолчанию равно "J";
"J" - число 100 выводится как "Одна сотня" для дробной части (N - как "Сто"),
может отсутствовать, по умолчанию равно "J".
Для литовского языка (lt_LT)
"litas, litai, lit?, М, centas, centai, cent?, М, 2", где:
"litas, litai, lit?, М" – предмет исчисления:
litas - единственное число целой части,
litai - множественное число целой части от 2 до 9,
lit? - множественное число целой части прочие,
m - род целой части (f - женский род),
"centas, centai, cent?, М" – дробная часть, аналогично предмету исчисления (может отсутствовать);
"2" - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Для эстонского языка (et_EE)
"kroon, krooni, sent, senti, 2", где:
"kroon, krooni" – – предмет исчисления в единственном и множественном числе;
"sent, senti" – дробная часть в единственном и множественном числе (может отсутствовать);
2 – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Для болгарского языка (bg_BG)
"лев, лева, м, стотинка, стотинки, ж, 2", где:
"лев, лева, м" – предмет исчисления:
лев - единственное число целой части,
лева - множественное число целой части,
м - род целой части,
"стотинка, стотинки, ж" - дробная часть:
стотинка - единственное число дробной части,
стотинки - множественное число дробной части,
ж - род дробной части,
"2" - количество разрядов дробной части.
Для румынского языка (ro_RO)
"leu, lei, M, ban, bani, W, 2"
"leu, lei, M" – предмет исчисления:
leu - единственное число целой части,
lei - множественное число целой части,
M - род целой части,
"ban, bani, W" - дробная часть:
ban - единственное число дробной части,
bani - множественное число дробной части,
W - род дробной части,
"2" - количество разрядов дробной части.
Для грузинского языка (ka_GE)
"????, ?????, 2"
???? - целая часть
????? - дробная часть
"2" - количество разрядов дробной части.
Для вьетнамского языка (vi_VN)
"dong, xu, 2"
dong, - целая часть
xu, - дробная часть
2 - количество разрядов дробной части.

Значение по умолчанию: Пустая строка
Возвращаемое значение:
Тип: Строка. Представление числа прописью.
Описание:
Формирует представление числа прописью в соответствии с заданными форматной строкой и параметрами предмета исчисления.
Пример:
// Пример форматной строки для вывода числа прописью на русском
// языке, с выводом целой и дробной части прописью и выводом
// предмета исчисления.
ФормСтрока = "Л = ru_RU; ДП = Истина";
ПарПредмета="доллар,доллара,долларов,м,цент,цента,центов,м,2";
ПрописьЧисла = ЧислоПрописью(2341.56, ФормСтрока, ПарПредмета);

// Результат вычисления:
// "Две тысячи триста сорок один доллар пятьдесят шесть центов"
7 Ненавижу 1С
 
гуру
30.08.11
09:10
(5) куй
8 Irbis
 
30.08.11
09:10
Но правильные пацаны мануалы не читают...
9 lxs
 
30.08.11
09:11
(7) сам куй
10 dva1c
 
30.08.11
09:12
(7) а в (4) прокатит?
11 Rizhij_Nikitos
 
30.08.11
09:14
(5),(6) пасибо за совет, но мне не надо прописью, мне надо как я написал )
(4) тоже, прописью не надо :)
(3) я примерно так думал, но вот какая штука, а если валюта будет в USD или EURO?
12 Ненавижу 1С
 
гуру
30.08.11
09:15
(11) как параметр в функцию названия передавай
13 Rizhij_Nikitos
 
30.08.11
09:22
(12) понял, но не совсем, то есть выхотите предложить, как я сказал до этого, ФункцияНужногоПреобразования(Число,Валюта), да?
14 GANR
 
30.08.11
09:25
// Пример форматной строки для вывода числа прописью на русском
// языке, с выводом целой и дробной части прописью и выводом
// предмета исчисления.
ФормСтрока = "Л = ru_RU; ДП = Истина";
ПарПредмета="доллар,доллара,долларов,м,цент,цента,центов,м,2";
ПрописьЧисла = ЧислоПрописью(2341.56, ФормСтрока, ПарПредмета);

// Результат вычисления:
// "Две тысячи триста сорок один доллар пятьдесят шесть центов"
15 Rizhij_Nikitos
 
30.08.11
09:26
(14) надо не так сделать, 278,28 = 278 руб. 28к.
А вы пишите, 278,28 = двести семьдесят восемь рублей 28 копеек. Это совсем разные вещи, про суммую прописью я сказал, в качестве примера, что есть в 1С
16 Ненавижу 1С
 
гуру
30.08.11
09:29
плять!

Функция ВывестиЭтуХрень(число, целые, дробные)
 Возврат "" + Цел(Сум) + " "+ целые +" "+ 100 *(Сум - Цел(Сум)) +" "+дробные;
КонецФункции
17 Rizhij_Nikitos
 
30.08.11
09:46
(16) Спасибо, но написать я могу, но я узнавал, мб есть уже готовая функция...
18 Rizhij_Nikitos
 
30.08.11
09:54
Всем пасибо за помощь. Буду писать свою функцию.
19 lxs
 
30.08.11
10:03
Да, че-то все так ступили капитально)))

Функция ПредставлениеСуммы(Сумма)
   Представление = "";
   Представление = Строка(Цел(Сумма)) + " руб.";
   Представление = Представление + Строка(100*(Сумма%1)) + " коп.";
   Возврат Представление;
КонецФункции //при условии что дробная всегда до сотых
Программист всегда исправляет последнюю ошибку.