Зависает запрос при соединение по субконто #809996


#0 by Beduin
Обычный регистр бухгалтерии Хозрасчетный. Типовой. Зависает по жесткому, как поменял на соединение по субконто, до этого было по регистратору         ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(                 ,                 ,                 ,
#1 by mehfk
#2 by Lama12
Что ж ты так над системой издеваешься?
#3 by Beduin
Я в последней строчке местами поменял условие. У меня задача. Мне нужно снять остатки и найти первое движение по формированию этого остатка и суммы из него. Если, есть другие варианты решения. Скажи.
#4 by Borteg
это срочно надо менять
#5 by Borteg
вложенный запрос последний скорей всего не может быть просчитан оптимизатором поэтому делается неправильное соединение
#6 by Borteg
еще надо бы все это разбить на нормальные временные таблицы, а на самом деле запрос шляпа.
#7 by H A D G E H O G s
Жесть, как она есть
#8 by Renat11111
Это пиз.....ц
#9 by H A D G E H O G s
Но, гражданину с 9 годами стажа я лишь приведу 4 строчки Я знаю, скоро утро взорвется рассветом. И это будет последний мирный рассвет. Здравствуй дружок, ты хотел быть поэтом? Что же, прошу к амбразуре – теперь ты поэт.
#10 by Beduin
У меня такой же запрос, но правую таблицу я джойню через регистратор и все отрабатывает быстро.         ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(                 ,                 ,                 ,
#11 by Beduin
Кроме ржача, может ответите как мне оптимально решить задачу
#12 by Beduin
Если тебя смущает вложенный запрос в соединение, то это называется кореллированый подзапрос. В таких задачах его использование допустимо.
#13 by H A D G E H O G s
#14 by H A D G E H O G s
Я знаю, что такое коррелированный подзапрос, так как только с его помощью можно корректно выводить динамические списки в связке с дублями доп. таблиц без Сгруппировать ПО.
#15 by mehfk
О, в теме появился вопрос! Во-первых - изучить виртуальные таблицы регистра бухгалтерии. Во-вторых убрать .
#16 by Beduin
Если интересно могу показать результат через профайлер. С кодом из и через параметры установленные.
#17 by Beduin
С помощью какой виртуальной таблицы мне можно найти первое движение из остатка на дату по документу? Нужен срез остатков до документа на дату и туда же вывести сумму первоначальную, когда было первое движение.
#18 by H A D G E H O G s
++В третьих почитать про параметр ВТ - Субконто
#19 by mehfk
Это во-первых, я же так и написал:  изучить виртуальные таблицы регистра бухгалтерии.
#20 by Cyberhawk
"срез остатков до документа на дату" // Какого документа, не регистратора ли? ;)
#21 by H A D G E H O G s
ДвижениеССубконто
#22 by H A D G E H O G s
окей
#23 by Beduin
Документов из третьего субконто. Там документ.
#24 by H A D G E H O G s
не, все равно дичь. Переписывайте на Временные таблицы и уберите это
#25 by H A D G E H O G s
Аврелий и Октавиан...
#26 by Beduin
Предлагаешь из движениессубконто вытаскивать первое движение? Чем это лучше если из таблицы оборотов взять движение до регистратора?
#27 by H A D G E H O G s
Я не предлагаю. Я ответил на вопрос. Я вообще не понимаю этой странной конструкции, по которой регистратор может сделать проводки в разном периоде. Зачем?
#28 by Beduin
У меня задача. Это не я придумал ее. Заказчик. Мне нужно снять остатки до документа по 60 счету и показать в отдельной колонке первоначальную сумму по этому документу. В табчасть найденного документа лезть не стал, решил найти первое движение по нему, так как там перенос остатков и т.п. и вывести.
#29 by H A D G E H O G s
Выбрать в 1 ВТ остатки, выбрать ПРАВИЛЬНО (см. параметр Субконто) В 3 субконто получим все регистраторы 2 запросом выберем минимумы и максимумы ДАТ, ну пусть будет из Таблицы ДВиженийССубконто в разрезе регистраторов 3 запросом выберем обороты с внутренним соединением с 2 таблицей по 2-м условиям по периодам. Профит
#30 by H A D G E H O G s
Ну и эту дичь тоже заменить ХозрасчетныйОстатки.Субконто3.Дата КАК ДатаСчетФактуры, на ВЫРАЗИТЬ
#31 by Beduin
Внутреннее соединение зачем? Мне главное наличие остатка. И в итоге из моего одного запроса получилось 3 вложенных. Это считается оптимизацией?
#32 by МимохожийОднако
Тебе дело говорят, а ты упираешься вместо того, чтобы попробовать и померить результат.
#33 by Beduin
У меня вопрос был общий. Про архитектуру системы. Почему при соединении по регистратору у меня отрабатывается за 1 секунду. А при соединение по субконто зависает намертво. Мне зачем эти производительности. Просто ответ, нужен, что по субконто не соединяются таблицы потому-то потому-то. В итоге половина написала жесть, другому не нравилось, что я не ссылку передал, а заставил рег бухгалтерии найти мне счет. Мне нужен просто запрос. Сделать один раз и забыть. Меня заинтересовало, почему у меня зависает намертво именно когда соединение по субконто идет.
#34 by МимохожийОднако
"А при соединение по субконто зависает намертво."Ответ есть -неправильно строишь запрос. и тут же:" Мне зачем эти производительности". Это вторая причина проблем - не хочешь с этим разбираться. "Сделать один раз и забыть" наивный подход. Вот если бы один разобрался, то это было бы правильнее. Твой запрос наглухо вешает из-за того, что не учитываешь особенности объекта Субконто
#35 by Beduin
Приведение типа или внутренние особенности таблиц?
#36 by МимохожийОднако
Да. Смотри И убедись, 3 субконто заполнено
#37 by Cyberhawk
Думаю, если ты заменишь условие "ПО ХозрасчетныйОстатки.Субконто3 = ХозрасчетныйОбороты.Регистратор" На "ПО выбор когда ХозрасчетныйОстатки.Субконто3 ссылка документ1 тогда выразить(ХозрасчетныйОстатки.Субконто3) как документ1 = ХозрасчетныйОбороты.Регистратор когда ... документ 2 тогда ... " то результат тебя удовлетворит
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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