Имя: Пароль:
1C
1С v8
Запрос, сортировка списка номенклатуры по ТЧ справочника
0 Acemore
 
31.05.17
10:37
Добрый день.

Есть результат запроса со списков номенклатуры, есть необходимо отсортировать в соответствии с порядком строк номенклатуры, заданным в ТЧ справочника. ТЧ может не содержать некоторые элементы результата запроса, в связи с этим, левое соединение обрезает результат основного запроса.

Есть идеи?
1 Acemore
 
31.05.17
10:38
(0) Да, сортировать собираюсь по номеру строки
2 lodger
 
31.05.17
10:39
не делать левое соединение.
3 Letum
 
31.05.17
10:40
Левое соединение с тч + ЕСТЬNULL(ТЧ.НомерСтроки, 99999999) Как порядок.
4 lodger
 
31.05.17
10:41
(3) у тебя nullов не будет при левом соединении.
5 Acemore
 
31.05.17
10:46
(3) Так не работает
6 Acemore
 
31.05.17
10:46
(2) без соединения все вместе выкатывает
7 dezss
 
31.05.17
10:47
А может тогда делать правое соединение?
Я чета не понимаю, каким образом левое может обрезать. Только если делать левое К ТЧ, а если делать левое к результату запроса, то никаких обрезаний просто не может быть, могут быть null-ы.

Хотя если накладывать какие-то ограничения в ГДЕ, то левое легким мановением руки превращается во внутреннее.
8 Acemore
 
31.05.17
10:52
(7)

<code>
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТГотовый.Номенклатура КАК Номенклатура,
    ВТГотовый.Номенклатура.Родитель КАК ГруппаНоменклатуры,
    ВТГотовый.Номенклатура.ЕдиницаИзмеренияМест КАК Единица,
    СпискиНоменклатурыСписокНоменклатуры.НомерСтроки КАК Порядок
ИЗ
    ВТГотовый КАК ВТГотовый
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СпискиНоменклатуры.СписокНоменклатуры КАК СпискиНоменклатурыСписокНоменклатуры
        ПО ВТГотовый.Номенклатура = СпискиНоменклатурыСписокНоменклатуры.Номенклатура
ГДЕ
    СпискиНоменклатурыСписокНоменклатуры.Ссылка = &СписокНоменклатуры

</code>

результат 12 из 53
9 lodger
 
31.05.17
10:53
(8) попробуй полное.
10 Acemore
 
31.05.17
10:54
(8) левое так же себя ведет

правое, соответственно, дополняет пустыми строчками Номенклатуру (не из нее же беру), но номера строк отлично проставляет) Только результат теряю
11 Acemore
 
31.05.17
10:56
(9) Полное как правое ведет - режет начальный результат заппроса под ТЧ
12 Acemore
 
31.05.17
10:57
НомерСтроки никак хитро себя не ведет при соединениях?
13 Mort
 
31.05.17
11:01
Автор условие накладывает после джойна, поэтому и не взлетает
14 lodger
 
31.05.17
11:02
(12) а как он может себя вести? это число в таблице.
15 dezss
 
31.05.17
11:06
(8) а теперь расскажи сколько элементов в &СписокНоменклатуры
и в Справочник.СпискиНоменклатуры.СписокНоменклатуры
16 Acemore
 
31.05.17
11:08
(15) это ссылка на элемент справочника и название ТЧ (ну да, сбивает с мысли))
17 Acemore
 
31.05.17
11:08
(13) т.е. в вт ранее список выгрузить?
18 Letum
 
31.05.17
11:10
(17) Можно сделать так:

Справочник левое соединение ТЧ по Справочник.Ссылка = ТЧ.Номенклатура И ТЧ.Ссылка =  &СписокНоменклатуры
19 dezss
 
31.05.17
11:11
(16) ну я спрашивал про количество, а не про то, что это...мну с мысли не сбился))

попробуй сперва сделать список Справочник.СпискиНоменклатуры.СписокНоменклатуры с наложенным условием, помести во временную таблицу, а потом левым присоединяй к ВТГотовый. Или как в (18).
20 Acemore
 
31.05.17
11:12
(13) (19) Да, это сработало.

В ВТ получил список по конкретному справочнику и с ним уже левое соединение.

Спасибо!