Имя: Пароль:
1C
1С v8
Запрос СпособОтраженияВБухучете
0 capllary_
surgut
 
28.08.15
09:17
Всех с Пятницой) Мозг отказывается работать...
Подскажите почему если какой-то вложенный запрос возвращает NULL тогда и остальные значения то NULL

ВЫБРАТЬ
    ПоСотруднику.СпособОтраженияВБухучете,
    ПоПодразделению.СпособОтраженияВБухучете КАК СпособОтраженияВБухучете1,
    ГПХ.СпособОтраженияВБухучете КАК СпособОтраженияВБухучете2
ИЗ
    (ВЫБРАТЬ
        ВЫБОР
            КОГДА УчетОсновногоЗаработкаРаботниковОрганизацииВРегламентированномУчетеСрезПоследних.СпособОтраженияВБухучете ЕСТЬ НЕ NULL
                ТОГДА УчетОсновногоЗаработкаРаботниковОрганизацииВРегламентированномУчетеСрезПоследних.СпособОтраженияВБухучете
            ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СпособыОтраженияЗарплатыВРеглУчете.ПустаяСсылка)
        КОНЕЦ КАК СпособОтраженияВБухучете
    ИЗ
        РегистрСведений.УчетОсновногоЗаработкаРаботниковОрганизацииВРегламентированномУчете.СрезПоследних(, ) КАК УчетОсновногоЗаработкаРаботниковОрганизацииВРегламентированномУчетеСрезПоследних
    ГДЕ
        УчетОсновногоЗаработкаРаботниковОрганизацииВРегламентированномУчетеСрезПоследних.Период < &Дата
        И УчетОсновногоЗаработкаРаботниковОрганизацииВРегламентированномУчетеСрезПоследних.Сотрудник = &Сотрудник) КАК ПоСотруднику,
    (ВЫБРАТЬ
        ВЫБОР
            КОГДА УчетОсновногоЗаработкаРаботниковПодразделенияОрганизацииСрезПоследних.СпособОтраженияВБухучете ЕСТЬ НЕ NULL
                ТОГДА УчетОсновногоЗаработкаРаботниковПодразделенияОрганизацииСрезПоследних.СпособОтраженияВБухучете
            ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СпособыОтраженияЗарплатыВРеглУчете.ПустаяСсылка)
        КОНЕЦ КАК СпособОтраженияВБухучете
    ИЗ
        РегистрСведений.УчетОсновногоЗаработкаРаботниковПодразделенияОрганизации.СрезПоследних(, ) КАК УчетОсновногоЗаработкаРаботниковПодразделенияОрганизацииСрезПоследних
    ГДЕ
        УчетОсновногоЗаработкаРаботниковПодразделенияОрганизацииСрезПоследних.Период < &Дата
        И УчетОсновногоЗаработкаРаботниковПодразделенияОрганизацииСрезПоследних.ПодразделениеОрганизации = &ПодразделениеОрганизации) КАК ПоПодразделению,
    (ВЫБРАТЬ
        ВЫБОР
            КОГДА РеглУчетПлановыхНачисленийРаботниковОрганизацийСрезПоследних.СпособОтраженияВБухучете ЕСТЬ НЕ NULL
                ТОГДА РеглУчетПлановыхНачисленийРаботниковОрганизацийСрезПоследних.СпособОтраженияВБухучете
            ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СпособыОтраженияЗарплатыВРеглУчете.ПустаяСсылка)
        КОНЕЦ КАК СпособОтраженияВБухучете
    ИЗ
        РегистрСведений.РеглУчетПлановыхНачисленийРаботниковОрганизаций.СрезПоследних(, ) КАК РеглУчетПлановыхНачисленийРаботниковОрганизацийСрезПоследних
    ГДЕ
        РеглУчетПлановыхНачисленийРаботниковОрганизацийСрезПоследних.Период < &Дата
        И РеглУчетПлановыхНачисленийРаботниковОрганизацийСрезПоследних.Сотрудник = &Сотрудник) КАК ГПХ
1 aka_kumena
 
28.08.15
09:22
если расскажешь изначальную проблему, то шансов помочь вам будет гораздо больше!
2 capllary_
surgut
 
28.08.15
09:23
Когда удаляю два вложенных запроса и оставляю только один тогда все хорошо.
3 capllary_
surgut
 
28.08.15
09:24
(1) Есть три Рг из которых в порядке очередности надо получить значение справочника СпособыОтраженияЗарплатыВРеглУчете.
4 capllary_
surgut
 
28.08.15
09:26
1. Проверка по Рг УчетОсновногоЗаработкаРаботниковОрганизацииВРегламентированномУчете
2. Проверка по Рг УчетОсновногоЗаработкаРаботниковПодразделенияОрганизации
3. Проверка по Рг РеглУчетПлановыхНачисленийРаботниковОрганизаций

В такой очередности.
5 capllary_
surgut
 
28.08.15
09:27
(4+ второй пункт с третьим перепутал
6 capllary_
surgut
 
28.08.15
09:29
И почему то ЕСТЬNULL(УчетОсновногоЗаработкаРаботниковПодразделенияОрганизацииСрезПоследних.СпособОтраженияВБухучете, 0) значение 0 не возвращает.
7 piter3
 
28.08.15
09:31
справочник с 0 зачем?
8 capllary_
surgut
 
28.08.15
09:37
(7) Чтоб вложенный запрос, если он пустое значение возвращает выдавал хотя бы 0.
9 hhhh
 
28.08.15
09:41
(8) вложенный запрос никогда не возвращает NULL. Поэтому непонятно, чего ждешь от ЕСТЬNULL ??
10 capllary_
surgut
 
28.08.15
09:42
(9) Не знал.
11 hhhh
 
28.08.15
09:44
(10) ЕСТЬNULL проверяет значение на равно NULL. Всякие пустые значения ему абослютно до лампочки. Что там пустое, что не пустое, какая ему разница.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.