//Функция подбирает окончание для возраста Функция СтрГода(Возраст) Остаток = Возраст%10; Если Остаток = 1 Тогда Стр = "год"; ИначеЕсли ((Остаток > 1) и (Остаток < 5)) Тогда Стр = "года"; Иначе Стр = "лет"; КонецЕсли; Возврат Стр; КонецФункции //Формируем дни рождения Сотрудников Процедура ДниРожденияСотрудников() ТекстДР=""; Именинники = СоздатьОбъект("СписокЗначений"); СпрСотр = СоздатьОбъект("Справочник.Сотрудники"); СпрСотр.ВыбратьЭлементы(); Пока СпрСотр.ПолучитьЭлемент()= 1 Цикл ТекЭлем = СпрСотр.ТекущийЭлемент(); Если ТекЭлем.ЭтоГруппа() = 0 Тогда Если ((ТекЭлем.Родитель <> "Уволенные")) Тогда ТекСотр = СпрСотр.ТекущийЭлемент(); Если (ПустоеЗначение(ТекСотр.СостояниеФизЛица.Получить(НачМесяца(ТекущаяДата()))) = 0) Тогда Если (ДатаМесяц(ТекСотр.ДатаРождения) = ДатаМесяц(ТекущаяДата())) Тогда Именинники.ДобавитьЗначение(ТекСотр); КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; Если Именинники.РазмерСписка() <> 0 Тогда ТекстДР=ТекстДР+" ********* СПИСОК ИМЕНИННИКОВ *********"+РазделительСтрок+" за месяц "+Формат(ТекущаяДата(),"ДММММ")+РазделительСтрок; ТекстДР=ТекстДР+"-----------------------------------------------------------------------------------------------------------------------------------------------"+РазделительСтрок; Для к = 1 по Именинники.РазмерСписка() Цикл Сотр = Именинники.ПолучитьЗначение(к); Возраст = (Число(ДатаГод(ТекущаяДата()))-Число(ДатаГод(Сотр.ДатаРождения))); РазницаДней = (Число(ДатаЧисло(Сотр.ДатаРождения))-Число(ДатаЧисло(ТекущаяДата()))); СтрГода = СтрГода(Возраст); Если (ДатаЧисло(Сотр.ДатаРождения) < ДатаЧисло(ТекущаяДата())) Тогда ТекстДР=ТекстДР+" "+Сотр+" "+Сотр.ДатаРождения+" уже исполнилось "+Возраст+" "+СтрГода+"!"+РазделительСтрок; Иначе Если (РазницаДней = 2) Тогда ТекстДР=ТекстДР+"ПОСЛЕЗАВТРА! "+Сотр+" послезавтра "+Сотр.ДатаРождения+" будет праздновать " + Возраст + "-й День Рождения!!!! "; ИначеЕсли (РазницаДней = 1) Тогда ТекстДР=ТекстДР+"ЗАВТРА! "+ Сотр + " будет отмечает свой " + Возраст + "-й День рождения!"; ИначеЕсли (РазницаДней = 0) Тогда ТекстДР=ТекстДР+"СЕГОДНЯ! "+ Сотр + " отмечает свой " + Возраст + "-й День рождения!"; КонецЕсли; ТекстДР=ТекстДР+" ( "+Сотр.Подразделение.Получить(ТекущаяДата())+" , "+Сотр.Должность.Получить(ТекущаяДата())+" )"+РазделительСтрок; КонецЕсли; КонецЦикла; Иначе ТекстДР=ТекстДР+"В текущем месяце именинников нет!"; КонецЕсли; Сообщить(ТекстДР); КонецПроцедуры