|   |   | 
| 
 | Вопрос по параметрам виртуальных таблиц | ☑ | ||
|---|---|---|---|---|
| 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) так первый пакет для выборки номенлатуры нужен, я не спорю. дальше его можно передать параметром в вирт таблицу остатков,. насчет, что ситуации разными бывают, с этим я тоже не спорю, просто человеку привел рекомендацию (рупасова кстати)  для тс, который явно не эксперт. ты ущербен чувак и раб своего чсв     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |