7.7 Очень долго рассчитываются бухИтоги

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем blacat, 20 янв 2008.

  1. TopicStarter Overlay
    blacat
    Offline

    blacat

    Регистрация:
    20 янв 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Добрый день!

    Создаю некий отчет, который показывает пользователю начисление и оплату услуг по месяцам.
    Внутри отчета есть цикл :

    Код:
        BI.UseSubconto(ВидыСубконто.ЛицевыеСчета, _ТекКв,2);
    BI.DoQuery(НачПериода, КонПериода, TabN.obj.Расчет.СубсчетНачисления, счет76, , 2); 
    НачислМес = BI.КО();
    
    BI.UseSubconto(ВидыСубконто.ЛицевыеСчета, _ТекКв,2);
    BI.DoQuery(НачПериода, КонПериода, TabN.obj.Расчет.СубсчетНачисления, Оплата,, 2); 
    Оплата = BI.ДО();  
    
    
    Так вот, если задать период 12 месяцев, то первый месяц цикл выполняется за 5 сек, 2-й за 6..., 11-й за 50 сек, а 12 месяц за 1 минуту. С одной стороны логично, т.к. последние месяцы содержат проводок в несколько раз больше чем первые, НО!!! Если просто тупо задать 2 месяца - 11-й и 12-й, то цикл проходит соответственно за 5 и 6 сек. Т.е. получается, что нет прямой зависимости скорости обработки инфы от числа проводок в текущем месяце. Тогда возникает вопрос: Почему один и тот же цикл с каждым разом проходит все медленнее и медленнее?
    Если у кого-нить будут соображение по симу вопросу - пишите. Сам пока ответа не нашел.
    Спасибо.
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Тут даже к бабке ходить не надо: использование запросов в цикле - категорически не рекомендуется! Ведет к фатальному падению производительности, собственно, Вы это еще раз подтвердили!
  3. TopicStarter Overlay
    blacat
    Offline

    blacat

    Регистрация:
    20 янв 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Позвольте, а как же тогда быть если необходим запрос как раз по нескольким месяцам подряд? Какая альтернатива циклу?
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Вы сами себе ответили - ОДИН запрос на все месяцы.

    Выберите нужные данные и сгруппируйте их под месяцам - вот и все.

Поделиться этой страницей