Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:08

Помогите вывести список сотрудников (день рождения на сегодня)

Автор Алексей_1985_06, 09 мая 2020, 14:43

0 Пользователей и 1 гость просматривают эту тему.

Алексей_1985_06

Цитата: antoneus от 11 мая 2020, 12:16
Так период, за который днюхи надо выводить, вы как задаете? Вот от него начальную и конечную дату пихайте в запрос.

Что-то я совсем запутался.... Период задается реквизитами НачальнаяДата и КонечнаяДата (во вложении скрин), не совсем понимаю как запихнуть этот период в запрос? Простите за назойливость, учусь пока.......
|ГДЕ
|ДОБАВИТЬКДАТЕ(ЛичныйСостав.ДатаРождения, ГОД, &ТекущийГод - ГОД(ЛичныйСостав.ДатаРождения)) МЕЖДУ &ДатаНачала И &ДатаОкончания

Запрос.УстановитьПараметр("ТекущийГод", Год(Период.НачальнаяДата));
Запрос.УстановитьПараметр("ДатаНачала", Период.НачальнаяДата);
Запрос.УстановитьПараметр("ДатаОкончания", Период.КонечнаяДата);


antoneus

Начальная и конечная даты - это реквизиты объекта? Тогда так.

Запрос.УстановитьПараметр("ТекущийГод", Год(Объект.НачальнаяДата));
Запрос.УстановитьПараметр("ДатаНачала", Объект.НачальнаяДата);
Запрос.УстановитьПараметр("ДатаОкончания", Объект.КонечнаяДата);

Алексей_1985_06

Цитата: antoneus от 11 мая 2020, 14:25
Начальная и конечная даты - это реквизиты объекта? Тогда так.

Запрос.УстановитьПараметр("ТекущийГод", Год(Объект.НачальнаяДата));
Запрос.УстановитьПараметр("ДатаНачала", Объект.НачальнаяДата);
Запрос.УстановитьПараметр("ДатаОкончания", Объект.КонечнаяДата);


Все получилось!!!! Огромное Вам спасибо за терпение и профессионализм!!!!

Dethmontt

"ВЫБРАТЬ
| Ссылка,
| ДатаРождения
|ИЗ
| Справочник.ЛичныйСостав
|ГДЕ
|ВЫБОР КОГДА Месяц(&ДатаНач) > Месяц(&ДатаКон) ТОГДА
| Месяц(ДатаРождения) >= Месяц(&ДатаНач) или Месяц(ДатаРождения) <= Месяц(&ДатаКон)
|КОГДА Месяц(&ДатаНач) = Месяц(&ДатаКон) ТОГДА
| Месяц(ДатаРождения) = Месяц(&ДатаНач)
|Иначе
| Месяц(ДатаРождения) >= Месяц(&ДатаНач) или Месяц(ДатаРождения) <= Месяц(&ДатаКон) и Месяц(ДатаРождения) >= Месяц(&ДатаНач)
|КОНЕЦ

|ВЫБОР КОГДА Месяц(ДатаРождения) = Месяц(&ДатаНач) ТОГДА
| День(ДатаРождения) >= День(&ДатаНач)
|КОГДА Месяц(ДатаРождения) = Месяц(&ДатаКон) ТОГДА
| День(ДатаРождения) <= День(&ДатаКон)
|Иначе Истина КОНЕЦ"
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

LexaK

Dethmontt,
было уже предложено (выше) отличное решение

"ВЫБРАТЬ
|    Спр.Ссылка,
|    Спр.ДатаРождения
|ИЗ
|    Справочник.ЛичныйСостав Спр
|ГДЕ
|ДОБАВИТЬКДАТЕ(Спр.ДатаРождения, ГОД, &ТекущийГод - ГОД(Спр.ДатаРождения)) МЕЖДУ &ДатаНачала И &ДатаОкончания


а вот эта куча Г-на для чего? что в ней оптимального?


"ВЫБРАТЬ
|    Ссылка,
|    ДатаРождения
|ИЗ
|    Справочник.ЛичныйСостав
|ГДЕ
|ВЫБОР КОГДА Месяц(&ДатаНач) > Месяц(&ДатаКон) ТОГДА
|    Месяц(ДатаРождения) >= Месяц(&ДатаНач) или Месяц(ДатаРождения) <= Месяц(&ДатаКон)
|КОГДА Месяц(&ДатаНач) = Месяц(&ДатаКон) ТОГДА
|    Месяц(ДатаРождения) = Месяц(&ДатаНач)     
|Иначе
|    Месяц(ДатаРождения) >= Месяц(&ДатаНач) или Месяц(ДатаРождения) <= Месяц(&ДатаКон) и Месяц(ДатаРождения) >= Месяц(&ДатаНач)
|КОНЕЦ
|И   
|ВЫБОР КОГДА Месяц(ДатаРождения) = Месяц(&ДатаНач) ТОГДА
|    День(ДатаРождения) >= День(&ДатаНач)
|КОГДА Месяц(ДатаРождения) = Месяц(&ДатаКон) ТОГДА
|    День(ДатаРождения) <= День(&ДатаКон)
|Иначе Истина КОНЕЦ"
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск