v7: глВернутьЦену оптимизация #665565


#0 by lg2marvel
Добрый день. Тормоза при выписке накладных привысили порог терпения. Надо что-то с этим делать. Конфигурация комплексная. Погуглив пол дня пришел к выводу что делать нужно прямым запросом, перебор не прокатит. Единсвенный вариант который нашел был на Инфостате, но прикрутить его не получилось. Для начала хочу понять принцип действия. При подборе товара при его выборе будет каждый раз выполняться запрос, который будет возвращать цену для введенного товара и установленного типа цены. Вот только знаний в этой области негусто, подскажите что почитать и как оно правильнее будет. Спасибо всем откликнувшимся.
#1 by Базис
Сейчас - спать, перед сном ещё раз подумать - утром в голове будет простое решение.
#2 by Злопчинский
#3 by Злопчинский
1.пользователей - в терминал. 2.выписку накладных проводить в ТА, а не в заднепроходном отверстии
#4 by Aleksey
а какая разница? у него глВернутьЦену тормозит - ибо это периодический реквизит По хорошему нужно переписывать цены на регистры и будет летать
#5 by Злой Бобр
Я вот тоже хочу понять что у вас ... Но угадывать принципиально нехочу. Если хотите получить ответ - научитесь четко формулировать мысли и сам вопрос. А почитать можно много чего, Мопасана как вариант ... А у меня нетормозит, и тоже периодический. Что я делаю не так?..
#6 by Mikeware
на инфосране есть метода замены на прямой запрос через класс ПрямойЗапрос. + лучше не на регистр, а на справочник - иначе групповое извлечение цен замедляется очень сильно. как вариант, кэшировать цены, если они меняются реже 1 раза в день.
#7 by Mikeware
Нашел.
#8 by orefkov
Так тормоза при проведении или подборе? Имхо, начинать надо не с гугленья и не с прямых запросов, а с замеров производительности. Что они показали, кто сегодня слабое звено?
#9 by VladZ
Прямой запрос - это лучший вариант. Но есть и другой: ставим "Отбор по реквизиту" на реквизите "ТипЦен" в справочнике "Цены". В модуле функции меняем:
#10 by Reaper_1c
Да ладно, у ТиС эта процедура - ахиллесова пята всей конфигурации...
#11 by lg2marvel
У меня вот так: Тормоза при подборе, замер производительности показал что глВернутьЦену выполняется при 14-16 пзизиях 0,6 сеунд, при увеличении количества позиций лидировать начинает контроль остатка.
#12 by Mikeware
цены можнои закэшировать, допустим, в индексированной ТЗ. а остаток брать прямым запросом из регистра, на ТА. ну и работать, есссно, на ТА
#13 by Ёпрст
Останки тоже надо закешировать при подборе.
#14 by varelchik
Держи.
#15 by varelchik
ТекстЦена="    КонецЕсли; Это подготовка ЗапросЦена в процедуре ПриОткрытии.
#16 by varelchik
И ничего летает как самолет.
#17 by varelchik
Если надо с остатками то добавляем это:
#18 by lg2marvel
Спасибо добрый человек, буду прикручивать
#19 by Aleksey
а как на справочнике переодичность будешь делать? (P.S. он и так в типовой на справочнике)
#20 by varelchik
НЕ забываем что для этого нужна еще компонента 1С++.
#21 by varelchik
Да и еще забыл.
#22 by Ковычки
#23 by Ковычки
без цены
#24 by lg2marvel
Дык как же, если Цена вычисляется в цикле
#25 by Ёпрст
для оледб устаревшая строка соединения
#26 by Ёпрст
ну и твой код.. только для скуль версии, поентому эти строки соединения.. как бэ не уместны
#27 by lg2marvel
Погонял еще отладчиком, вижу такую ситуацию: Это при 100 позициях в списке. Приоритет меняется кардинально.
#28 by lg2marvel
нормальные картинки
#29 by Ёпрст
Константы надо всегда кешировать - это мегатормоз.
#30 by Ёпрст
+ избегать конструкций мо метаданным, типа глестьреквизит траляля
#31 by varelchik
Согласен. Ну это я так кинул, что человек понял что за объекты юзаются.
#32 by lg2marvel
Что вы имеете ввиду? Как ее можно кешировать?
#33 by Ёпрст
Перем МояСуперМуперКонстанта Экспорт; .... МояСуперМуперКонстанта  = Константа.Дефчонки.Настёна;
#34 by Ёпрст
в общем, константы, которые не меняются - в глобальнике присваивай переменным.. их потом и используй в коде, заместо того, чтоб обращаться каждый раз к 1sconst в коде
#35 by lg2marvel
Спасибо, при проверке константы теперь нет задержки. Я присваивание значение константы переменной засунул в ПриНачалеРаботыСистемы, куда ее лучше впихнуть? или же просто перед модулем?
#36 by Ёпрст
да там вполне покатит.
#37 by Ёпрст
тока смотри, у там как минимум, их 3 штуки :)
#38 by Ёпрст
Ну и останки на прямой запрос ИЛИ, получить все итоги при открытии подбора в ТЗ, затем в формулу - поиск в этой ТЗ, это в разы быстрее, чем Рег.Остаток
#39 by Ёпрст
Можно даже через ВыгрузитьИтоги регистра.
#40 by lg2marvel
ааааааа мой мозг сейчас взорвется Хачу научиться делать прямым запросом, но пока дальше подключения компонеты не добрался, перелопачиваю примеры.
#41 by varelchik
Но я бы посоветовал не в ТЗ а в ИндексированнуюТаблицу. У нее скорость поиска(ты ж сам знаешь) в разы больше нем на ТаблицеЗначений.
#42 by Ёпрст
ну мот автору еще религия не позволяет ИТЗ использовать :)
#43 by varelchik
Тем более остатки все таки луче параметрическим запросом брать. Так они будут актуальными.
#44 by lg2marvel
Не посоветуете конструктор запросов?
#45 by Ёпрст
У тя скль или дбф ?
#46 by lg2marvel
скль
#47 by Aleksey
пишем
#48 by Ёпрст
#49 by lg2marvel
Спасибо, буду ковырять
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям