Имя: Пароль:
1C
1С v8
Запрос по дате рождения
0 Kseniya_12345
 
17.11.15
16:20
Как вывести сотрудников, у которых в ближайшие три дня день рождения.
Сам запрос с условием даты между... Непонятно что делать с годом рождения
1 VikingKosmo
 
17.11.15
16:25
годом рождения пожертвовать
2 butterbean
 
17.11.15
16:26
анализировать МЕСЯЦ() и ДЕНЬ()
3 mxs089
 
17.11.15
16:28
разностьдат
4 VikingKosmo
 
17.11.15
16:28
(3) между чем и чем, а главное зачем?
5 Cyberhawk
 
17.11.15
16:28
"Непонятно что делать с годом рождения" // его нужно указать в профиле и фото не забыть туда прикрепить
6 Aceforg
 
17.11.15
16:29
(1) А вдруг юбиляр?
7 Горогуля
 
17.11.15
16:29
(4) для определения вхождения в минус три дня от сейчас
8 sapphire
 
17.11.15
16:31
(0) Как это непонятно? :)

Грубо, имеем поле запроса "ДатаРождения" и параметр &Сегодня,
тогда условие будет выглядеть так

DATEDIFF(&Сегодня,DATEADD(ДатаРождения,Year,DATEDIFF(ДатаРождения,&Сегодня,Year)),DAY) BETWEEN 1 AND 3

Пример:
SELECT
    ДатаРождения
   ,DATEDIFF(ДатаРождения,&Сегодня,Year) Лет     
   ,DATEADD(ДатаРождения,Year,DATEDIFF(ДатаРождения,&Сегодня,Year)) ВЭтомГоду
   ,&Сегодня Сегодня        
FROM
(
SELECT
     ДатаВремя(1974,1,8) ДатаРождения
) Данные    
WHERE
    DATEDIFF(&Сегодня,DATEADD(ДатаРождения,Year,DATEDIFF(ДатаРождения,&Сегодня,Year)),DAY) BETWEEN 1 AND 3
9 CHerypga
 
17.11.15
16:33
В ЗУПе 2.5 есть отчет Списки сотрудников. В нем есть и дата рождения и возраст и все что душе угодно. Там можно подсмотреть пример
10 sapphire
 
17.11.15
16:34
(9) Зачем?! :)
11 mxs089
 
17.11.15
16:39
(4) РАЗНОСТЬДАТ(&Дата, ДОБАВИТЬКДАТЕ(Дата, ГОД, РАЗНОСТЬДАТ(Дата, &Дата, ГОД)), ДЕНЬ)
12 mxs089
 
17.11.15
16:40
©
13 Живой Ископаемый
 
17.11.15
16:42
ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&Дата, ДЕНЬ, -356 * 24) КАК ДатаРождения
ПОМЕСТИТЬ ДниРождения

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&Дата, ДЕНЬ, -356 * 40+4)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    РАЗНОСТЬДАТ(ДниРождения.ДатаРождения, &Дата, ДЕНЬ) КАК Поле1,
    РАЗНОСТЬДАТ(ДниРождения.ДатаРождения, &Дата, МЕСЯЦ) КАК Поле2,
    РАЗНОСТЬДАТ(ДниРождения.ДатаРождения, &Дата, ГОД) КАК Поле3,
    РАЗНОСТЬДАТ(ДниРождения.ДатаРождения, &Дата, ДЕНЬ) - (РАЗНОСТЬДАТ(ДниРождения.ДатаРождения, &Дата, ГОД)+1) * 356 КАК ПОЛЕ4
ИЗ
    ДниРождения КАК ДниРождения
ГДЕ
    (РАЗНОСТЬДАТ(ДниРождения.ДатаРождения, &Дата, ДЕНЬ) - (РАЗНОСТЬДАТ(ДниРождения.ДатаРождения, &Дата, ГОД) + 1) * 356 < 4) И ( РАЗНОСТЬДАТ(ДниРождения.ДатаРождения, &Дата, ДЕНЬ) - (РАЗНОСТЬДАТ(ДниРождения.ДатаРождения, &Дата, ГОД) + 1) * 356  > -4)
14 Живой Ископаемый
 
17.11.15
16:44
15 mxs089
 
17.11.15
16:45
(14) а видео не снимешь?
16 Живой Ископаемый
 
17.11.15
16:45
снимаю, сейчас не снял
17 Живой Ископаемый
 
17.11.15
16:47
чорд, только в году 365 дней а не 356. :)
18 mxs089
 
17.11.15
16:48
(17) косипор, делай новые скрины
19 kumena
 
17.11.15
16:48
>> Как вывести сотрудников, у которых в ближайшие три дня день рождения.

взять отчет списки сотрудников организаций и поставит отбор на ближайший день рождения (не путайте с датой рождения)
20 kumena
 
17.11.15
16:49
можно даже юбиляров отдельно вывести
21 mxs089
 
17.11.15
16:49
(20) это вообще не спортивно
22 kumena
 
17.11.15
16:55
(21) не спортивно фигней всякой заниматься через 10 лет 1са, которая давно сделана.

и запрос можно усложнить, добавить подразделение, где работает сотрудник, многие уже тут его грамотно не напишут хотя отчет и это умеет.
23 mxs089
 
17.11.15
16:57
(22) 1с-ка сама по 100 раз один и тот же функционал разрабатывает...
24 almar
 
17.11.15
17:45
У меня есть динамический список, показывающий дни рождения сотрудников от -10 дней от сегодня (вдруг кого пропустили поздравить) и дальше
ВЫБОР КОГДА ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(СправочникСотрудники.ДатаРождения, ГОД, ГОД(&ТекущаяДата) - ГОД(СправочникСотрудники.ДатаРождения)),ДЕНЬ,10) <= &ТекущаяДата    ТОГДА ДОБАВИТЬКДАТЕ(СправочникСотрудники.ДатаРождения, ГОД, ГОД(&ТекущаяДата) + 1 - ГОД(СправочникСотрудники.ДатаРождения))         ИНАЧЕ ДОБАВИТЬКДАТЕ(СправочникСотрудники.ДатаРождения, ГОД, ГОД(&ТекущаяДата) - ГОД(СправочникСотрудники.ДатаРождения))    КОНЕЦ КАК ДеньРождения,
25 sapphire
 
18.11.15
10:55
Что-то пропала ТС :)
26 Kseniya_12345
 
23.11.15
15:38
(25) увязла в 1с
вопрос решен
2 + 2 = 3.9999999999999999999999999999999...