Что не так голова не варит, второй час ночи помогите
При старте системы нужно сообщать сотрудников, у которых в ближайшие 3 дня
день рождения.

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Сотрудники.Фамилия,
    | Сотрудники.Имя,
    | Сотрудники.Отчество,
    | Сотрудники.ДатаРождения
    |ИЗ
    | Справочник.Сотрудники КАК Сотрудники
    |ГДЕ
    | Сотрудники.ДатаРождения МЕЖДУ &ДатаНачала И &ДатаКонец";

    Запрос.УстановитьПараметр("ДатаКонец", НачалоДня(ТекущаяДата()));
    Запрос.УстановитьПараметр("ДатаНачала", КонецДня(ТекущаяДата()+3*86400));

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

    КонецЦикла;
    Сообщить("Скоро День Рождения " + ВыборкаДетальныеЗаписи.Фамилия + ВыборкаДетальныеЗаписи.Имя+ВыборкаДетальныеЗаписи.ДатаРождения);
```
---
```1c
    РезультатЗапроса = Запрос.Выполнить();
    Если РезультатЗапроса.Пустой() = Ложь Тогда
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Сообщить("Скоро День Рождения " + ВыборкаДетальныеЗаписи.Фамилия +
    ВыборкаДетальныеЗаписи.Имя+ВыборкаДетальныеЗаписи.ДатаРождения);
    КонецЦикла;
    Иначе
    Сообщить("Именинников -нет");
    КонецЕсли;
```
---
```1c
    |ГДЕ
    | ДЕНЬ(Сотрудники.ДатаРождения) МЕЖДУ &ДеньНачала И &ДеньКонец
    |И
    | МЕСЯЦ(Сотрудники.ДатаРождения) МЕЖДУ &МесяцНачала И &МесяцКонец
    | ";

    Запрос.УстановитьПараметр("ДеньНачала", День(ТекущаяДата());
    Запрос.УстановитьПараметр("ДеньКонец", День(ТекущаяДата() + 3);
    Запрос.УстановитьПараметр("МесяцНачала", Месяц(ТекущаяДата());
    Запрос.УстановитьПараметр("МесяцКонец", Месяц(ТекущаяДата() + 3);
```
---
ДатаНачала у тебя получилась больше, чем ДатаКонец.
---
Да поменял, но суть не изменилась итога нет
---
"Сообщить" бы ещё хорошо в цикл убрать.
---
Пробовал, тогда вообще не выводит сообщение
---
покажи чему равны параметры и данные в регистре. Написал тарабарщину, такой и результат получил.
---
```1c
    РезультатЗапроса = Запрос.Выполнить();
    Если РезультатЗапроса.Пустой() = Ложь Тогда
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Сообщить("Скоро День Рождения " + ВыборкаДетальныеЗаписи.Фамилия +
    ВыборкаДетальныеЗаписи.Имя+ВыборкаДетальныеЗаписи.ДатаРождения);
    КонецЦикла;
    Иначе
    Сообщить("Именинников -нет");
    КонецЕсли;
```
---
Спасибо
---
Только ложь всегда срабатывает
---
А у тебя в справочнике Сотрудники поле ДатаРождения точно имеет тип Дата? Есть ли сотрудники, у которых дата рождения точно попадает в выбранный тобой период?
---
в результате запроса ?
---
ДатаРождения вряд ли может быть равна ТекущаяДата()
---
```1c
    |ГДЕ
    | ДЕНЬ(Сотрудники.ДатаРождения) МЕЖДУ &ДеньНачала И &ДеньКонец
    |И
    | МЕСЯЦ(Сотрудники.ДатаРождения) МЕЖДУ &МесяцНачала И &МесяцКонец
    | ";

    Запрос.УстановитьПараметр("ДеньНачала", День(ТекущаяДата());
    Запрос.УстановитьПараметр("ДеньКонец", День(ТекущаяДата() + 3);
    Запрос.УстановитьПараметр("МесяцНачала", Месяц(ТекущаяДата());
    Запрос.УстановитьПараметр("МесяцКонец", Месяц(ТекущаяДата() + 3);
```
---
Там , конечно, есть нюанс - 29 февраля, но у меня за всю бытность работы в торговле, только 4 человека встретилось
---
посмотрите, пожалуйста, соответствие скобок , в выражениях установки параметров...Тоже уже ко сну клонит ....((((
---
Спасибо огромное уже посмотрел
---
ок, удачи