Имя: Пароль:
1C
1С v8
Как преобразовать пустые ссылки в запросе?
0 Галахад
 
гуру
06.06.13
07:59
Простой зарос:

ВЫБРАТЬ
   ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК СубконтоДт1,
   ХозрасчетныйОборотыДтКт.СуммаОборот КАК СуммаОборот
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
           &Дата1,
           &Дата2,
           ,
           СчетДт = &СчетДт26
               ИЛИ СчетДт В ИЕРАРХИИ (&СчетДт44),
           ,
           ,
           ,
           ) КАК ХозрасчетныйОборотыДтКт

УПОРЯДОЧИТЬ ПО
   СубконтоДт1
ИТОГИ
   СУММА(СуммаОборот)
ПО
   СубконтоДт1 ТОЛЬКО ИЕРАРХИЯ


Если СубконтоДт1 заполнено, то возвращает нормальное дерево.
Иерархия как в справочнике "статьи затрат"

Если же СубконтоДт1 НЕ заполнено, то на корень дерева "пустая ссылка".
1 Галахад
 
гуру
06.06.13
08:01
Попробовал так изменить запрос:

ВЫБРАТЬ
   ВЫБОР
       КОГДА ХозрасчетныйОборотыДтКт.СубконтоДт1 = ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка)
           ТОГДА &Статья
       ИНАЧЕ ХозрасчетныйОборотыДтКт.СубконтоДт1
   КОНЕЦ КАК СубконтоДт1,
   ХозрасчетныйОборотыДтКт.СуммаОборот КАК СуммаОборот
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
           &Дата1,
           &Дата2,
           ,
           СчетДт = &СчетДт26
               ИЛИ СчетДт В ИЕРАРХИИ (&СчетДт44),
           ,
           ,
           ,
           ) КАК ХозрасчетныйОборотыДтКт

УПОРЯДОЧИТЬ ПО
   СубконтоДт1
ИТОГИ
   СУММА(СуммаОборот)
ПО
   СубконтоДт1 ТОЛЬКО ИЕРАРХИЯ


Но тут дерево вообще какое-то деревянное получается...
2 Галахад
 
гуру
06.06.13
08:03
(0) +

"Если же СубконтоДт1 НЕ заполнено, то на корень дерева "пустая ссылка"."

Читать как:
Если же встречаются НЕ заполненые СубконтоДт1 , то на корень дерева "пустая ссылка".
3 Defender aka LINN
 
06.06.13
08:34
(2) И что тебя смущает?
4 Галахад
 
гуру
06.06.13
08:50
(3) Хочу заменить пустую ссылку, на не пустую. А не получается.
5 mikecool
 
06.06.13
08:52
(4) там у тебя Неопределено, а не пустая ссылка
6 Галахад
 
гуру
06.06.13
08:55
(5) Запросник серым по белому пишет, что пустая ссылка.
7 mikecool
 
06.06.13
08:56
(6) и почему тогда ХозрасчетныйОборотыДтКт.СубконтоДт1 = ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка) не работает?
8 Defender aka LINN
 
06.06.13
08:57
(7) Магия
9 Галахад
 
гуру
06.06.13
09:00
(7) Только великий Одинэс знает.

Вопщем сделал вложенный. Заработало.

ВЫБРАТЬ
   ВложенныйЗапрос.СубконтоДт1 КАК СубконтоДт1,
   ВложенныйЗапрос.СуммаОборот КАК СуммаОборот
ИЗ
   (ВЫБРАТЬ
       ВЫБОР
           КОГДА ХозрасчетныйОборотыДтКт.СубконтоДт1 = ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка)
               ТОГДА &Статья
           ИНАЧЕ ХозрасчетныйОборотыДтКт.СубконтоДт1
       КОНЕЦ КАК СубконтоДт1,
       ХозрасчетныйОборотыДтКт.СуммаОборот КАК СуммаОборот
   ИЗ
       РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
               &Дата1,
               &Дата2,
               ,
               СчетДт = &СчетДт26
                   ИЛИ СчетДт В ИЕРАРХИИ (&СчетДт44),
               ,
               ,
               ,
               ) КАК ХозрасчетныйОборотыДтКт) КАК ВложенныйЗапрос

УПОРЯДОЧИТЬ ПО
   СубконтоДт1
ИТОГИ
   СУММА(СуммаОборот)
ПО
   СубконтоДт1 ТОЛЬКО ИЕРАРХИЯ
10 Vovan_Magadan
 
06.06.13
09:03
Ну если просто на скорую попробовать вместо:

КОГДА НЕ ХозрасчетныйОборотыДтКт.СубконтоДт1 IS NULL

или

КОГДА ХозрасчетныйОборотыДтКт.СубконтоДт1 <> Неопределенно
11 Vovan_Magadan
 
06.06.13
09:03
Ну если просто на скорую попробовать вместо:
КОГДА ХозрасчетныйОборотыДтКт.СубконтоДт1 = ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка)


-----------------------

КОГДА НЕ ХозрасчетныйОборотыДтКт.СубконтоДт1 IS NULL

или

КОГДА ХозрасчетныйОборотыДтКт.СубконтоДт1 <> Неопределенно
12 Галахад
 
гуру
06.06.13
09:07
(11) Попробовал. В обоих случаях дерево без веток, как в 1.
13 Ненавижу 1С
 
гуру
06.06.13
09:12
бугага, неопределено, пустые ссылки, NULL, что же там на самом деле?
14 Галахад
 
гуру
06.06.13
09:14
(13) Судя по (9) ответ однозначный.
15 mikecool
 
06.06.13
09:18
вот так заработает
выбор когда ХозрасчетныйОборотыДтКт.СубконтоДт1 ссылка Справочник.СтатьиЗатрат И ХозрасчетныйОборотыДтКт.СубконтоДт1 = ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка) тогда &Статья
16 mikecool
 
06.06.13
09:18
а так - там не неопределено, а Ненавижу 1С ))))))
17 Галахад
 
гуру
06.06.13
09:21
(15) Проверил. Не работает. Результат как в (1).
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший