Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Есть запрос в котором связана номенклатура из табличной части документа со всей

Есть запрос в котором связана номенклатура из табличной части документа со всей
Я
   Ivan_495
 
03.11.16 - 15:27
Есть запрос в котором связана номенклатура из табличной части документа со всей номенклатурой из справочника номенклатуры, в том числе с номенклатурой расположенной внутри групп элементов? В справочнике номенклатуры используется иерархия элементов.

При этом получаются все аналоги номенклатуры общим списком.
Как исправить запрос, чтобы аналоги были отдельно, сначала для одной номенклатуры , потом для другой?

ВЫБРАТЬ
    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
    СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
    СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма,
    РасходнаяНакладнаяСписокНоменклатуры.НомерСтроки КАК НомерСтроки
ПОМЕСТИТЬ ДокТЧ
ИЗ
    Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
ГДЕ
    РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
    РасходнаяНакладнаяСписокНоменклатуры.НомерСтроки

ИНДЕКСИРОВАТЬ ПО
    НомерСтроки
;

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

ВЫБРАТЬ
    ДокТЧ.Номенклатура КАК Номенклатура,
    Ном.Ссылка КАК Аналог,
    ВЫБОР
        КОГДА Ном.Ссылка = ДокТЧ.Номенклатура
            ТОГДА 1
        ИНАЧЕ 2
    КОНЕЦ КАК Приоритет
    ИЗ
    ДокТЧ КАК ДокТЧ
        ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Ном
        ПО ДокТЧ.Номенклатура = Ном.Ссылка
ГДЕ
    Ном.Ссылка В ИЕРАРХИИ
            (ВЫБРАТЬ
                ДокТч.Номенклатура
            ИЗ
                ДокТч)
 
 
   bodri
 
1 - 03.11.16 - 15:30
группировка с начало номенклатура, а потом аналог
   iITmenedger
 
2 - 03.11.16 - 15:31
(0) а вот это зачем
 ВЫБОР
        КОГДА Ном.Ссылка = ДокТЧ.Номенклатура
            ТОГДА 1
        ИНАЧЕ 2
    КОНЕЦ КАК Приоритет

правильнее проверять на ЕСТЬNULL

И почему используешь именно ПОЛНОЕ СОЕДИНЕНИЕ?
   Ivan_495
 
3 - 03.11.16 - 15:38
   Ivan_495
 
4 - 03.11.16 - 15:39
в (3) результат работы запроса
в первой колонке вместо NULL д.б. номенклатура связанная с аналогами во второй колонке
   d546
 
5 - 03.11.16 - 15:43
И почему используешь именно ПОЛНОЕ СОЕДИНЕНИЕ?
   d546
 
6 - 03.11.16 - 15:43
флеш-моб :)
   DrShad
 
7 - 03.11.16 - 15:44
я за попкорном
   Ivan_495
 
8 - 03.11.16 - 15:52
при полном соединении попадают все нужные элементы
   iITmenedger
 
9 - 03.11.16 - 15:52
(4)у тебя при соединении номенклатура связывается сама с собой:

ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Ном
        ПО ДокТЧ.Номенклатура = Ном.Ссылка


"в первой колонке вместо NULL д.б. номенклатура связанная с аналогами во второй колонке"

Правильнее использовать ЕСТЬNULL()
   iITmenedger
 
10 - 03.11.16 - 15:55
(8) Если при выборке элемента номенклатуры у тебя не будет найдено такой номенклатуры в ТЧ Документа у тебя будет ДокТЧ.Номенклатура = NULL в первой колонке, во второй ты просто получишь Номенклатуру

В чем смысл этого всего?
 
 Рекламное место пустует
   Ivan_495
 
11 - 03.11.16 - 16:12
основной смысл здесь
ГДЕ
    Ном.Ссылка В ИЕРАРХИИ
            (ВЫБРАТЬ
                ДокТч.Номенклатура

            ИЗ
                ДокТч)
но это для спецов
   Ivan_495
 
12 - 03.11.16 - 16:13
если есть специалисты подскажите
   azernot
 
13 - 03.11.16 - 16:18
Если аналог - это любая номенклатура лежащая в той же группе, то проще соединять по родителю, и слева:

 ДокТЧ КАК ДокТЧ
        Левое СОЕДИНЕНИЕ Справочник.Номенклатура КАК Ном
        ПО ДокТЧ.Номенклатура.Родитель = Ном.Родитель

Тогда и эта муть
 Ном.Ссылка В ИЕРАРХИИ
            (ВЫБРАТЬ
                ДокТч.Номенклатура
не нужна
   iITmenedger
 
14 - 03.11.16 - 16:21
(11) о каких спецах ты говоришь?

Смысл полного соединения если ты делаешь условие по номенклатуре из ТЧ документа??? ты сам понимаешь что делаешь?
   DrShad
 
15 - 03.11.16 - 16:28
(14) ты не спец ))))
   iITmenedger
 
16 - 03.11.16 - 16:32
(15) аха-ха-ха)))) точно нужны спецы по обсуждению ламерских корявых запросов
   DrShad
 
17 - 03.11.16 - 16:36
(16) обсуждению!? акстись ирод
   iITmenedger
 
18 - 03.11.16 - 16:40
(17) не понимаю твоего черного юмора)))
   DrShad
 
19 - 03.11.16 - 16:41
(18) запомни ТС, потом поймешь
   iITmenedger
 
20 - 03.11.16 - 16:44
(19)ТС делает ПОЛНОЕ СОЕДИНЕНИЕ и при этом ограничивает в условии выборку
Ном.Ссылка В ИЕРАРХИИ
            (ВЫБРАТЬ
                ДокТч.Номенклатура

Я не вижу, что этот запрос написан спецом
   Ivan_495
 
21 - 03.11.16 - 19:39
это решение задачи 1.19 экзамена на спеца
   Ivan_495
 
22 - 03.11.16 - 19:40
кто решал, просьба прокомментировать
   bootini
 
23 - 03.11.16 - 19:59
Толком то объясни как аналог с номенклатурой связан, тебе (13) ответили, что через родителя если аналоги это вся номенклатура одной группы.
   Ivan_495
 
24 - 04.11.16 - 12:52
да связь через родителя, но не так просто как в (13),есть еще связь родитель.родитель, и надо не забывать,что используется ирархия элементов
   Ivan_495
 
25 - 04.11.16 - 12:54
каждый элемент связан с веткой аналогов, родителем этой ветки он и является
   Ivan_495
 
26 - 04.11.16 - 12:59
глубина ирархии ветки может быть несколько уровней,а не один как в (13)
   azernot
 
27 - 04.11.16 - 14:31
ДокТЧ КАК ДокТЧ
        Левое СОЕДИНЕНИЕ Справочник.Номенклатура КАК Ном
        ПО ДокТЧ.Номенклатура= Ном.Родитель
ИЛИ ДокТЧ.Номенклатура= Ном.Родитель.Родитель
ИЛИ ДокТЧ.Номенклатура= Ном.Родитель.Родитель.Родитель
ИЛИ ДокТЧ.Номенклатура= Ном.Родитель.Родитель.Родитель.Родитель
и т.п.

А вообще, давай оригинальный текст задачи 1.19
Сдаётся мне, что-то ты не договариваешь
   Ivan_495
 
28 - 04.11.16 - 14:34
а если 10 уровней вложенности, то при использовании (13) делать десять левых соединений?
   azernot
 
29 - 04.11.16 - 14:43
(28) Одно, но с десятью условиями.
Ну нет возможности соединения по условию В ИЕРАРХИИ в запросе. Смирись.
Если бы это был к примеру отчёт на СКД, там можно было бы связать два набора.

Нужно до конца и чётко понимать задачу, со всеми условиями и нюансами. Ты стойко переносишь все пытки и хранишь свою тайну. Дело твоё.
   azernot
 
30 - 04.11.16 - 14:45
Тьфу блин, я вспомнил ТС.
Нафиг-нафиг. С этим куском неадеквта лучше не связываться... так что - без меня.
   bootini
 
31 - 04.11.16 - 15:18
(26) сделай как все нормальные люди через регистр сведений, номенклатура - аналог.
   Ivan_495
 
32 - 04.11.16 - 18:55
(30) Слышь ты засранюка малолетняя, это ты папе своему скажешь, что он кусок говна, не научил тебя с людьми разговаривать.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует