Имя: Пароль:
1C
 
Выбор в запросе в зависимости от условия
0 zbrhd13
 
naïve
06.06.24
15:21
Есть документ с двумя реквизитами, ДокументОдин, ДокументДва. В документе может быть заполнен либо ДокументОдин, либо ДокументДва. В зависимости от того, какой документ заполнен, в запросе нужно релизовать заполнение поля возраст по условию:

ВЫБОР
        |        КОГДА ГОД(ДокументПример.Пациент.ДатаРождения) = ГОД(ДокументПример.ДокументПримерОдинДата)
        |            ТОГДА 0
        |        КОГДА МЕСЯЦ(ДокументПример.Пациент.ДатаРождения) < МЕСЯЦ(ДокументПример.ДокументПримерОдинДата)
        |            ТОГДА ГОД(ДокументПример.ДокументПримерОдинДата) - ГОД(ДокументПример.Пациент.ДатаРождения)
        |        КОГДА МЕСЯЦ(ДокументПример.Пациент.ДатаРождения) = МЕСЯЦ(ДокументПример.ДокументПримерОдинДата)
        |                И ДЕНЬ(ДокументПример.Пациент.ДатаРождения) > ДЕНЬ(ДокументПример.ДокументПримерОдинДата)
        |            ТОГДА ГОД(ДокументПример.ДокументПримерОдинДата) - ГОД(ДокументПример.Пациент.ДатаРождения) - 1
        |        КОГДА МЕСЯЦ(ДокументПример.Пациент.ДатаРождения) = МЕСЯЦ(ДокументПример.ДокументПримерОдинДата)
        |                И ДЕНЬ(ДокументПример.Пациент.ДатаРождения) <= ДЕНЬ(ДокументПример.ДокументПримерОдинДата)
        |            ТОГДА ГОД(ДокументПример.ДокументПримерОдинДата) - ГОД(ДокументПример.Пациент.ДатаРождения)
        |        ИНАЧЕ ГОД(ДокументПример.ДокументПримерОдинДата) - ГОД(ДокументПример.Пациент.ДатаРождения) - 1
        |    КОНЕЦ КАК Возраст

В данном случае идет расчет по дате ДокументаОдин. А как реализовать расчет в этом же поле, если у меня будет заполнен ДокументДва?
1 Ёпрст
 
06.06.24
15:24
(0)

Ну так и Пиши

Когда ДокументПример.ДокументПримерОдинДата<>Значение(Документ.ТвойПример.ПустаяССылка) И ГОД(ДокументПример.Пациент.ДатаРождения) = ГОД(ДокументПример.ДокументПримерОдинДата)
        |            ТОГДА 0

и т.д
2 zbrhd13
 
naïve
06.06.24
15:49
(1) Спасибо, действительно, все оказалось просто)