Имя: Пароль:
1C
1С v8
Как в запросе выбрать по числу и месяцу?
0 Samir
 
21.12.16
10:04
Никак не соображу как по реквизиту справочника типа дата выбрать до числу и месяцу
Есть справочник ИнформационныеКарты, у него реквизит ДеньРождения, необходимо сделать запрос и выбрать например на 21.12
1 shuhard
 
21.12.16
10:05
(0) приведи к началу дня и сравни
2 Вафель
 
21.12.16
10:09
вычти год рождения
3 Вафель
 
21.12.16
10:10
и прибавь текущий год
4 Samir
 
21.12.16
10:10
(1) Это понятно, но как отобрать по числу и месяцу без года

Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |   ИнформационныеКарты.Ссылка
        |ИЗ
        |   Справочник.ИнформационныеКарты КАК ИнформационныеКарты";

    Запрос.УстановитьПараметр("ДеньРождения", ТекущаяДата());    
    РезультатЗапроса = Запрос.Выполнить();


Вот тут надо сравнить по дате и месяцу рождения, он же еще и год хватает
5 FIXXXL
 
21.12.16
10:12
МЕСЯЦ()
ДЕНЬ()
6 FIXXXL
 
21.12.16
10:13
(5) + ну или заведи служебные поля Месяц и День и по ним строй отбор при записи объекта выцепляй из даты и пиши в реквизиты
7 Samir
 
21.12.16
10:13
(5) Как влепить в запрос?
8 xaozai
 
21.12.16
10:15
ВЫБРАТЬ
    Спр.Дата
ИЗ
    Справочник.СпрСДатой КАК Спр
ГДЕ
    ДЕНЬ(Спр.Дата) = 21
    И МЕСЯЦ(Спр.Дата) = 12
9 xaozai
 
21.12.16
10:18
ВЫБРАТЬ
    Спр.Дата
ИЗ
    Справочник.СпрСДатой КАК Спр
ГДЕ
    ДЕНЬ(Спр.Дата) = ДЕНЬ(&ТекДата)
    И МЕСЯЦ(Спр.Дата) = МЕСЯЦ(&ТекДата)
10 marvak
 
21.12.16
10:20
Выбрать всех контрагентов у кого ДР входит в заданный интервал:

|ВЫБРАТЬ
|    Контрагенты.Ссылка КАК Контрагент,
|    Контрагенты.ДатаРождения КАК ДатаРождения
|ИЗ
|    Справочник.Контрагенты КАК Контрагенты

|ГДЕ
|    НЕ Контрагенты.ЭтоГруппа
|        И Контрагенты.ЮрФизЛицо = &ФизЛицо
|        И Контрагенты.ДатаРождения <> ДАТАВРЕМЯ(1,1,1)

|    И ВЫБОР
|    КОГДА ((ДОБАВИТЬКДАТЕ(Контрагенты.ДатаРождения, ГОД, (ГОД(&ДатаНач) - ГОД(Контрагенты.ДатаРождения))) >= &ДатаНач
|            И ДОБАВИТЬКДАТЕ(Контрагенты.ДатаРождения, ГОД, (ГОД(&ДатаНач) - ГОД(Контрагенты.ДатаРождения))) <= &ДатаКон)
|        ИЛИ (ДОБАВИТЬКДАТЕ(Контрагенты.ДатаРождения, ГОД, (ГОД(&ДатаКон) - ГОД(Контрагенты.ДатаРождения))) <= &ДатаКон
|            И ДОБАВИТЬКДАТЕ(Контрагенты.ДатаРождения, ГОД, (ГОД(&ДатаКон) - ГОД(Контрагенты.ДатаРождения))) >= &ДатаНач)) ТОГДА
|        ИСТИНА
|    ИНАЧЕ
|        ЛОЖЬ
|    КОНЕЦ
11 Samir
 
21.12.16
10:27
(9) Большое человеческое Вам спасибо.
Удачи Вам и хорошего Вам настроения