Запросы и СКД #674336


#0 by vip67
Все добрый вечер! УПП для Украины. помогите разобраться с СКД. Суть вопроса: есть 2 таблицы: 1-я - Бух остатки и обороты - на нее наложен отбор по определенному счету БУ , из нее получаю сделку, остаток на начало и оборот за период. Далее делаю вложенный запрос, в котором указываю таблицу ОБоротыДтКт, фильтр по счету БУ . обе этих таблицы связываю по Субконто3 из первой и регистратор.Сделка из 2-й. Суть в чем: необходимо по сделке, полученной из первой таблицы получить приход материала за тек месяц, сгруппированный по группе кода (часть номера кода). Как я понимаю, внутренний запрос первоначально отберет все данные, а потом уже будет происходит внутреннее соединение. В итоге работает ОЧЕНЬ медленно. Нужно, чтобы для каждой записи 1-й таблицы отбирались данные по 2-й таблице. Как это реализовать в СКД? текст запроса прилагаю:     НомГруппа
#1 by vip67
при этом этот же запрос в консоле запросов отрабатывает гораздо быстрее
#2 by France
для начала попробуй вынести группировки из запроса - пусть скд группирует.
#3 by vip67
ок, счас, а то уже минут 15 - и ничего, а в консоле - ну 30сек-1мин
#4 by vip67
не помогает
#5 by viktor_vv
Я бы на это не надеялся " Как я понимаю, внутренний запрос первоначально отберет все данные, а потом уже будет происходит внутреннее соединение" как там скуль выгребет это дело, только ему и известно, учитывая еще что, виртуальные таблицы тоже разворачиваются в подзапросы. Загони это во временные таблицы и их соединяй.
#6 by viktor_vv
Как миниму приход за месяц во временную загони.
#7 by vip67
на данный момент база - файловая
#8 by viktor_vv
Ну там таки тоже есть некоторый планировщик запросов. Плюс СКД некоторым образом модифицирует этот запрос, для отборов и т. д. Ты попробуй.
#9 by Sorm
Гы:) А на уровне запроса, а не в СКД, это реализовать нельзя? Две временных таблицы, проиндексированные по полям поиска, имхо, спасут отца русской демократии.
#10 by 1s_ivan
1. Вам точно нужны строки в части СГРУППИРОВАТЬ ПО: ... ПлатежТекМес.СуммаНачальныйОстатокКт, ПлатежТекМес.СуммаОборотДт ... ???? 2. Как считаете, может нужно в начале запроса в части ВЫБРАТЬ:     ...     ПлатежТекМес.СуммаНачальныйОстатокКт,     ПлатежТекМес.СуммаОборотДт,     ... ЗАМЕНИТЬ на: ???
#11 by viktor_vv
Плюс там еще в виртуальные таблицы условия на виды субконто неплохо было бы, тем более, что тебе не все нужны. Тут правда я не сильно знаю как загнать их параметрами СКД, ну и с бухРегистром не часто работал.
#12 by vip67
да вот наверно и придется на уровне запроса а не в СКД... хотя зотелось бы. кстати вопорс на засыпку - как в СКД создать временную таблицу и связать потом с запросом? на пальцах кто-то объяснит? потому что в инете натолкнулся на то, что временные таблицы в СКД не есть гуд... а тут все рекомендуют...
#13 by France
легко... ща пальцы разомну только..
#14 by France
1. В Конструкторе СКД создаешь обычным образом запрос 2. Переходишь на закладку "Дополнительно" и в нем выбираешь "Создание временной таблицы" и задаешь и имя.. и..все..
#15 by vip67
Это легко, как 2 пальца... так я уже делал, а вот что дальше - создал я к примеру временную таблицу, а где основная таблица или еще одна? и как ихз потом увязать? через пакет добавлять? тут без 100гр не разобраться видать
#16 by France
да, через пакет создаешь еще нужно количество таблиц и увязиываешь нужным образом с временной таблицей.. и пакет тоже так же легко создается.
#17 by France
созданная первым временная таблица становится доступна следующему запросу в пакете в дереве метаданных при формировании запроса.. прям в конце списка "Временные таблицы"
#18 by vip67
а вот как увязать между пакетами? куда жать? вот это я не нашел :( кстати, уже минут 40 работает отчет на СКД за период в один день! ужас какой-то! такого у меня еще не было.
#19 by vip67
точно! вот за это СПАСИБО!!!
#20 by France
два разных пакета увязать или временную таблицу с таблицей в одном пакете?? - увязать два разных пакета - это два разных набора данных запрос в СКД - увязать временную таблицу с другой в пределах одного пакета: объявить временную таблицу, и при создании нового запроса в пакете объявленная таблица доступна на закладке "Таблицы и поля" конструктора запроса" в разделе "Временные таблицы" (последняя в списке).
#21 by viktor_vv
Эти конструкторы до добра не доведут :) ВЫБРАТЬ             ПриходМат20.Регистратор КАК Регистратор,             ПриходМат20.СубконтоДт1 КАК СубконтоДт1,         ГДЕ             НЕ ПриходМат20.Регистратор ССЫЛКА Документ.ПоступлениеДопРасходов ; ВЫБРАТЬ     НомГруппа
#22 by France
на ко ругается?
#23 by viktor_vv
На кого ругается ? Даже выполняется, правда нихрена не выводит :).
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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