Можно ли оптимизировать такой запрос в динамическом списке номенклатуры? #792745


#0 by Prog111
В форме списка справочника "Номенклатура" типовой УТ 11.3 набросал запрос в динамическом списке, чтобы получать на форме списка остатки (общие и по определенным складам, а также резервы и заказы): ВЫБРАТЬ Но работает не очень шустро - подвисает при прокрутке страниц, порой весьма ощутимо. Можно ли как-то оптимизировать запрос, чтобы ускорить прокрутку справочника и вообще его использование?
#1 by DrShad
в корне не верно, у демонических списков уже есть специализированное расширение для подобных задач ищите на ИТС
#2 by DrShad
#3 by Prog111
Гугление выдает только такие методы (с соединением к регистрам). Там приписка: "Планируется в версии 8.3.10".
#4 by DrShad
статья от июля 2016, так что вполне вероятно что уже реализовали в более ранних версиях
#5 by DrShad
шерстите возможности платформы - механизм описан
#6 by Elatiell
В запросе куча соединений с виртуальными таблицами - это плохо и так делать нельзя, вдобавок к этому еще и количество остаток из "остатков и оборотов" берешь... Сделай лучше отчетом, динамические списки не для этого придуманы. Либо откажись от динамического списка в пользу таблицы.
#7 by Prog111
Да, спасибо, сделаю соединение только с таблицами остатков, а не "Остатков и оборотов". Заказчик требует, поэтому отчет не устроит, нужна оперативная работа менеджеров с остатками.
#8 by Dmitrii
>> количество остаток из "остатков и оборотов" берешь... +1 Собственно совершенно непонятно зачем. Кроме указания правильной виртуальной таблицы, больше тут оптимизировать некуда. Работать быстро это угрёбище не сможет по определению. И даже варианты типа после выхода платформы 8.3.10 вряд ли сильно помогут.
#9 by Dmitrii
>> нужна оперативная работа менеджеров с остатками Придумайте им другой инструмент. Этот быстро работать не будет никогда. А по мере роста базы ситуация будет только ухудшаться. А если, не дай бог, завтра вырастет количество складов с 5 до 10, количество различных позиций номенклатуры и количество номенклатуры единовременно висящей на остатках, то ваш список вообще перестанет работать. Угадайте с трёх раз - кто будет крайним.
#10 by Prog111
Какие ещё могут быть инструменты, помимо отчета?
#11 by HardBall
Пятничный мега-пост. ППЦ в квадрате.
#12 by Diman000
Динсписки хороши только в элементарных запросах. ВЫБОР в них большое зло. И непонятно зачем тут все эти соединения с разными виртуальными таблицами, имеющими один физический базис.
#13 by HardBall
Походу был взят список с рекомендациями по улучшению производительности и каждый пункт сделан наоборот.
#14 by HardBall
Там нужна была одна таблица остатков  и "Выбор-Конец" для остатков по складам, + сумма остатков.
#15 by Prog111
А как в данном запросе получить остатки по разным складам? Вот в этой части запроса получаю общие остатки, а также остатки по складу №1 и №2 (передаваемые параметрами в форме). Разве здесь можно избавиться от соединения к нескольким таблицам? ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
#16 by HardBall
ВЫБРАТЬ     ТоварыНаСкладахОстатки.ВРезервеОстаток
#17 by Prog111
Спасибо, буду пробовать.
#18 by Dmitrii
>> Какие ещё могут быть инструменты, помимо отчета? Ну откуда же мне знать ))) Это ваши менеджеры и вам лучше знать как они работают и что им реально нужно. Но я с 99% уверенностью могу предположить, что менеджеру нахрен не надо видеть остаток одновременно по пяти складам по всей отображаемой номенклатуре да ещё и в момент пролистывания/прокрутки списка.
#19 by Prog111
Ну не знаю... По-моему, это самая распространенная задача - когда менеджеру звонит (или приходит) клиент, и нужно оперативно знать, на каком складе есть нужный или схожий товар и в каком количестве.
#20 by Elatiell
И менеджер, для выполнения своей задачи, открывает отчет и смотрит где, сколько, почему, зачем, как и когда. :D
#21 by Dmitrii
Ключевое слово - "ТОВАР". А ты решаешь задачу - показать "ВСЕ-ВСЕ-ВСЕ ТОВАРЫ". Найди 10 отличий в этих двух задачах. Вторая задача тобою решена. Решение тормозное. По мере роста базы оно будет работать всё медленнее и медленнее до тех пор пока в один прекрасный день не встанет колом. Первая задача имеет самые различные способы решения. Один из которых - отчет. А другие... тут целый пучок вариантов. - показывать остатки только по активной строке списка (ПриАктивизацииСтроки или по отдельной кнопке); - нарисовать форму подбора, которая будет показывать остатки только тогда, когда пользователь установил отбор по номенклатуре, содержащий в результате, например, не более 10 позиций (ведь реально менеджер ищет в 99% случаев одну конкретную позицию). Пока отбора нет или в результате отбора больше позиций - остатки не показываем.
#22 by Prog111
В данной базе ищет именно товары, так как есть много товаров-заменителей, и надо смотреть аналоги. (запчасти).
#23 by Prog111
Спасибо за идеи.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С