Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
13 Дек 2017, 06:29
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Сумма прописью на другом языке?  (Прочитано 835 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Constantus

  • **
  • Сообщений: 56
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-06-02
  • Сайт: 
Приветствую, Форумчане!
Необходимо использовать сумму прописью на туркменском языке. Как я понял, в стандарты 1с не входит этот язык.

Как можно создать некую функцию, которая будет выдавать результат суммы прописью на туркменском языке?


Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
ЧислоПрописью(<Число>, <ФорматнаяСтрока>, <ПараметрыПредметаИсчисления>)

Оффлайн Constantus

  • **
  • Сообщений: 56
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-06-02
  • Сайт: 
Мне нужно получить прописью сумму не на русском языке, а на туркменском, типа
On bäş müň iki ýüz kyrk sekiz manat 00 teňňe

На ВБА это довольно простой код:

Function TurkmenProp$(c#)
Dim st$, tg$, ed, des, razr, i&, m$
If c > 999999999999# Or c < 0 Then Exit Function

ed = Array("", "bir ", "iki ", ChrW(252) & ChrW(231) & " ", "d" & ChrW(246) & "rt ", "b" & ChrW(228) & ChrW(351) & " ", "alty" & " ", ChrW(253) & "edi ", "sekiz ", "dokuz ")
des = Array("", "on ", ChrW(253) & "igrimi ", "otuz ", "kyrk ", "elli ", "altmy" & ChrW(351) & " ", ChrW(253) & "etmi" & ChrW(351) & " ", "segsen ", "togsan ")
razr = Array("milliard ", "million ", "m" & ChrW(252) & ChrW(328) & " ", "")

st = Left(Format(c, "000000000000.00"), 12)
tg = Right(Format(c, " 0.00"), 2)

If CDbl(st) = 0 Then m = "nol "
For i = 1 To Len(st) Step 3
    If Mid(st, i, 3) <> "000" Then
        m = m & IIf(Mid(st, i, 1) = "0", "", ed(CInt(Mid(st, i, 1))) & ChrW(253) & ChrW(252) & "z ")
        m = m & des(CInt(Mid(st, i + 1, 1))) & ed(CInt(Mid(st, i + 2, 1))) & razr((i - 1) \ 3)
    End If
Next i
TurkmenProp = UCase(Left(m, 1)) & Mid(m, 2) & "manat " & tg & " te" & ChrW(328) & ChrW(328) & "e"
End Function

Может поможете мне его перевести на 1с?

Пытаюсь сам перевести, но опыта просто нету, выдает ошибки...
Добавлено: 31 Авг 2015, 13:49

Ед = Новый Массив(10);
Ед[0] = "";
Ед[1] = "bir ";
Ед[2] = "iki ";
Ед[3] = "üç ";
Ед[4] = "dört ";
Ед[5] = "bäş ";
Ед[6] = "alty ";
Ед[7] = "ýedi ";
Ед[8] = "sekiz ";
Ед[9] = "dokuz ";

Дес = Новый Массив(10);
Дес[0] = "";
Дес[1] = "on ";
Дес[2] = "ýigrimi ";
Дес[3] = "otuz ";
Дес[4] = "kyrk ";
Дес[5] = "elli ";
Дес[6] = "altmyş ";
Дес[7] = "ýetmiş ";
Дес[8] = "segsen ";
Дес[9] = "togsan ";

Разр = Новый Массив(4);
Разр[0]= "milliard ";
Разр[1]= "million ";
Разр[2]= "müň ";
Разр[3]= "";

м="";
ст = Формат(Цел(Сумма), "ЧГ=0; ЧЦ=12; ЧВН=");
тг = ?((Сумма - Цел(Сумма))*100=0,"00", Формат((Сумма - Цел(Сумма))*100,"ЧГ=0; ЧЦ=2; ЧВН="));

Для цик = 1 По СтрДлина(ст) Цикл
Если Сред(ст,цик,3) <> "000"  Тогда
м = "" + м + ?(Сред(ст,цик,1)="0", "", Ед[Число(Сред(ст,цик,1))] + "ýüz ");
м = "" + м + Дес[Число(Сред(ст,цик+1,1))] + Ед[Число(Сред(ст,цик+2,1))] + Разр[Цел((цик - 1)/3)]; 
КонецЕсли;
цик = цик + 2;
КонецЦикла;


м = ВРег(Лев(м, 1)) + Сред(м, 2);

Возврат м + "manat " + тг + " teňňe";
   

Вот код на сумму прописью на туркменском. Перевел с ВБА на 1с. Обсудите на предмет подводных камней и куда эту функцию вставить, если к ней мне придется обращаться из разных документов?

Последний раз редактировалось: Constantus; 31 Авг 2015, 13:49. Причина: Объединение сообщений


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
171 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
38 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 245
  • Точка Скрытых: 0
  • Точка Пользователей: 8
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal