v7: Порядки обхода запроса по бухитогам #681236


#0 by Tester
Всем привет. Вроде опыта в 1С 7.7 достаточно, но попытки оптимизации в плане увеличения быстродействия привели в тупик. Хочу выполнить один запрос к бухитогам по разным счетам, а потом только лишь обрабатывать результаты данного запроса. Выгрузки бухитогов в 2-мерную таблицы значений нету, потэтому приходится извращаться с обходами результатов. В общем вначале выполняется запрос, а потом 2 процедуры В одной процедуре мне нужно: 1. Получить партию А во второй: 1. Получить счет Процедура выполняются поочереди: 1-я, 2-я, 1-я, 2-я и т.д. для всех строк ТЗ.
#1 by zak555
запрос весь где ?
#2 by Tester
Проблема в том, что 1-я работает правильно, 2-я нет. Если во второй поменять местами строки Если Ит.ПолучитьСубконто(ВидыСубконто.Партии, , Партия) = 1 Тогда то все работает.
#3 by Tester
Вставлю весь код:
#4 by Ёпрст
Зачет, ага.. Ты это, в цикл его оберни, а то быстро слишком работает, не разглядеть ни черта, всё мелькает на экране - гораздо приятнее смотреть на белый мёртвый фон, на нём мухи отчетливее видны.
#5 by zak555
почему отбор непоследний в использоватьСбуконто ?
#6 by Tester
я же написал, что 2-й запрос здесь временно для исключения влияние результатов предыдущих обходов. Объясни лучше как обходить по разным уровням итоги одного запроса?!
#7 by Tester
а какая разница 1-й он или последний?
#8 by zak555
и первый и второй запросы неверны
#9 by zak555
#10 by Tester
Проверил, не влияет! Тут проблема в 2-й процедурах с разными порядками обхода. Игрался с ВыбратьСчета и с ВыбратьСубконто(, 1) - результат меняется, но все равно логики не пойму.
#11 by zak555
зачем рассчитывать остатки по счету РЗ, если его результат не смотрится ?
#12 by Tester
Все смотрится: Процедура ПолучитьРезерв(Партия)
#13 by Tester
Сори, но вот ужал код, чтобы не было всяких ёпрст (без обид :-D ):
#14 by zak555
я всё равно не понял -- какая задача
#15 by zak555
+ и почему нельзя получить ТЗ за один обход ?
#16 by Tester
Задача любопытства. Выполняем 1 запрос, а после в разных процедурах получаем данные по результату запроса в различных разрезах и с разными порядками обхода результатов! За 1 обход получить можно без проблем, но... задача любопытства :)
#17 by Ёпрст
дык нужно замедлить, не мешай эксперементатору. :)
#18 by zak555
а так ?
#19 by Tester
Спасибо, так будет работать. Но, не знаю как объяснить, нужно, чтобы был 1 запрос (!) и 2 разных (!) перебора результатов, например 1-й по по счетам/партиям, а 2-й по партиям/счетам и они должны следовать друг за другом для каждой строчки ТЗ!!! В общем на сегодня спасибо за помощь, завтра буду дальше ковырять...
#20 by ADirks
Если нужна оптимизация - возьми AccounsRecordset работать с семёркой штатными методами ... ну, можно сказать, моветон уже ...
#21 by zak555
я не понимаю
#22 by Tester
Новый вброс :) На форме ТЗ и 3 кнопки. Код такой: Порядок нажатия кнопок: 1, 2 - получаем на складе "Склад №1" все партии товара "Арматура А500С 8мм" 1, 3 - получаем на складе "Склад №1" все партии товара "Арматура А500С 8мм" 1, 2, 3 - получаем остатки всех партий всех (!) товаров на складе "Склад № 1" 1, 3, 2 - получаем остатки всех партий товара "Арматура А500С 8мм" на всех (!) складах. Вопрос: как добиться единообразного(!) выполнения всех четырех вариантов комбинаций кнопок, не меняя (!) порядков обхода процедур? Другими словами, как после выполнения кнопки 2 сбить курсор в Ит, чтобы кнопка 3 выполнилась с таким же результатом?
#23 by Tester
Разобрался вроде, но только с 1-м способом. 1-й способ - задача решается с помощью разделения выборок по номерам. Вот реально работающий код: КонецПроцедуры 2-й способ - без разделения на выборки с помощью открытия выборки по всем субконто (закомментированные участки кода), но я не могу разобраться в какой последовательности нужно переоткрывать выборки по всем субконто, как не игрался, результата не принесло. Если кто-то пояснит, то буду рад...
#24 by Tester
Похоже я, как обычно, подвесил всех своими нетривиальными задачами :)
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

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