Имя: Пароль:
1C
 
Выбрать все договора не имеющие категорию
0 1nvertex
 
31.10.14
19:42
Нужно выбрать все договора без категории "Самовывоз"
Запрос:

ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
    КатегорииОбъектов.Категория
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон,,) КАК ВзаиморасчетыСКонтрагентамиОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
        ПО ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента = КатегорииОбъектов.Объект И КатегорииОбъектов.Категория <> &КатегорияСамовывоз

В результат попадают все договора и самовывоз тоже, только категории у них стоят другие или "NULL".
Как исправить запрос?
1 Ненавижу 1С
 
гуру
31.10.14
19:46
ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
    КатегорииОбъектов.Категория
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон,,) КАК ВзаиморасчетыСКонтрагентамиОбороты
ГДЕ КатегорииОбъектов.Объект.Категория <> &КатегорияСамовывоз
2 1nvertex
 
31.10.14
19:49
(1) Тогда договора без категорий не попадают
3 Ненавижу 1С
 
гуру
31.10.14
19:52
ну ладно, тогда:

ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
    КатегорииОбъектов.Категория
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон,,) КАК ВзаиморасчетыСКонтрагентамиОбороты
ГДЕ КатегорииОбъектов.Объект.Категория <> &КатегорияСамовывоз

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
    КатегорииОбъектов.Категория
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон,,) КАК ВзаиморасчетыСКонтрагентамиОбороты
ГДЕ КатегорииОбъектов.Объект.Категория ЕСТЬ NULL
4 1nvertex
 
31.10.14
20:00
(3) Теперь договора задвоились. Категорий несколько, по каждой выводит отдельную строчку.
Завернуть во вложенный отчет и выбрать различные? =)))
А попроще ничего нельзя?
5 kosts
 
31.10.14
20:10
Не сильно понятно что надо, но вот так вижу

ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
    КатегорииОбъектов.Категория
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон,,) КАК ВзаиморасчетыСКонтрагентамиОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
        ПО ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента = КатегорииОбъектов.Объект
Где КатегорииОбъектов.Объект есть NULL или Не КатегорииОбъектов.Объект есть NULL и КатегорииОбъектов.Категория <> &КатегорияСамовывоз
6 1nvertex
 
31.10.14
20:24
(5) Задвоились договора, т.к. категорий много
.
Условия еще раз:
У договоров несколько категорий, нужно вывести договора у которых нет категории "Самовывоз"
.
Можно сгруппировать или выбрать различные, но запрос на самом деле на 3-4 страницы...
7 1nvertex
 
31.10.14
20:32
Решение найдено:

ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОбороты.Организация,
    ВзаиморасчетыСКонтрагентамиОбороты.Контрагент,
    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
    ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, , ) КАК ВзаиморасчетыСКонтрагентамиОбороты
ГДЕ
    НЕ ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента В
                (ВЫБРАТЬ
                    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента
                ИЗ
                    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, , ) КАК ВзаиморасчетыСКонтрагентамиОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
                        ПО
                            ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента = КатегорииОбъектов.Объект И КатегорииОбъектов.Категория = &КатегорияСамовывоз)
8 kosts
 
31.10.14
20:32
(6)

ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
    КатегорииОбъектов.Категория
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон,,) КАК ВзаиморасчетыСКонтрагентамиОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
        ПО ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента = КатегорииОбъектов.Объект и КатегорииОбъектов.Категория = &КатегорияСамовывоз
Где КатегорииОбъектов.Объект есть NULL
9 1cVandal
 
31.10.14
20:57
Может все же договорЫ
10 1nvertex
 
31.10.14
21:14
(8) Намного изящней моего решения, спасибо!
(9) Да, деревня я деревня =)
11 hhhh
 
01.11.14
04:02
(9) по новым правилам допускаются оба варианта: и договорА, и договорЫ.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.