Чем лучше заменить РассчитатьРегистрыНа() и РассчитатьРегистрыПо() #147674


#0 by вапросик
..а то накладные задним числом слишком долго проводяться
#1 by КонецЦикла
Не может быть! Ставь фильтры перед расчетом
#2 by ZolotarevAA
ВыполнитьЗапрос
#3 by skunk
точно... всегда так делаешь?
#4 by вапросик
чес слово чего за фильтры? примерно такая конструкция база dbf.. два этих регистра весят 29 мб и 21 мб..(движения за два года)
#5 by ZolotarevAA
Рассчитать регистры не использую вообще.
#6 by вапросик
во-во.. я тоже так собираюсь либо научусь их готовить, либо буду идти в обход
#7 by skunk
случайно не ваше
#8 by КонецЦикла
2 Обычным запросом - гораздо дольше Вот попробуй типа такого:
#9 by skunk
УстановитьФильтр(<?>,); SetFilter(<?>,); Синтаксис: УстановитьФильтр(<Измерение1>,<Измерение2>...,<Рекв1>,<Рекв2>) Назначение: Назначить фильтр для оптимизации действий с регистром (временные расчеты, выбор движений и итогов). Параметры: <Измерен1>,<Измерен2>... - значения измерений регистра. <Рекв1>,<Рекв2>... - необязательные параметры. Выражения со значениями реквизитов регистра. Заданные значения реквизитов будут влиять только на отбор движений регистра. Замечание: Измерения могут задаваться с пропусками (неуказанное значение - просто запятая), фиксируются только указанные измерения.
#10 by ZolotarevAA
Вопрос кому?
#11 by вапросик
ок.. спасибо
#12 by skunk
вам...
#13 by ZolotarevAA
Нет, не мое.
#14 by skunk
просто по почерку похоже...
#15 by ZolotarevAA
+ Меня штатные средства управления номером устраивают.
#16 by ZolotarevAA
Вы знакомы с моим почерком? (Удивлен)
#17 by skunk
конечно...
#18 by ZolotarevAA
Сомнительное высказывание. Требует доказательств.
#19 by skunk
судя по вашим постам... доказательств не требуется
#20 by ZolotarevAA
Вы представляете Конечную Инстанцию?
#21 by skunk
а разве не видно
#22 by ZolotarevAA
Это был риторический вопрос. Если не понятно.
#23 by skunk
а разве не видно
#24 by klepa
Со временем файл RGномер.dbf, отвечающий за регистры, обрастает нулевыми записями, из-за чего неоправданно увеличивается его размер и, соответственно, время выполнения РассчитатьРегистрыНа. Необходимо раз в месяц сторонней программой помечать на удаление все записи, которые имеют нулевые значения всех ресурсов, после чего делать Zap. Проверено, данная операция во много раз ускоряет доступ к регистрам и глюков не несет. Мой пример (запускать не на работающей базе а на ее копии): Или удалить файл вообще и сделать пересчет итогов (не проверял, не скажу).
#25 by skunk
товарищ держали бы вы такие ценные замечения при себе....
#26 by у лю 427
нулевые значения хорошо чистятся штатными средствами... а ... без комментариев...
#27 by вапросик
тип упаковкой таблиц?
#28 by zzzzz
Ответы на конкурс! :) Вообще-то это нужно в ветку с анекдотами.
#29 by у лю 427
Упаковка таблиц эту хрень не удаляет...
#30 by avm-nn
Честно говоря, при работе в модуле документа и в модуле формы документа ничего более подходящего, чем СоздатьОбъект("Регистры") и далее работать с ним не нашел. Запрос, как я понял, может блокировать доступ к данным для других пользователей в базе. По крайней мере я натыкался на такую траблу. Соответственно используются методы РассчитатьРегистрыНах и др. Этот вариант оказался наиболее жизненным. imho.
#31 by zzzzz
У запросов есть особенность. Не знаю как в 25 релизе, но запрос может неправильно рассчитывать остатки. Обороты считает правильно, но вот остатки...
#32 by avm-nn
Ни разу не встречал неправильный расчет остатков в запросе.
#33 by ZolotarevAA
Разве что сам запрос кривой или сами данные.
#34 by klepa
А какими штатными средствами можно почистить?
#35 by skunk
это вы для меня очень великую тайну открыли... а я то думал... а он вон оказывается что
#36 by AloneAli
А вот так можно?
#37 by skunk
а работатет?
#38 by AloneAli
Не пробовал. Потому что у меня сомнения.
#39 by AloneAli
Блин, я туплю...
#40 by skunk
где? что мешает по пробовать...
#41 by AloneAli
Что мешает попробывать? А потому что будет неправильно. Это я знаю даже не пробуя.. Правино будет вот так:
#42 by skunk
иногда можно не делать временный расчет
#43 by AloneAli
Кстати, в каких ситуациях можно не делать временный расчет?
#44 by 12345
Быстрее всего комбинацией оборотных регистров с периодами Год Месяц и т.д. вплоть до дня Остаток=НачОстаток+Оборот за период РАССЧЕТ не нужен вообще и работает реально очень быстро, вы просто не поверите...
#46 by вапросик
УстановитьЗначенияФильтрареально помогло: вместо 42 секунд накладная провелась за 5 секунды еще раз благодарю кстати в поиске встречал тему где такое обсуждалось..( ) один из участников в конце ветки утверждал, что УстановитьЗначениеФильтра(,СписокЗначений,) не целесообразно при большом списке значений (около 100) и в таких случаях лучше фильтры не использовать.. либо для 25 релиза это не актуально, либо я чего-то не правильно делаю(цифры приведенные выше получены при списке в 115 значений )
#47 by вапросик
а может еще в регистре галочку поставить "отбор движений"?
#48 by skunk
просто тупит... либо список заполнил всеми доступными значениями
#49 by acsent
Обязательно. Еще в раза 2 ускорится проведение задним числом. Особенно если документов очень много
#50 by smaharbA
А если регистр без ресурсов ?
#51 by GrayT
Без ресурсов? Хм. оригенально - надо будет попробовать.
#52 by smaharbA
Регистр - Цены...
#53 by ZolotarevAA
Тогда можно и справочником обойтись.
#54 by smaharbA
Вот я и обошелся, но у меня конфе(Рарус-Мебель) есть такой регистр изначально...
#55 by GrayT
Тут о 8-ке говорят? Цены..... что за конфа?
#56 by ZolotarevAA
Интересное решение.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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