Оптимизация отчетов и обработок в 1С8 #678493


#0 by sasha_nik
Механизм ускорения отчетов/обработок в 1С8 (все нижеперечисленное протестирвоано с помощью замера производительности, такая оптимизиция дает прирост производительности до 3-х раз). 1.    В отчетах, где используется выборка из регистров накопления (Остатки, Обороты), при возможности задавать критерии отбора по измерениям,  а также нижнюю и верхнюю границу интервала (в случае извлечения оборотов) Пример: Медленно: Запрос.Текст=»Выбрать |* из Примечание: трудности при установке интервала дат могут возникать из-за того, что в базе зачастую Дата оплаты по заказу < Даты заказа покупателя. Поэтому перевести на интервал дат возможно только регистры, связанные с отгрузками (Продажи, Продажи себестоимость), т.к. дата накладной всегда должна быть > даты заказа покупателя (для этого сделана специальная защита). Регистры «Расчеты» и «Взаиморасчеты» в ряде случаев перевести на интервал дат невозможно. 2.    Если из запроса извлекаются ссылки (документы, справочники), постараться, чтобы при переборке запросов не извлекались реквизиты этих ссылок, а все необходимые реквизиты этих ссылок извлекались сразу в запросе Пример: Медленно: Запрос=»Выбрать |ДокЗак.Ссылка как ЗаказПокупателя     …. КонецЦикла Быстро: Запрос=»Выбрать |ДокЗак.Ссылка как ЗаказПокупателя,     …. КонецЦикла Примечание:  Такую оптимизацию можно сделать в простых запросах, в сложных запросах, использующих выборки из нескольких документов одновременно, с большим количеством условий, соединений и т.д., оптимизировать таким образом весьма трудоемко и может привести к ошибкам. 3.    Перевод функция для выполнения  на  сервер (для клиент-серверного варианта). Следует помнить, что передача с клиента на сервери обратно списка значений и объекта не допускается. Можно передавать ссылки, массивы, таблицы значений Перевод осуществляется таким образом:     #Если Клиент тогда     Возврат Функция ПроцентОплатыПоЗаказуПокупателя_НаКлиенте; КонецФункции     Возврат Функция ПроцентОплатыПоЗаказуПокупателя_НаСервере; КонецФункции
#1 by sasha_nik
Вместо "Возврат Функция" читать "Возврат"
#2 by Fragster
продолжайте наблюдения
#3 by vyaz
а в чем вопрос?
#4 by sasha_nik
А почему обязательно должен быть вопрос. Я жду, может кто дополнит что-нибудь, а своим опытом мне не жалко поделиться.
#5 by vyaz
а если это ликбез, то к 1 пункту тогда уж добавить про влияние порядка измерений в регистре и про индексацию
#6 by sasha_nik
Про индексацию сам не совсем понимаю.
#7 by Dmitry1c
А уж как влияет заполнение видов субконто в регистре бухгалтерии..
#8 by Starhan
>>А почему обязательно должен быть вопрос. Dот ты щас взял и сломал мое представление о мисте...
#9 by sasha_nik
А,понял, для такой выборки нужно, чтобы у измерения стоял признак "Индексировать". (в моем примере у измерения регистра "Заказ покупателя". Ну ладно, буду дальше оптимизировать.
#10 by vyaz
говорят, что вроде как по индексированным полям отбор в запросе должен работать быстрей:) ну и важно в запросе порядок расположения условий после ГДЕ...
#11 by sasha_nik
Я на мисте недавно, а 1С-м занимаюсь (или маьсь с ним) уже 11 лет, 8-кой 7 лет, а вообще я самоучка.
#12 by sasha_nik
Всем большое спасибо, вечером зайду, посмотрю Ваши советы.
#13 by ptiz
Нам открыли глаза!
#14 by Dmitry1c
зашел на мисту ты, спросить советов мудрых...
#15 by Starhan
зачем ждать, нажми красную букву Я в правом-верхнем углу топика.
#16 by H A D G E H O G s
Что? Это? Было?
#17 by Vitamax3
С такими "достижениями" можно не только опытом делиться, а нужно уже книги писать.
#18 by Starhan
атец, фитчами делился (БЕСПЛАТНО!!!)
#19 by Sammo
Читай профессиональную разработку
#20 by kiruha
Ну зачем ветку опустили - автор открыл глаза Побежал переписывать
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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