Имя: Пароль:
1C
1С v8
Запрос с полным соединением
0 AnisaL
 
08.04.14
08:35
Доброе утро!
Необходимо соединить данные из 2 запросов.
Первый запрос к документам Поступлениям товаров и услуг к номенклатуре и количеству прихода по этой номенклатуре (например год). Второй запрос по номенклатуре и остатку на конец периода (на конец года) к регистру остатков организации. Необходимо соединить две таблицы в одну, причем если например на остатке товара нет, а приход был за год чтоб номенклатура была в результате запроса с 0 вместо остатка и наоборот, если остаток есть, а прихода не было, то тоже чтоб строчка была с 0 в колонке с количеством прихода.Вот что  у меня получилось пока
1 AnisaL
 
08.04.14
08:35
(0) ВЫБРАТЬ
    ПоступлениеТоваровУслугТовары.Номенклатура,
    СУММА(ПоступлениеТоваровУслугТовары.Количество) КАК Количество
ПОМЕСТИТЬ ПОСТУПЛЕНИЕ
ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ГДЕ
    ПоступлениеТоваровУслугТовары.Ссылка.Комментарий ПОДОБНО "%**%"
    И ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
    И ПоступлениеТоваровУслугТовары.Ссылка.Организация = &Организация

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыОрганизацийОстатки.Номенклатура КАК Номенклатура,
    ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    ЕСТЬNULL(ПОСТУПЛЕНИЕ.Количество, 0) КАК КоличествоПриход
ИЗ
    РегистрНакопления.ТоварыОрганизаций.Остатки(&ДатаКон, Организация = &Организация) КАК ТоварыОрганизацийОстатки
        ПОЛНОЕ СОЕДИНЕНИЕ ПОСТУПЛЕНИЕ КАК ПОСТУПЛЕНИЕ
        ПО ТоварыОрганизацийОстатки.Номенклатура = ПОСТУПЛЕНИЕ.Номенклатура

УПОРЯДОЧИТЬ ПО
    ТоварыОрганизацийОстатки.Номенклатура.Наименование
ИТОГИ
    СУММА(КоличествоОстаток),
    СУММА(КоличествоПриход)
ПО
    ОБЩИЕ,
    Номенклатура
2 shuhard
 
08.04.14
08:36
(0) объединить все
3 AnisaL
 
08.04.14
08:38
(2) это вместо полного соединения?
4 Wobland
 
08.04.14
08:39
точно к документам?
5 AnisaL
 
08.04.14
08:39
(4) да
6 Wobland
 
08.04.14
08:40
(5) "а приход был" - такое вот требование. точно к документам?
7 AnisaL
 
08.04.14
08:41
(1) этот запрос выдает правильные суммы количества, вот только есть пустые строки где номенклатура, и 0 не ставит, вместо него пусто
8 AnisaL
 
08.04.14
08:41
(6) в нашем случае "приход был" значит документ ПоступлениеТоваровУслуг
9 AnisaL
 
08.04.14
08:42
(8) + приход был за период - за год
10 Wobland
 
08.04.14
08:42
(7) оно тебе ноль так показывает что ли?
(8) не убедила
11 AnisaL
 
08.04.14
08:43
(10)не показывает
12 Wobland
 
08.04.14
08:43
(11) формат колдовала?
13 AnisaL
 
08.04.14
08:44
(10) понятно что приход может быть через авансовый или оприходование, но мы рассматриваем конкретный случай с поступлением
14 Wobland
 
08.04.14
08:45
(13) и не только. не хочу много писать
15 AnisaL
 
08.04.14
08:45
(12) там и номенклатуру не выдает еще где КоличествоОстатка нет, а приход есть
16 Wobland
 
08.04.14
08:46
(15) к номенклатуре тоже естьнулл прикрути
17 shuhard
 
08.04.14
08:46
(3) ясен пень
18 AnisaL
 
08.04.14
08:47
(16) прикручу, но что написать то..
19 Wobland
 
08.04.14
08:47
я вчера вот такое родил

    |    ВЫБОР
    |        КОГДА План.Номенклатура ЕСТЬ NULL
    |            ТОГДА Факт.Номенклатура
    |        КОГДА Факт.Номенклатура ЕСТЬ NULL
    |            ТОГДА План.Номенклатура
    |        ИНАЧЕ План.Номенклатура
    |    КОНЕЦ КАК Номенклатура,
20 Wobland
 
08.04.14
08:48
(18) естьнулл
21 AnisaL
 
08.04.14
08:48
(19) вот так попробую
22 shuhard
 
08.04.14
08:48
(19) ты неприятно удивил форум
23 AnisaL
 
08.04.14
08:49
(20) ЕСТЬNULL(ТоварыОрганизацийОстатки.Номенклатура, ПОСТУПЛЕНИЕ.Номенклатура)   КАК Номенклатура,
24 Wobland
 
08.04.14
08:50
(23) молодец
(22) это я хвастаюсь ;)
25 AnisaL
 
08.04.14
08:50
(24) а нули все равно не ставит
26 AnisaL
 
08.04.14
08:51
(25) + я через консоль запросов делаю
27 Wobland
 
08.04.14
08:51
(25) ты хочешь об этом поговорить или просто жалуешься?
28 Wobland
 
08.04.14
08:51
(26) зачем тебе "0" в консоли?
29 AnisaL
 
08.04.14
08:53
(28) так он там не должен выводиться?
30 Wobland
 
08.04.14
08:54
(29) где-то выводится, где-то нет, где-то надо включать
31 AnisaL
 
08.04.14
09:23
Забыла всех поблагодарить. Спасибо!!!
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший