Имя: Пароль:
1C
1С v8
Подскажите с соединением в запросе
0 ОМЭЗ
 
14.12.15
13:46
РегистрНакопления.ПланыДвиженияДенежныхСредств.Обороты(&НачалоПериода, &КонецПериода, ) КАК пртПланыДвиженияДенежныхСредствОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
        ПО ПланыДвиженияДенежныхСредствОбороты.Контрагент = ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент
            И ПланыДвиженияДенежныхСредствОбороты.ДоговорКонтрагента = ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента
            И ПланыДвиженияДенежныхСредствОбороты.Сделка = ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка
            И ПланыДвиженияДенежныхСредствОбороты.Период <= ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период

Вопрос вот в чем:
Есть оплата только по договору без ЗАКАЗА и из-за этой строки не срабатывает запрос И ПланыДвиженияДенежныхСредствОбороты.Сделка = ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка
Как это обойти?
1 бомболюк
 
14.12.15
13:49
И (ПланыДвиженияДенежныхСредствОбороты.Сделка = ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка ИЛИ ВзаиморасчетыСКонтрагентами.Сделка = НЕОПРЕДЕЛЕНО)
2 ОМЭЗ
 
14.12.15
13:53
(1)Не сработало, оплата не попала в отчет
3 FIXXXL
 
14.12.15
13:58
сделай через ОБЪЕДЕНИТЬ еще один запрос с пустой сделкой
4 ОМЭЗ
 
14.12.15
14:00
эт как?
5 FIXXXL
 
14.12.15
14:01
(4) выбери то, что не попадает во втором запросе и объедини результат с первым
6 drjc
 
14.12.15
14:06
ИЛИ ВзаиморасчетыСКонтрагентами.Сделка есть NULL
7 ОМЭЗ
 
14.12.15
14:14
(6) тож не помогло
8 drjc
 
14.12.15
14:22
сделай две таблицы ВзаиморасчетыСКонтрагентамиОстаткиИОбороты одну с заполненной сделкой, вторую с пустой, и соедини с обеими
9 drjc
 
14.12.15
14:48
(6) там чушь написал. У тебя в регистре, если сделка не заполнена похоже ПустаяСсылка пишется в измерение. Поможет что-то типа "ИЛИ ВзаиморасчетыСКонтрагентами.Сделка = Значение(Документ.ЗаказПокупателя.ПустаяСсылка)" только придется все типы измерения перечислить, что некрасиво совсем.
10 FIXXXL
 
14.12.15
14:49
(9) при составном типе Сделки там может лежать много чего
11 drjc
 
14.12.15
14:58
(10)  да я про это и написал, но и выбрать в отдельную таблицу записи с незаполненной Сделкой такая же проблема
12 бомболюк
 
14.12.15
15:16
тип какой у ВзаиморасчетыСКонтрагентами.Сделка?
13 бомболюк
 
14.12.15
15:16
в общем пофиг, так поможет:
И (ПланыДвиженияДенежныхСредствОбороты.Сделка = ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка ИЛИ ВзаиморасчетыСКонтрагентами.Сделка.Ссылка ЕСТЬ NULL)
14 ОМЭЗ
 
14.12.15
22:17
(12)Тип Неопределено
(13) Не помогло
15 denis_jj
 
15.12.15
09:05
(14) как вариант можно попробовать заменить условие соединения

Выбор когда ТипЗнч(ПланыДвиженияДенежныхСредствОбороты.Сделка) = неопределено Тогда
Истина
Иначе
ПланыДвиженияДенежныхСредствОбороты.Сделка = ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка Конец
16 denis_jj
 
15.12.15
09:07
к (15) напутал, ТИПЗНАЧЕНИЯ() в запросе используется вместо ТипЗнч.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший