Имя: Пароль:
1C
1С v8
запрос с двумя временными таблицами. Какое соединение использовать?
0 Eeelena
 
20.05.16
15:21
Здравствуйте. Создаю запрос с двумя временными таблицами, в одной временной таблице список всех документов поступления, в другой список всех документов поступления, указанных в табличной части документа реализации, подскажите какое соединение таблиц использовать, чтобы получить список поступлений не указанных в документе реализация товаров???
1 Волшебник
 
модератор
20.05.16
15:21
левое внешнее
2 Dmitrii
 
гуру
20.05.16
15:25
(1) А чего ветку сразу не закрыл?... )
3 Eeelena
 
20.05.16
15:26
(1) вот так?
ВЫБРАТЬ
    ПоступлениеТоваровУслуг.Ссылка КАК Поступление
ПОМЕСТИТЬ Поступления
ИЗ
    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Поступление КАК ПоступлениеРеализованное
ПОМЕСТИТЬ ПоступленияРеализованные
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

СГРУППИРОВАТЬ ПО
    РеализацияТоваровУслугТовары.Поступление
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Поступления.Поступление КАК Поступление
ИЗ
    Поступления КАК Поступления
        ЛЕВОЕ СОЕДИНЕНИЕ ПоступленияРеализованные КАК ПоступленияРеализованные
        ПО (ИСТИНА)
4 Eeelena
 
20.05.16
15:27
(1) ой, извиняюсь. вот так
ВЫБРАТЬ
    ПоступлениеТоваровУслуг.Ссылка КАК Поступление
ПОМЕСТИТЬ Поступления
ИЗ
    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Поступление КАК ПоступлениеРеализованное
ПОМЕСТИТЬ ПоступленияРеализованные
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

СГРУППИРОВАТЬ ПО
    РеализацияТоваровУслугТовары.Поступление
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Поступления.Поступление КАК Поступление
ИЗ
    Поступления КАК Поступления
        ЛЕВОЕ СОЕДИНЕНИЕ ПоступленияРеализованные КАК ПоступленияРеализованные
        ПО (Поступления.Поступление = ПоступленияРеализованные.ПоступлениеРеализованное)
5 Dmitrii
 
гуру
20.05.16
15:31
Скорее так (хотя и это фигня):

ВЫБРАТЬ
    ПоступлениеТоваровУслуг.Ссылка КАК Поступление
ПОМЕСТИТЬ Поступления
ИЗ
    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    РеализацияТоваровУслугТовары.Поступление КАК ПоступлениеРеализованное
ПОМЕСТИТЬ ПоступленияРеализованные
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Поступления.Поступление КАК Поступление
ИЗ
    Поступления КАК Поступления
        ЛЕВОЕ СОЕДИНЕНИЕ ПоступленияРеализованные КАК ПоступленияРеализованные
        ПО (ПоступленияРеализованные.ПоступлениеРеализованное ЕСТЬ NULL)
6 Dmitrii
 
гуру
20.05.16
15:32
И зачем вообще тут пакет запросов с двумя временными таблицами, когда можно сделать одним запросом?
7 Eeelena
 
20.05.16
15:32
(5) может как то по другому запрос необходимо сформировать, помогите, пожалуйста
8 Eeelena
 
20.05.16
15:33
(6) если подскажите как правильнее, буду очень благодарна
9 AceVi
 
20.05.16
15:35
(4) Волшебник - забыл про условие.
Левое соединение + условие
ГДЕ ПоступленияРеализованные.ПоступлениеРеализованное ЕСТЬ NULL
Тебе надо научиться представлять что получаеться в резщультате запросов - пользуйся консолью запросов - в каждой конфе есть же.
10 zbv
 
20.05.16
15:35
вроде так:

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    Поступления.Поступление КАК Поступление
ИЗ
    Поступления КАК Поступления
        ЛЕВОЕ СОЕДИНЕНИЕ ПоступленияРеализованные КАК ПоступленияРеализованные
        ПО (Поступления.Поступление = ПоступленияРеализованные.ПоступлениеРеализованное)

где
ПоступленияРеализованные.ПоступлениеРеализованное ЕСТЬ NULL
11 AceVi
 
20.05.16
15:36
(8) Не надо благодарности, надо просто правила соблюдать - если поставила в графе пол - женский - будь добра фото - тогда сразу все помогут)
12 Eeelena
 
20.05.16
15:36
(9) спасибо, я использую консоль
13 Eeelena
 
20.05.16
15:41
делаю вот так

ВЫБРАТЬ
    ПоступлениеТоваровУслуг.Ссылка КАК Поступление
ПОМЕСТИТЬ Поступления
ИЗ
    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Поступление КАК ПоступлениеРеализованное
ПОМЕСТИТЬ ПоступленияРеализованные
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

СГРУППИРОВАТЬ ПО
    РеализацияТоваровУслугТовары.Поступление
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Поступления.Поступление КАК Поступление
ИЗ
    Поступления КАК Поступления
        ЛЕВОЕ СОЕДИНЕНИЕ ПоступленияРеализованные КАК ПоступленияРеализованные
        ПО (Поступления.Поступление = ПоступленияРеализованные.ПоступлениеРеализованное)
ГДЕ
    ПоступленияРеализованные.ПоступлениеРеализованное ЕСТЬ NULL

выводятся не те документы поступления
14 zbv
 
20.05.16
15:44
(13) в смысле "не те" ?

возможно надо ограничить документы поступления, по виду операции, например.

а правильнее надо к регистрам обращаться.
15 Eeelena
 
20.05.16
15:54
(14) спасибо, необходимо по дате ограничить
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший