Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
10 апр 2025, 12:08

Печать Платежку на Азербайджанском языке

Автор Sanan Celilli, 10 дек 2009, 11:52

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

Sanan Celilli

Каким образом можно получит цифры прописью на азербайджанском языке ? Благодарю заранее!

Admin

Только в этом месте (документе) должен быть азербайджанский язык?

Sanan Celilli

Я задаю формат
ФорматСтрока  = "Л=az_Latn; ДП=Ложь";
А печатаеться на английском ?

Admin

Нет. Так не получиться.

Смотрите продцедуру перевода цифр в цифры прописью. Там прописано какой цифре какое текстовое значение и склонения. И в зависимости от того везде вам надо на азербайджанский переводить или только в платежках - правьте.

А  "ФорматСтрока  = "Л=az_Latn; ДП=Ложь";" это не переводчик.

Sanan Celilli

Спасибо за совет. Дело в том, что я не знаю где искать продцедуру перевода цифр в цифры прописью. Если укажете место нахождение, то буду очень благодарен!

Admin

Вы в этой функции меняли ФорматСтрока  = "Л=ru_RU; ДП=Ложь"; ?


Функция ФорматироватьСуммуПрописи(СуммаДок,СуммаБезКопеек) Результат     = СуммаДок; ЦелаяЧасть    = Цел(СуммаДок); ФорматСтрока  = "Л=ru_RU; ДП=Ложь"; ПарамПредмета = СчетОрганизации.ВалютаДенежныхСредств.ПараметрыПрописиНаРусском; Если (Результат - ЦелаяЧасть) = 0 Тогда Если СуммаБезКопеек Тогда Результат = ЧислоПрописью(Результат,ФорматСтрока,ПарамПредмета); Результат = Лев(Результат,Найти(Результат,"0")-1); Иначе Результат = ЧислоПрописью(Результат,ФорматСтрока,ПарамПредмета); КонецЕсли; Иначе Результат = ЧислоПрописью(Результат,ФорматСтрока,ПарамПредмета); КонецЕсли; Возврат Результат; КонецФункции // ФорматироватьСуммуПрописи()

Вот обратите внимание на

Результат = ЧислоПрописью(Результат,ФорматСтрока,ПарамПредмета);


Sanan Celilli

Да именно в этом месте я вставил ФорматСтрока  = "Л=az_Latn; ДП=Ложь";
В результате печатаеться английский текст прописи !!!

Admin

Азербайджанский язык не знаю, приведу пример с польским языком. По аналогии не сложно сдедать.

Замените в этой функции в трех местах

Результат = ЧислоПрописью(Результат,ФорматСтрока,ПарамПредмета);

на

Результат =  ЧислоПрописью(Результат, "L=pl_PL;SN=true;FN=true;FS=true", "złoty, złote, złotych, m, grosz, grosze, groszy, m, 2");

Для польского это будет работать.

Вам надо поменять соответственно для азербайджанского Л=az_Latn и текст в кавычках для склонения валюты "złoty, złote, złotych, m, grosz, grosze, groszy"

Sanan Celilli

Это всё понятно. Я спрашиваю про цифр, например 1000 = Одна тысяча, 225 = Двесто двадцат пять и т.д.

Admin

Так цифры у вас при этом тоже переведуться.
Вот замените целиком функцию на эту, с польским вариантом:

Функция ФорматироватьСуммуПрописи(СуммаДок,СуммаБезКопеек) Результат     = СуммаДок; ЦелаяЧасть    = Цел(СуммаДок); ФорматСтрока  = "Л=ru_RU; ДП=Ложь"; ПарамПредмета = СчетОрганизации.ВалютаДенежныхСредств.ПараметрыПрописиНаРусском; Если (Результат - ЦелаяЧасть) = 0 Тогда Если СуммаБезКопеек Тогда //Результат = ЧислоПрописью(Результат,ФорматСтрока,ПарамПредмета);    Результат =  ЧислоПрописью(Результат, "L=pl_PL;SN=true;FN=true;FS=true", "złoty, złote, złotych, m, grosz, grosze, groszy, m, 2"); Результат = Лев(Результат,Найти(Результат,"0")-1); Иначе //Результат = ЧислоПрописью(Результат,ФорматСтрока,ПарамПредмета);                    Результат =  ЧислоПрописью(Результат, "L=pl_PL;SN=true;FN=true;FS=true", "złoty, złote, złotych, m, grosz, grosze, groszy, m, 2"); КонецЕсли; Иначе //Результат = ЧислоПрописью(Результат,ФорматСтрока,ПарамПредмета);                 Результат =  ЧислоПрописью(Результат, "L=pl_PL;SN=true;FN=true;FS=true", "złoty, złote, złotych, m, grosz, grosze, groszy, m, 2"); КонецЕсли; Возврат Результат; КонецФункции // ФорматироватьСуммуПрописи()

После этого в платежку посмотрите, в графе Сумма прописью будет написано по польски:

Trzysta dziesięć tysięcy złotych zero groszy

(310000 - сумма платежки)

Все работает. Вам только во всех 3х местах надо еще поменять L=pl_PL;SN=true;FN=true;FS=true   на   L=az_Latn;SN=true;FN=true;FS=true
(это для цифр)

и самому написать и заменить перевод "złoty, złote, złotych, m, grosz, grosze, groszy, m, 2"
(это для наименования валюты) Валюта у вас какая будет?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск