Процедура КнопкаВыполнитьНажатие(Кнопка)
Сообщить(ЧислоПрописьюСвойСпособ(ЧислоДляПреобразования));
КонецПроцедуры
//функция получения числа прописью
Функция ЧислоПрописьюСвойСпособ(Знач ЧислоП)
Если ЧислоП < 0 Тогда // число по модулю
ЧислоП = ЧислоП*-1;
КонецЕсли;
ЧислоППрописью = "";
//Вторая часть задания:"но программа должна ЛЕГКО расширяться для добавления больших чисел". Начало.
//Если ЧислоП >= 1000000000000 Тогда
// Количество = Цел(ЧислоП/ 1000000000000);
//ЧислоППрописью = СложитьСтроки(ЧислоППрописью,ЧислоСтрокой2(Количество)); //прописью сколько триллионов
// Если Количество = 1 Тогда
// ЧислоППрописью = СложитьСтроки(ЧислоППрописью, "триллион")
// ИначеЕсли Количество = 2 Тогда
// ЧислоППрописью = СложитьСтроки(ЧислоППрописью, "триллиона")
// Иначе
// ЧислоППрописью = СложитьСтроки(ЧислоППрописью, "триллионов")
// КонецЕсли;
// ЧислоП = ЧислоП - Цел(ЧислоП / 1000000000000) * 1000000000000
//КонецЕсли;
//
//Если ЧислоП >= 1000000000 Тогда
// Количество = Цел(ЧислоП/ 1000000000);
// ЧислоППрописью = СложитьСтроки(ЧислоППрописью,ЧислоСтрокой2(Количество)); //прописью сколько миллиардов
// Если Количество = 1 Тогда
// ЧислоППрописью = СложитьСтроки(ЧислоППрописью, "миллиард")
// ИначеЕсли Количество = 2 Тогда
// ЧислоППрописью = СложитьСтроки(ЧислоППрописью, "миллиарда")
// Иначе
// ЧислоППрописью = СложитьСтроки(ЧислоППрописью, "миллиардов")
// КонецЕсли;
// ЧислоП = ЧислоП - Цел(ЧислоП / 1000000000) * 1000000000
//КонецЕсли;
//Вторая часть задания:"но программа должна ЛЕГКО расширяться для добавления больших чисел". Окончание.
Если ЧислоП >= 1000000 Тогда
Количество = Цел(ЧислоП/1000000); //сколько миллионов
ЧислоППрописью = СложитьСтроки(ЧислоППрописью,ЧислоСтрокой2(Количество)); //прописью сколько миллионов
Если Количество = 1 Тогда
ЧислоППрописью = СложитьСтроки(ЧислоППрописью, "миллион")
ИначеЕсли Количество = 2 Тогда
ЧислоППрописью = СложитьСтроки(ЧислоППрописью, "миллиона")
Иначе
ЧислоППрописью = СложитьСтроки(ЧислоППрописью, "миллионов")
КонецЕсли;
ЧислоП = ЧислоП - Цел(ЧислоП / 1000000) * 1000000 // для миллионов все сделали, далее нужно определить количество тысяч
КонецЕсли;
Если ЧислоП >= 1000 Тогда
Количество = Цел(ЧислоП/1000); //определить количество тысяч
ЧислоППрописью = СложитьСтроки(ЧислоППрописью,ЧислоСтрокой2(Количество)); //прописью тысячи
Если Количество = 1 Тогда
ЧислоППрописью = СложитьСтроки(ЧислоППрописью, "тысяча")
ИначеЕсли Количество = 2 Тогда
ЧислоППрописью = СложитьСтроки(ЧислоППрописью, "тысячи")
Иначе
ЧислоППрописью = СложитьСтроки(ЧислоППрописью, "тысяч")
КонецЕсли;
ЧислоП = ЧислоП - Цел(ЧислоП / 1000) * 1000
КонецЕсли;
Если ЧислоП >= 0 Then
ЧислоППрописью = СложитьСтроки(ЧислоППрописью, ЧислоСтрокой2(ЧислоП))
КонецЕсли;
Возврат ЧислоППрописью;
КонецФункции
//возвращает строкове представление числа с разрадностью 3
Функция ЧислоСтрокой2(Знач Количество)
ЧислоП = "";
Если Количество >= 100 Тогда
ЧислоП = ЧислоСтрокой(Цел(Количество/100)*100);
Количество = Количество - Цел(Количество / 100) * 100;
КонецЕсли;
Если Количество >= 20 Тогда
ЧислоП = СложитьСтроки(ЧислоП, ЧислоСтрокой(Цел(Количество/10) * 10));
Количество = Количество - Цел(Количество / 10) * 10;
КонецЕсли;
ЧислоП = СложитьСтроки(ЧислоП, ЧислоСтрокой(Количество));
Возврат ЧислоП;
КонецФункции
//возвращает строковое представление числа
Функция ЧислоСтрокой(Число)
Если Число = 100 Тогда
ЧислоСтрокой = "сто"
ИначеЕсли Число = 200 Тогда
ЧислоСтрокой = "двести"
ИначеЕсли Число = 300 Тогда
ЧислоСтрокой = "триста"
ИначеЕсли Число =400 Тогда
ЧислоСтрокой = "четыреста"
ИначеЕсли Число = 500 Тогда
ЧислоСтрокой = "пятьсот"
ИначеЕсли Число = 600 Тогда
ЧислоСтрокой = "шестьсот"
ИначеЕсли Число = 700 Тогда
ЧислоСтрокой = "семьсот"
ИначеЕсли Число = 800 Тогда
ЧислоСтрокой = "восемьсот"
ИначеЕсли Число = 900 Тогда
ЧислоСтрокой = "девятьсот"
ИначеЕсли Число = 11 Тогда
ЧислоСтрокой = "одиннадцать"
ИначеЕсли Число = 12 Тогда
ЧислоСтрокой = "двенадцать"
ИначеЕсли Число = 13 Тогда
ЧислоСтрокой = "тринадцать"
ИначеЕсли Число = 14 Тогда
ЧислоСтрокой = "четырнадцать"
ИначеЕсли Число = 15 Тогда
ЧислоСтрокой = "пятнадцать"
ИначеЕсли Число = 16 Тогда
ЧислоСтрокой = "шестнадцать"
ИначеЕсли Число = 17 Тогда
ЧислоСтрокой = "семнадцать"
ИначеЕсли Число = 18 Тогда
ЧислоСтрокой = "восемнадцать"
ИначеЕсли Число = 19 Тогда
ЧислоСтрокой = "девятнадцать"
ИначеЕсли Число = 20 Тогда
ЧислоСтрокой = "двадцать"
ИначеЕсли Число = 30 Тогда
ЧислоСтрокой = "тридцать"
ИначеЕсли Число = 40 Тогда
ЧислоСтрокой = "сорок"
ИначеЕсли Число = 50 Тогда
ЧислоСтрокой = "пятьдесят"
ИначеЕсли Число = 60 Тогда
ЧислоСтрокой = "шестьдесят"
ИначеЕсли Число = 70 Тогда
ЧислоСтрокой = "семьдесят"
ИначеЕсли Число = 80 Тогда
ЧислоСтрокой = "восемьдесят"
ИначеЕсли Число = 90 Тогда
ЧислоСтрокой = "девяносто"
ИначеЕсли Число = 10 Тогда
ЧислоСтрокой = "десять"
ИначеЕсли Число = 9 Тогда
ЧислоСтрокой = "девять"
ИначеЕсли Число = 8 Тогда
ЧислоСтрокой = "восемь"
ИначеЕсли Число = 7 Тогда
ЧислоСтрокой = "семь"
ИначеЕсли Число = 6 Тогда
ЧислоСтрокой = "шесть"
ИначеЕсли Число = 5 Тогда
ЧислоСтрокой = "пять"
ИначеЕсли Число = 4 Тогда
ЧислоСтрокой = "четыре"
ИначеЕсли Число = 3 Тогда
ЧислоСтрокой = "три"
ИначеЕсли Число = 2 Тогда
ЧислоСтрокой = "два"
ИначеЕсли Число = 1 Тогда
ЧислоСтрокой = "один"
КонецЕсли;
Возврат ЧислоСтрокой;
КонецФункции
//конкатенация двух строк
Функция СложитьСтроки(Строка1, Строка2)
Если Строка1 = "" Тогда
СложитьСтроки = Строка2;
ИначеЕсли Строка2 = "" Тогда
СложитьСтроки = Строка1
Иначе
СложитьСтроки = Строка1 + " " + Строка2
КонецЕсли;
Возврат СложитьСтроки;
КонецФункции
//при открытии формы обработки
Процедура ПриОткрытии()
ЧислоДляПреобразования = 411211241;
КонецПроцедуры