Имя: Пароль:
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. Всякие пустые значения ему абослютно до лампочки. Что там пустое, что не пустое, какая ему разница.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший