gifts2017

Ускоритель СЗВ 2010 для ЗиК 2.99

Опубликовал Веселов Александр (aves) в раздел Программирование - Практика программирования

Ускоряет формирование СЗВ примерно вполовину за счет уменьшения числа запросов.
Реально полезно, когда надо часто и много заходить в редактирование форм СЗВ.
ЗиК 2.99

В процедуре глЗаполнитьТаблицуСотрудниковСОсобымиПериодами имеем классическую ошибку, за которую выгоняют с экзаменов - многократные запросы к одному объекту - ЖурналуРасчетов.

Заменяем их на единый и получаем выигрыш примерно в половину.

 


 

    ДатаЗапросаС  = ДатаНачала;
    ДатаЗапросаПо = ДатаОкончания;

    Запрос=СоздатьОбъект("Запрос");
   
    ТекстЗапроса = "//{{ЗАПРОС(ТаблицаПериодовДействияБЛ)
    |с ДатаЗапросаС по ДатаЗапросаПо;
    |Сотрудник = ЖурналРасчетов.Зарплата.Объект;
    |ВидРасч = ЖурналРасчетов.Зарплата.ВидРасч;
    |Функция ЕстьБЛ               = Сумма(1) Когда (ВидРасч в СписокВРБольничныеЛисты) ;
    |Функция ЕстьОтпускЗаСвойСчет = Сумма(1) Когда (ВидРасч в СписокВРОтпускаБезСохранения) ;
    |Функция ЕстьОтпуск           = Сумма(1) Когда (ВидРасч в СписокВРОтпускаИсключаемыеИзСтажа) ;
    |Группировка Сотрудник без групп;
    |Условие(Сотрудник в СписокСотрудников);
    |Условие ((ВидРасч в СписокВРБольничныеЛисты) ИЛИ (ВидРасч в СписокВРОтпускаБезСохранения) ИЛИ (ВидРасч в СписокВРОтпускаИсключаемыеИзСтажа));
    |"//}}ЗАПРОС
    ;
   
    Если Запрос.Выполнить(ТекстЗапроса) =1 Тогда
        Пока Запрос.Группировка("Сотрудник")=1 Цикл
            ТаблицаСотрудниковСОсобымиПериодами.НоваяСтрока();
            ТаблицаСотрудниковСОсобымиПериодами.Сотрудник = Запрос.Сотрудник;
            ТаблицаСотрудниковСОсобымиПериодами.ЕстьБЛ               = ?(Запрос.ЕстьБЛ              =0,0,1);
            ТаблицаСотрудниковСОсобымиПериодами.ЕстьОтпускЗаСвойСчет = ?(Запрос.ЕстьОтпускЗаСвойСчет=0,0,1);
            ТаблицаСотрудниковСОсобымиПериодами.ЕстьОтпуск           = ?(Запрос.ЕстьОтпуск          =0,0,1);
        КонецЦикла;
    КонецЕсли;

 

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Эдуард (mart-sha) 20.07.10 18:47
Класс ! Уделал ты их...
Из-за этого тормоза файл серверный вариант остановился полностью. Пришлось срочно переходить на терминал (или альтернативу Viterminal).
2. econom1 21.07.10 10:09
это они специально, чтобы потом показать на примере, что 8 быстрей работает
3. Татьяна Шавлак (Stety) 22.07.10 08:25
Ценная вещь. А еще разработчики в очередной раз "упустили", что в льготный стаж для пенсий не включаются не только учебные отпуска, но и простои с прогулами.
4. Сергей Харчамадзе (harek78) 23.07.10 18:33
Прикольное замечание!

Но по времени одинаково формирует! Специально проверил!
5. Веселов Александр (aves) 28.07.10 11:39
(4) замерял монитором - бонус есть.

Да и пользователи заметили, хотя им не сообщалось - слепой тест. :D
6. ПодОпытный (mihenius) 15.04.11 14:17
Кстати джамшуды из 1С до сих пор не поправили )