Расчет возраста
При расчете возраста на платформе 1С: предприятие 8.3, я использую пользовательскую функцию расчета разницы в месяцах между двумя датами, а затем нужно делить на 12 месяцев. В результате деления на 12 почти всегда получается дробное число и поэтому нужно взять целую часть результата деления. Программный показано в следующем блоке:
&НаКлиенте
Функция РазностьМеждуДатамиВГадах(Дата1,Дата2)
Возврат Цел(РазностьМеждуДатамиВМесяцах(Дата1,Дата2)/12);
КонецФункции
&НаКлиенте
Функция РазностьМеждуДатамиВМесяцах(Дата1,Дата2)
Год1 = Год(Дата1);
Год2 = Год(Дата2);
Месяц1 = Месяц(Дата1);
Месяц2 = Месяц(Дата2);
День1 = День(Дата1);
День2 = День(Дата2);
Результат = (Год2 - Год1) * 12 + Месяц2 - Месяц1;
Если Результат < 0 Тогда Результат = 0 - Результат; КонецЕсли;
Если ((Дата1 > Дата2) И (День1 < День2)) ИЛИ ((Дата1 < Дата2) И (День1 > День2)) Тогда
Результат = Результат - 1;
КонецЕсли;
Возврат Результат;
КонецФункции
При расчете возраста в запросе нужно использовать функцию работы с датой языка запроса РАЗНОСТЬДАТ(<Дата1>, <Дата2>, <Тип>), где тип – это строка “ГОД”
Функция РазностьМеждуДатамиВГадах(Дата1,Дата2). Написано в гАдах.