Прайс-лист для 7.7. А побыстрее можно?

Неоптимально написанные стандартные отчеты для 77? Прошло уже более 15 лет, а они существуют. Один из таких аборигенов – Печать прайс-листа. Если в базе большое количество цен и ассортимент, запускайте этот отчет и спокойно идите на обед — результат может сформироваться только к концу перерыва.

Он является завсегдатаем нескольких конфигураций- есть в ТиС и в комплексной.

При его написании, у разработчика связь с землей похоже была утрачена.

Основной запрос выборки данных специфичен — думали, что  у предприятия может быть два, ну от силы три типа цен. Вторая "думка" — цены одни, на все времена. Они вечны и не могут устаревать. Поэтому было решено, что фильтр в запросе будет излишним, выберем все, какие только есть цены номенклатур. Разберемся с ними потом.

Видимо не учитывалось, что пользователи – они другие, и в одном прайс-листе не «вываливают» сразу все цены, а формируют лишь несколько — те, которые нужны.

 Заполучив эту мегавыборку и протащив ее по сети, разработчик не успокоился и, чтобы окончательно погубить это дело, начал  в цикле по каждой позиции номенклатуры перебирать все типы цен.

Результат: в базах данных, где 20…40 и более типов цен, при большой выборке отчет «тормозит».

Понятно, что чем больше цен и номенклатур, тем эта деградация прогрессирует, а быстроходность отчета напротив падает.

Чтобы отчет вернуть к жизни, достаточно оказалось легкого ремонта  — исправить всего 10 строк: ноги поставить на место ног, а руки туда — куда им положено.

Нужно сказать, что сообщество давно заприметило эту странную особенность стандартного отчета и даже боролось с ним. Например здесь — Быстрый прайс для Торговля+Склад 7.7.

Сравнение времени выполнения отчетов в базе данных, где 130 цен при выборке по четырем типам цен:

Стандартный отчет – 430 сек.

Быстрый прайс для Торговля+Склад 7.7 – 170 сек.

Прайс-лист "побыстрее" – 26 сек.

P.S. При оформлении кнопки отчета использовались идея, картинка и три строки кода, «украденные» отсюда . За что спасибо автору.

Статьи и решения для платформы 8.х

Сравнение товарных остатков между двумя базами данных

Учет доставок в Управление торговлей 10.3 (УПП — опционально)

Контроль отправки чеков ККМ в ОФД

Сравнение взаиморасчетов с контрагентами УТ с БП 

Ошибка СУБД: ERROR: relation … does not exist

Настройка обмена в 1С:Предприятие 8 после смены баз данных

Учета документов, сданных в бухгалтерию для Управление торговли 10.3

Клиент-банк ВТБ 24. "Неожиданный" ОКТМО

Загрузка отборов в Сегмент номенклатуры

Новогодние истории: Праздничный учет 

Решения для платформы 7.7

Быстрая Книга учета доходов и расходов для комплексной 7.7

Реестр сертификатов для 7.7

Комфортные наборы пользователя

                                                                                                 Оборудование

Обновление прошивки на фискальном регистраторе Штрих-М. Com — порт

Обновление прошивки на фискальном регистраторе Штрих-М. USB — порт

Установка лицензии на фискальные регистраторы Штрих-М

 

4 Comments

  1. candy_sk

    Спасибо!

    Собирался уже сам писать нечто похожее (достали косяки отчёта)

    Щас заценим!

    Reply
  2. CheBurator

    Хоть бы написал автор что-то, а то лезть в код смотерть…

    Reply
  3. aspirator23

    (2) CheBurator, Так я же написал в чем проблема и как проявляется. Отчет доработан: «…исправить всего 10 строк…»

    Reply
  4. CheBurator

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *