|
Вопрос по параметрам виртуальных таблиц | ☑ | ||
---|---|---|---|---|
0
Kain_wrath
14.11.15
✎
11:59
|
Есть пакетный запрос, в первом пакете я получаю из справочника номенклатура список номенклатуры по определенному отбору, затем помещаю этот список во временную таблицу, во втором пакете я делаю соединение этой временной таблицы с виртуальным РН (остатки номенклатуры) с типом остатки, есть ли смысл добавлять эту временную таблицу так же в параметры виртуальной таблицы?
|
|||
1
ДенисЧ
14.11.15
✎
12:07
|
Шта?
Ты бы код показал... А то с твоим описанием ты составишь серьёзную конкуренцию Кличко... |
|||
2
Kain_wrath
14.11.15
✎
12:10
|
ВЫБРАТЬ
ОД_НоменклатураБуфер.Ссылка КАК НоменклатураБуфер, ОД_НоменклатураБуфер.ТоварИзОсновнойНоменклатуры КАК Номенклатура ПОМЕСТИТЬ ВТТ ИЗ Справочник.ОД_НоменклатураБуфер КАК ОД_НоменклатураБуфер ГДЕ НЕ ОД_НоменклатураБуфер.ЭтоГруппа И НЕ ОД_НоменклатураБуфер.НеВыгружатьНаСайт И ОД_НоменклатураБуфер.Ссылка В ИЕРАРХИИ(&Номенклатура) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТТ.НоменклатураБуфер, ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ВТ ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ТоварыНаСкладахОстатки ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТТ КАК ВТТ ПО ТоварыНаСкладахОстатки.Номенклатура = ВТТ.Номенклатура ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура ГДЕ ТоварыНаСкладахОстатки.ВНаличииОстаток >= &Остаток И ЦеныНоменклатурыСрезПоследних.Цена > 0 |
|||
3
wertyu
14.11.15
✎
12:15
|
условия на номенклатуру в параметры регистра, временная таблица нафиг не нужна
|
|||
4
DexterMorgan
14.11.15
✎
13:20
|
(3) В данном случае +1. В параметры вирт таблицы добавить отбор нужно, а соединение с вирт таблицей остатков имеет смысл только если оно левое и слева твоя таблица "ВТТ" (смысл в том, что в регистре может не быть записей из ВТТ а они тебе нужны в результате).
|
|||
5
Kain_wrath
14.11.15
✎
13:25
|
(3) Тут просто небольшой нюанс в том что, РН ТоварыНаСкладахОстатки содержит остатки по справочнику Номенклатура, а ВТТ это справочник ОД_НоменклатураБуфер он связан со справочником Номенкалатура посредством реквизита ТоварИзОсновнойНоменклатуры. Поэтому перекинуть условия номенклатуры в параметры виртуальной таблицы не получиться.
|
|||
6
Kain_wrath
14.11.15
✎
13:29
|
(4) ну тут соединение внутренее потому что мне нужны записи которые есть в обеих таблицах
|
|||
7
mistеr
14.11.15
✎
13:34
|
(0) Есть.
(3) Ошибаешься, там другой справочник. |
|||
8
Bober
14.11.15
✎
13:34
|
(0) конечно нужно указывать в параметрах вирт таблиц выборки из временной таблицы (остатки и срез последних)
|
|||
9
Bober
14.11.15
✎
13:38
|
(0) в соединении
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТТ КАК ВТТ ПО ТоварыНаСкладахОстатки.Номенклатура = ВТТ.Номенклатура нет смысла |
|||
10
DexterMorgan
14.11.15
✎
13:48
|
(6) Соединение тогда не нужно, достаточно параметра
|
|||
11
DexterMorgan
14.11.15
✎
13:50
|
а прежде чем соединять со срезом последних, лучше предварительно его поместить в вт
|
|||
12
DexterMorgan
14.11.15
✎
13:51
|
(11) + https://its.1c.ru/db/metod8dev#content:5842:hdoc:vtable_join
Cоединения с виртуальными таблицами Рекомендации Если в запросе используется соединение с виртуальной таблицей языка запросов 1С:Предприятия (например, "РегистрНакопления.Товары.Остатки()") и запрос работает с неудовлетворительной производительностью, то рекомендуется вынести обращение к виртуальной таблице в отдельный запрос с сохранением результатов во временной таблице. То есть, следует использовать ту же рекомендацию, что и в случае соединения с подзапросом. Пояснения Виртуальные таблицы, используемые в языке запросов 1С:Предприятия, могут разворачиваться в подзапросы при трансляции в язык SQL. Это связано с тем, что виртуальная таблица часто (но не всегда) получает данные из нескольких физических таблиц СУБД. Если вы используете соединение с виртуальной таблицей, то на уровне SQL оно может быть в некоторых случаях реализовано, как соединение с подзапросом. В этом случае оптимизатор СУБД может точно так же выбрать неоптимальный план, как при работе с подзапросом, использованным в языке 1С:Предприятия в явном виде. |
|||
13
DexterMorgan
14.11.15
✎
13:55
|
(5) Получи в первом пакете номенклатуру, которая у тебя в рн используется и устанавливай параметром
|
|||
14
Ник второй
14.11.15
✎
16:25
|
(10) А как получить НоменклатураБуфер? рука лицо
|
|||
15
Ник второй
14.11.15
✎
16:25
|
(9) Глупость не пости больше
|
|||
16
Ник второй
14.11.15
✎
16:26
|
(11) Далеко не всегда это надо
|
|||
17
Ник второй
14.11.15
✎
16:27
|
(0) Не обращай внимание на местных , ты сделал практически правильно, можно оставить как есть. Если есть просадка в проиводительности то посмотри профайл
|
|||
18
DexterMorgan
14.11.15
✎
17:16
|
(14) соединение внутреннее, прочитай (13), рукалицо
(16) конечно не всегда, я привел рекомендацию с итс, где написано специально для таких как ты "и запрос работает с неудовлетворительной производительностью" (с) (17) вот тут согласен, на некторых местных действительно лучше не обращать внимания |
|||
19
Ник второй
14.11.15
✎
19:20
|
(18)
1. И что что внутреннее, ты видимо писатель а не читатель. НоменклатураБуфер вытаскивается из справочника ОД_НоменклатураБуфер 2. В том то и прикол, что там написаны рекомендации, для не очень далеких спецов. Те кто в теме (1С: Эксперты или те кто думаю) знают, что не все так однозначно 3. вот вот |
|||
20
Bober
14.11.15
✎
19:59
|
(15) подлечи голову, тыжрограммист
|
|||
21
NcSteel
14.11.15
✎
23:09
|
(20) Обоснуй что нет смысла? Лол
Как ты вытащишь поле ВТТ.НоменклатураБуфер |
|||
22
Bober
14.11.15
✎
23:34
|
(0) точно, реализация же через буферный справочник.
хотя тебе тоже нужно голову подлечить. |
|||
23
Kain_wrath
14.11.15
✎
23:50
|
Всем спасибо, оскорблять друг друга не стоит, со стороны выглядит некрасиво и глупо
|
|||
24
Ник второй
15.11.15
✎
00:02
|
(23) +1
Люди не прочитав и не вдумавшись начинают кидать "подсказки".... |
|||
25
Bober
15.11.15
✎
00:05
|
(24) убогий, отвечай на себя.
|
|||
26
Ник второй
15.11.15
✎
00:23
|
(25) Во во, ты убог, действительно.... Не разобравшись в ситуации начинаешь глупости писать... мда...
|
|||
27
Bober
15.11.15
✎
00:29
|
(26) товарищ, говорить, что в запросах к виртуальным таблицам нормально не указывать отбор по номенклатуре большая глупость. Продолжать сидеть на оффтопных темах форума, программирование и запросы не твое.
|
|||
28
Ник второй
15.11.15
✎
00:42
|
(27) Если бы ты смотрел профайлер и был бы Экспертом, то с тобой можно было бы обсудить такие вещи, но к сожалению ты такими знаниями не обладаешь.
Например в параметрах виртуальной таблицы писать: Номернклатура В Иерархии (&ГруппаНоменклатуры) явно не лучшее решение. так что советую изучить вопрос, он тебе потом может пригодиться. |
|||
29
Bober
15.11.15
✎
00:49
|
(0) ух ты какие познания. ну тогда вернись к запросу и посмотри его еще раз, особенно на первый. Подозреваю, что "Не разобравшись в ситуации начинаешь глупости писать... мда..." - это метко ты предвидел свой пост (28).
|
|||
30
Ник второй
15.11.15
✎
00:57
|
(29) В (9) действительно глупость, так без соединения вытащить поле "НоменклатураБуфер" не получится. Интересно как ты это сделаешь .
Ты явно не разобрался в ситуации, тут соединение обязательно нужно |
|||
31
Bober
15.11.15
✎
01:05
|
(17) ты явно не смотрел исходные запросы к субд, иначе бы первым делом указан на отсутствие выборки товаров в параметрах вирт. таблицах и как следствие выгребание всего. Что касаемо (9), то убирание этого соединения вызвало ошибку в выборке, но не проблемы с производительностью. Хотя тебе свою глупость в постах еще долго будет не оценить (17).
PS на всякий случай ты тоже местный (хоть и дурачок). |
|||
32
DexterMorgan
15.11.15
✎
01:17
|
(14) так первый пакет для выборки номенлатуры нужен, я не спорю. дальше его можно передать параметром в вирт таблицу остатков,. насчет, что ситуации разными бывают, с этим я тоже не спорю, просто человеку привел рекомендацию (рупасова кстати) для тс, который явно не эксперт. ты ущербен чувак и раб своего чсв
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |