v7: Как быстро получить последние движения по измерениям регистра сведений? #631612


#0 by zelenprog
На 7-ке в самописной конфе используется регистр оборотов в качестве периодического регистра сведений. Измерения регистра: Контрагент, Номенклатура. Ресурс: Цена. Нужно узнать все последние цены. Как это можно быстро сделать? Простым перебором получается медленно: Цикл по всем контрагентам   Цикл по номенклатуре Всех проходов цикла получается около 1.200.000. Примерно 20000 наименований номенклатуры, и 500 контрагентов. Скажите пожалуйста как ускорить? Желательно штатными средствами.
#1 by Kreont
Запросом
#2 by zelenprog
думал запросом, но ничего не надумал. запрос же ведь не умеет отдельные движения обрабатывать?
#3 by Mikeware
Это почему? А вообще, тут или прямой запрос, или ИТЗ.
#4 by КонецЦикла
При массовом вызове (например, показе чего-то в форме списка) на ДБФ у меня когда-то тормозило дико Прямой запрос помог, получше стало
#5 by zelenprog
не хочется пока прямым... прямые я обычно выполняю через OLEDB, и его надо выполнять в разделенном режиме. а эта обработка выполняется в монопольном при свертке... короче с прямым запросом придется тоже что-то мудрить. а штатным способом никак?
#6 by zelenprog
а как ИТЗ поможет?
#7 by Mikeware
правильно построенный индекс творит чудеса....
#8 by Mikeware
Лить сразу все в ИТЗ я бы постеснялся, но, допустим, по каждой контре - вполне нормально. Или по каждой номенклатуре. Ну и, кстати, глянуть на галки отборов у измерений...
#9 by Ёпрст
>>>прямые я обычно выполняю через OLEDB, и его надо выполнять в разделенном режиме. Что мешает их выполнять монопольно ?
#10 by Mikeware
религия. а за ее оскорбление можешь получить до 5 лет. оно тебе надо?
#11 by Ёпрст
блин.. и хто будет защишать права неверующих ?
#12 by Mikeware
никто.
#13 by Deon
А Атеизм - это религия?
#14 by Nirvana
Нафига вообще так делать? Для такой задачи больше подходит подчинённый номенклатуре справочник с реквизитом "Контрагент" и периодическим реквизитом "Цена".
#15 by Mikeware
Для особо одаренных = объясняю: для того, чтобы уйти от периодики. скорость получения данных выше раза в три.
#16 by Ахиллес
Покайтесь, грешники, откажитесь от диавольских клюшек, придите в объятия святого снеговика!
#17 by Mikeware
проще руки выпрямить...
#18 by Холст
по-моему впору объявлять конкурс на лучшую структуру для 1С 7.7, заменяющую периодики, с критерием наилучшей скорости ... никто не помнит, обсуждали такое, к чему пришли ?
#19 by Mikeware
справочник с прямым запросом. Регистр чуть-чуть медленнее. Зато с ним работать проще. баян, вобщем...
#20 by Nirvana
Проверял?
#21 by zelenprog
Помнится мне, что когда-то я столкнулся с такой ситуацией. Прямой запрос через OleDB в монопольном режиме не выполняется. В монопольном прямой запрос выполняется только через ODBC-драйвер. Но он работает хуже, чем Visual Foxpro OleDB driver. Поэтому тогда я все запросы сделал через OleDB driver. Может быть с тех пор что-то поменялось?
#22 by zelenprog
- что-то все не о том, про руки про религию, может быть вернемся к теме?
#23 by zelenprog
ну вы что парни? у меня же конкретный вопрос: 1) намекнули в что можно 1С-ным запросом. Так все-таки можно или нет? Если можно то как? По чему надо группировать в этом запросе? 2) в чем фишка прямых запросов? почему они у меня в монопольном режиме не выполняются?
#24 by zladenuw
обычный запрос что показывает по времени ?. прямые быстрее в 100 раз.
#25 by zelenprog
ну вот попробовал прямым запросом в монопольном режиме... ошибка: FAILED! ICommandText::Execute: Cannot open file q:src a103.dbf.
#26 by zelenprog
у меня сейчас сделано в цикле, см. запрос 1С-ный и не смог сделать, не знаю как группировать по движениям регистра. по-моему 1С-ным запросом так вообще нельзя сделать
#27 by Nirvana
Цены по всей номенклатуре или нет?
#28 by zladenuw
Запрос.Группировка
#29 by zladenuw
и чего не понятно ............Сообщить(Запрос.Долж); ............Пока Запрос.Группировка("Сотр")=1 Цикл
#30 by Шурик71
1сsqllite вполне себе работает в монопольном режиме...
#31 by Злопчинский
ээээ... а как реализовать регистр сведений на оборотном регистре? народ что-то базарил что это делается типа вообще типа измеренйи нет, а все указываешь в реквизитах движений??
#32 by Злопчинский
есть правленный фокспрошный дривер, который позволяет и в монопольном штрындячить
#33 by Ёпрст
либо 1sqlite не надо его исользовать
#34 by zelenprog
Пишешь в него движения. а потом выбираешь нужное движение на нужную дату и все... а где хранятся данные: в измерениях или реквизитах по-моему неважно. Просто когда ищешь движение на указанную дату для конкретных значений измерений и реквизитов - это работает быстро. А когда как у меня нужно по всем значениям - то вот и получается очень медленно
#35 by zelenprog
спасибо, попробую эту разработку. Насколько сложнодолго перейти на 1sqlite с прямых запросов?
#36 by Mikeware
это "по-твоему" неважно...
#37 by Nirvana
Если тебе настолько неважен размер базы, то можешь попробовать сделать ещё один справочник (или регистр), где будут храниться только последние цены.
#38 by Холст
а как вам такая замена периодики на регистре (для числовой периодики): используем регистр остатков, "запись периодики" делаем так - на дату изменения данных минусуем число которое в текущем остатке, плюсуем новое значение на дату, в итоге на ТА всегда последнее актуальное значение нормальный вариант ?
#39 by Mikeware
растет сильно. И медленнее из-за пересчета итогов. зы. "назад в будущее", млин... это все обсуждалось году в 2004. уже пора или на снеговика перейти (и забыть периодику клюшек как непиятный сон), или понять, как оно работает...
#40 by Ёпрст
2 минуты на прочтение синтаксиса, 5 минут на переделку кода.
#41 by zelenprog
"это по-твоему неважно..." и что дальше? где продолжение? понимай как хочешь... кстати недавно статья попалась в инете про намеки: запомнилась фраза в этой статье: "Просто нужно привыкнуть к тому, что слабый пол любит говорить намеками, как бы проверяя способности мужчины – сообразителен ли он ..." :)
#42 by Ёпрст
+40 тебе этого не нужно, достаточно ссылки в
#43 by Холст
"Зубры" профи ушли с 7.7 на 8.х, а фирмы с нетленками на 7.7 остались, поэтому знания по оптимизации 7.7 пока актуальны, в 2004 было одно поколение 1Сников, сейчас другое
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

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