Имя: Пароль:
1C
 
Как просклонять год?
,
0 Krok
 
18.02.22
23:12
Не получается просклонять год. Например получить из 2018 г.- две тысячи восемнадцатого года.

Число является порядковым числительным мужского рода в родительном падеже.

ПолучитьСклоненияСтроки("Две тысячи восемнадцать","Л=ru_RU; ПЛ=Мужской","ПД=Родительный")[0] возвращает не то что нужно...

Есть функция которая просклоняет так как требуется? Или сидеть дерево если прописывать...
1 серый КТУЛХУ
 
18.02.22
23:26
ПолучитьСклоненияСтрокиПоЧислу
2 Krok
 
18.02.22
23:30
мне данная функция вернет 2018 в виде две тысячи восемнадцатое? (если использовать как второй параметр)
3 серый КТУЛХУ
 
19.02.22
00:13
релиз платформы какой?
на эти функции по разным релизам народ много ругался.
https://forum.infostart.ru/forum9/topic243598/
4 Krok
 
19.02.22
02:07
(3) Спасибо) уже свою извращенную штуку написал:

Дата=Файл.ВладелецФайла.ДатаРегистрации; Если Месяц(Дата) = 1 Тогда  Месяц="января";
ИначеЕсли Месяц(Дата) = 2 ТОГДА    Месяц="февраля";
ИначеЕсли Месяц(Дата) = 3 ТОГДА   Месяц="марта";
ИначеЕсли Месяц(Дата) = 4 ТОГДА    Месяц="апреля";
ИначеЕсли Месяц(Дата) = 5 ТОГДА    Месяц="мая";
ИначеЕсли Месяц(Дата) = 6 ТОГДА    Месяц="июня";
ИначеЕсли Месяц(Дата) = 7 ТОГДА    Месяц="июля";
ИначеЕсли Месяц(Дата) = 8 ТОГДА    Месяц="августа";
ИначеЕсли Месяц(Дата) = 9 ТОГДА    Месяц="сентября";
ИначеЕсли Месяц(Дата) = 10 ТОГДА    Месяц="октября";
ИначеЕсли Месяц(Дата) = 11 ТОГДА    Месяц="ноября";
ИначеЕсли Месяц(Дата) = 12 ТОГДА    Месяц="декабря";
КонецЕсли;

Если День(Дата) = 1 Тогда  День="Первое";
ИначеЕсли День(Дата) = 2 ТОГДА    День="Второе";
ИначеЕсли День(Дата) = 3 ТОГДА   День="Третье";
ИначеЕсли День(Дата) = 4 ТОГДА    День="Четвертое";
ИначеЕсли День(Дата) = 5 ТОГДА    День="Пятое";
ИначеЕсли День(Дата) = 6 ТОГДА    День="Шестое";
ИначеЕсли День(Дата) = 7 ТОГДА    День="Седьмое";
ИначеЕсли День(Дата) = 8 ТОГДА    День="Восьмое";
ИначеЕсли День(Дата) = 9 ТОГДА    День="Девятое";
ИначеЕсли День(Дата) = 10 ТОГДА    День="Десятое";
ИначеЕсли День(Дата) = 11 ТОГДА    День="Одиннадцатое";
ИначеЕсли День(Дата) = 12 ТОГДА    День="Двенадцатое";
ИначеЕсли День(Дата) = 13 ТОГДА    День="Тринадцатое";
ИначеЕсли День(Дата) = 14 ТОГДА   День="Четырнадцатое";
ИначеЕсли День(Дата) = 15 ТОГДА    День="Пятнадцотое";
ИначеЕсли День(Дата) = 16 ТОГДА    День="Шестнадцатое";
ИначеЕсли День(Дата) = 17 ТОГДА    День="Семнадцатое";
ИначеЕсли День(Дата) = 18 ТОГДА    День="Восемнадцатое";
ИначеЕсли День(Дата) = 19 ТОГДА    День="Девятнадцатое";
ИначеЕсли День(Дата) = 20 ТОГДА    День="Двадцатое";
ИначеЕсли День(Дата) = 21 ТОГДА    День="Двадцать первое";
ИначеЕсли День(Дата) = 22 ТОГДА    День="Двадцать второе";
ИначеЕсли День(Дата) = 23 ТОГДА    День="Двадцать третье";
ИначеЕсли День(Дата) = 24 ТОГДА    День="Двадцать четвертое";
ИначеЕсли День(Дата) = 25 ТОГДА    День="Двадцать пятое";
ИначеЕсли День(Дата) = 26 ТОГДА    День="Двадцать шестое";
ИначеЕсли День(Дата) = 27 ТОГДА    День="Двадцать седьмое";
ИначеЕсли День(Дата) = 28 ТОГДА    День="Двадцать восьмое";
ИначеЕсли День(Дата) = 29 ТОГДА    День="Двадцать девятое";
ИначеЕсли День(Дата) = 30 ТОГДА    День="Тридцатое";
ИначеЕсли День(Дата) = 31 ТОГДА    День="Тридцать первое";
КонецЕсли;

Если Число(Год(Дата))%100=0 Тогда
Год="двухтысячного года";
ИначеЕсли Число(Год(Дата))%100=10 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-10, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"десятого года";
ИначеЕсли Число(Год(Дата))%100=20 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-20, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"двадцатого года";
ИначеЕсли Число(Год(Дата))%100=30 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-30, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"тридцатого года";
ИначеЕсли Число(Год(Дата))%100=40 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-40, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"сорокового года";
ИначеЕсли Число(Год(Дата))%100=50 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-50, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"пятидесятого года";
ИначеЕсли Число(Год(Дата))%100=60 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-60, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"шестидесятого года";
ИначеЕсли Число(Год(Дата))%100=70 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-70, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"семидесятого года";
ИначеЕсли Число(Год(Дата))%100=80 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-80, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"восьмидесятого года";
ИначеЕсли Число(Год(Дата))%100=90 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-90, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"девяностого года";
ИначеЕсли Число(Год(Дата))%100=11 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-11, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"одиннадцатого года";
ИначеЕсли Число(Год(Дата))%100=12 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-12, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"двенадцатого года";
ИначеЕсли Число(Год(Дата))%100=13 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-13, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"тринадцатого года";
ИначеЕсли Число(Год(Дата))%100=14 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-14, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"четырнадцатого года";
ИначеЕсли Число(Год(Дата))%100=15 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-15, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"пятнадцатого года";
ИначеЕсли Число(Год(Дата))%100=16 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-16, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"шестнадцатого года";
ИначеЕсли Число(Год(Дата))%100=17 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-17, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"семнадцатого года";
ИначеЕсли Число(Год(Дата))%100=18 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-18, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"восемнадцатого года";
ИначеЕсли Число(Год(Дата))%100=19 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-19, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"девятнадцатого года";
ИначеЕсли Число(Год(Дата))%10=1 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-1, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"первого года";
ИначеЕсли Число(Год(Дата))%10=2 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-2, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"второго года";
ИначеЕсли Число(Год(Дата))%10=3 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-3, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"третьего года";
ИначеЕсли Число(Год(Дата))%10=4 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-4, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"четвертого года";
ИначеЕсли Число(Год(Дата))%10=5 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-5, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"пятого года";
ИначеЕсли Число(Год(Дата))%10=6 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-6, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"шестого года";
ИначеЕсли Число(Год(Дата))%10=7 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-7, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"седьмого года";
ИначеЕсли Число(Год(Дата))%10=8 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-8, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"восьмого года";
ИначеЕсли Число(Год(Дата))%10=9 Тогда
Год=ЧислоПрописью(Число(Год(Дата))-9, "Л=ru_RU;ДП=Ложь;",",,,,,,,,0")+"девятого года";
КонецЕсли;


РезультатОбработки =День+" "+ Месяц+" "+Нрег(Год);
5 ads55
 
19.02.22
09:41
(4) "ИначеЕсли День(Дата) = 15 ТОГДА    День="Пятнадцотое";" - это зачёт!
Загони в соответствие, что ли...
6 Гений 1С
 
гуру
19.02.22
10:45
(5) Поколение ЕГЭ. ;-) А вообще безграмотность потому что книги перестали читать.
7 NorthWind
 
19.02.22
11:45
(4) непонятно, зачем так сложно. Можно было просто взять несколько ЧиселПрописью и собрать их в одну строку, добавив наименование месяца и слово "года" для связки... Получилось бы 3-4 строки вся функция.
8 Aleksey
 
19.02.22
12:29
СтроковыеФункцииКлиентСервер.ЧислоЦифрамиПредметИсчисленияПрописью()
(с) Как склонять год, месяц и день?
9 Krok
 
23.02.22
16:16
(5) Спасибо! Не заметил
Основная теорема систематики: Новые системы плодят новые проблемы.