Имя: Пароль:
1C
1C 7.7
v7: Функция COALESCE
0 pofigos
 
16.07.13
12:47
Добрый день. Могли бы пояснить работу функции COALESCE из запроса:

|INNER JOIN (SELECT Документы.ID ДокументыСсылка
       |            , $Документы.СсылкаНаДокумент СсылкаНаДокумент
       |            , Подзапрос1.Склад Склад
       |        FROM $Справочник.Документы AS Документы
       |            LEFT JOIN (SELECT Журнал.IDDOC Документ
       |                , COALESCE($ДокТТН.МОЛ, $ДокАкт.МОЛ, $ДокВозвр.МОЛ) Склад
       |                FROM _1SJourn Журнал
       |                    LEFT JOIN    $Документ.ТТННаОрганизациюТовары as ДокТТН  ON Журнал.IDDoc = ДокТТН.IDDoc
       |                    LEFT JOIN    $Документ.АктПриема as ДокАкт ON ДокАкт.IDDoc = Журнал.IDDoc
       |                    LEFT JOIN    $Документ.ВозвратИзОрганизацииТоваров as ДокВозвр ON ДокВозвр.IDDoc = Журнал.IDDoc) as Подзапрос1 ON Подзапрос1.Документ = $Документы.СсылкаНаДокумент "+ФильтрПодзапрос1+"
       |) AS ПодзапросДок ON ПодзапросДок.ДокументыСсылка = РеализацияОбороты.Накладная

Судя по описанию, данная функция должна возвращать первое выражение из списка аргументов, не равное NULL.
Исходя из данного подзапроса, выдает значение равное NULL. Не могу понять, как верно составить подзапрос.
1 Mikeware
 
16.07.13
12:48
значит, у тебя все они Нулл
2 pofigos
 
16.07.13
12:50
(1) Согласился бы. но значение ПодзапросДок.СсылкаНаДокумент выводит верный документ и поле шапки там заполнено.
3 pofigos
 
16.07.13
12:51
(0)"+ФильтрПодзапрос1+" можно убрать из запроса. Он равен ""