Как мне получить последние цифры возраста для склонения год, года, лет? Прав(Поле,1) не работает, выдаёт ошибку
Перем Год;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Пользователи.Наименование КАК Наименование,
| Пользователи.Ссылка КАК Ссылка,
| РАЗНОСТЬДАТ(Пользователи.ДатаРождения, &ТекущаяДата, ГОД) КАК Поле1,
| ДЕНЬ(Пользователи.ДатаРождения) КАК Поле2
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| ДОБАВИТЬКДАТЕ(Пользователи.ДатаРождения, ГОД, &ТекущийГод - ГОД(Пользователи.ДатаРождения)) МЕЖДУ &ДатаНачала И &ДатаКонец
|
|УПОРЯДОЧИТЬ ПО
| Поле2";
Запрос.УстановитьПараметр("ДатаНачала",НачалоДня(ТекущаяДата()));
Запрос.УстановитьПараметр("ДатаКонец",КонецДня(ТекущаяДата()+3*86400));
Запрос.УстановитьПараметр("ТекущийГод", Год(ТекущаяДата()));
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата());
Результат= Запрос.Выполнить();
Выборка= Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Поле1 >=5 и Выборка.Поле1 <=20 ИЛИ Выборка.Поле1 =0 Тогда
Год = "лет";
ИначеЕсли Выборка.Поле1= 1 Тогда
Год = "год";
ИначеЕсли Выборка.Поле1>=2 и Выборка.Поле1 <=4 Тогда
Год = "года";
Иначе Год = "йцу";
КонецЕсли;
Сообщить("У сотрудника "+ Выборка.Ссылка+ " сегодня ДР ему "+ Выборка.Поле1 + Год );
КонецЦикла;
ПоказатьНайденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В этом случае выдаёт ошибку, операция сравнения доступна для примитивных типов значений
Если Прав(Выборка.Поле1,1) >=5 и Прав(Выборка.Поле1,2) <=20 ИЛИ Прав(Выборка.Поле1,1) =0 Тогда
Год = "лет";
ИначеЕслиПрав(Выборка.Поле1,1) = 1 Тогда
Год = "год";
ИначеЕсли Прав(Выборка.Поле1,1) >=2 и Прав(Выборка.Поле1,1) <=4 Тогда
Год = "года";
Иначе Год = "йцу";
КонецЕсли;
Если Прав(Выборка.Поле1,1) >=5 и Прав(Выборка.Поле1,2) <=20 ИЛИ Прав(Выборка.Поле1,1) =0 Тогда
Год = "лет";
ИначеЕслиПрав(Выборка.Поле1,1) = 1 Тогда
Год = "год";
ИначеЕсли Прав(Выборка.Поле1,1) >=2 и Прав(Выборка.Поле1,1) <=4 Тогда
Год = "года";
Иначе Год = "йцу";
КонецЕсли;
Используй ПолучитьСклоненияСтрокиПоЧислу
Как пример:
Как пример:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Пользователи.Наименование КАК Наименование,
| Пользователи.Ссылка КАК Ссылка,
| Пользователи.ДатаРождения КАК ДатаРождения
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| Пользователи.ДатаРождения МЕЖДУ &ДатаНачала И &ДатаКонец
|
|УПОРЯДОЧИТЬ ПО
| Пользователи.ДатаРождения";
Запрос.УстановитьПараметр("ДатаНачала",НачалоДня(ТекущаяДата()));
Запрос.УстановитьПараметр("ДатаКонец",КонецДня(ТекущаяДата()+3*86400));
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
// К примеру количество лет составило: 21
КоличествоЛет = Год(ТекущаяДата()) - Год(Выборка.ДатаРождения);
// К примеру количество лет строкой получилось: 21 год
КоличествоЛетСтрокой = ПолучитьСклоненияСтрокиПоЧислу("год", КоличествоЛет);
// Сообщение: Сотруднику Фамилия Имя Отчество 21 год
Сообщить(СтрШаблон("Сотруднику %1 %2", Выборка.Наименование, КоличествоЛетСтрокой));
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот