Имя: Пароль:
1C
1С v8
Как склонять год, месяц и день?
,
0 bebibo
 
19.08.19
11:47
Здравствуйте. Как сделать, чтобы к примеру вместо этого: "2 лет 1 месяцев 3 дней" было: "2 года 1 месяц 3 дня"?
Заранее спасибо)
1 Волшебник
 
19.08.19
11:51
Если последняя цифра = 1 тогда "год", "месяц", день"
ИначеЕсли последняя цифра от 2 до 5 тогда "года", "месяца", "дня"
Иначе "лет", "месяцев", "Дней"
КонецЕсли;
2 vladko
 
19.08.19
11:52
1 год
2-4 года
5-20 лет
.....
1 месяц
2-4 месяца
5-20 месяцев
......
1 день
2-4 дня
5-20 дней
....
(0) в чём проблема написать через условия проверки количества лет, месяцев, дней эти значения?
3 bebibo
 
19.08.19
11:53
У меня просто макет и из-за этого туплю
ОбластьСправки.Параметры.СтажГод = окр(Лет);
ОбластьСправки.Параметры.СтажМес =окр(Месяцев);
ОбластьСправки.Параметры.СтажДень = окр(Дней);
4 vladko
 
19.08.19
11:56
(3) заведи в макете параметры для текстовых переменных под слова Лет, Месяцев, Дней и до заполнения параметров получи их значения через проверку условий на количественные переменные.
5 Натуральный Йог
 
19.08.19
12:03
(1) 12 года
6 DrWatson
 
19.08.19
12:06
Теперь можно и без если обходиться:
СтрокаСЧислом(";день;;дня;дней;дня", Дней, ВидЧисловогоЗначения.Количественное);
7 Волшебник
 
19.08.19
14:41
(5) хм... Вот так точнее:

Если от 5 до 20 то "лет", "месяцев", "дней"
ИначеЕсли последняя цифра = 1 тогда "год", "месяц", день"
ИначеЕсли последняя цифра от 2 до 4 тогда "года", "месяца", "дня"
Иначе "лет", "месяцев", "дней"
КонецЕсли;
8 mistеr
 
19.08.19
15:30
(3) "Лет: 2, месяцев: 1, дней: 3"

И склонять не нужно.
9 fisher
 
19.08.19
15:52
Когда-то свою функцию написал, а потом в БСП нашел:
СтроковыеФункцииКлиентСервер.ЧислоЦифрамиПредметИсчисленияПрописью()
10 fisher
 
19.08.19
16:04
(6) Да, в 10 релизе добавили. Теперь можно и через нее.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн