Проблемма:
Начиная, по моему 2.5.21 релиза в ЗУП были добавлены тормоза, особенно проявляются они в тех базах в котоорых много табелей.
Лекарство:
В модуле ПpoвeдeниePacчeтoвПepeoпpeдeляeмый заменить текст запроса ОтработаноНЕПоВидуВремениДляПоказателейТекст
примерно так:
// ИЗМЕНЕНО (Алексей) начало
// было
//"ВЫБРАТЬ
//| Основной.НомерСтроки КАК НомерСтроки,
//| СУММА(ВЫБОР
//| КОГДА ДругоеРабочееВремя.Сотрудник ЕСТЬ NULL
//| ТОГДА РабочееВремяРаботников.Дней
//| ИНАЧЕ 0
//| КОНЕЦ) КАК Дней,
//| СУММА(ВЫБОР
//| КОГДА (НЕ ДругоеРабочееВремя.Сотрудник ЕСТЬ NULL )
//| И (НЕ РабочееВремяРаботников.ВидИспользованияРабочегоВремени.РабочееВремя)
//| ИЛИ (НЕ ДругоеРабочееВремя.ВидИспользованияРабочегоВремени В (ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаНочныеЧасы), ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаВечерниеЧасы)))
//| ТОГДА 0
//| ИНАЧЕ РабочееВремяРаботников.Часов
//| КОНЕЦ) КАК Часов
//|ПОМЕСТИТЬ ВТОтработаноНЕПоВидуВремениДляПоказателей
//|ИЗ
//| РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия(
//| Регистратор = &парамРегистратор
//| И Авторасчет
//| И ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени <> ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ПустаяСсылка)) КАК Основной
//| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.РабочееВремяРаботниковОрганизаций КАК РабочееВремяРаботников
//| ПО Основной.Сотрудник = РабочееВремяРаботников.Сотрудник
//| И (РабочееВремяРаботников.Период МЕЖДУ Основной.ПериодДействияНачало И Основной.ПериодДействияКонец)
//| И ((НЕ РабочееВремяРаботников.ВидИспользованияРабочегоВремени = Основной.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени))
//| И (РабочееВремяРаботников.Регистратор <> &парамРегистратор)
//| И (РабочееВремяРаботников.Регистратор ССЫЛКА Документ.ТабельУчетаРабочегоВремениОрганизации)
//| И ((НЕ РабочееВремяРаботников.ВЦеломЗаПериод))
//| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
//| РабочееВремяРаботников.Сотрудник КАК Сотрудник,
//| РабочееВремяРаботников.Период КАК Период,
//| РабочееВремяРаботников.ВидИспользованияРабочегоВремени КАК ВидИспользованияРабочегоВремени
//| ИЗ
//| РегистрНакопления.РабочееВремяРаботниковОрганизаций КАК РабочееВремяРаботников
//| ГДЕ
//| РабочееВремяРаботников.Регистратор <> &парамРегистратор
//| И РабочееВремяРаботников.Регистратор ССЫЛКА Документ.ТабельУчетаРабочегоВремениОрганизации
//| И (НЕ РабочееВремяРаботников.ВЦеломЗаПериод)) КАК ДругоеРабочееВремя
//| ПО (ДругоеРабочееВремя.Сотрудник = Основной.Сотрудник)
//| И (ДругоеРабочееВремя.Период МЕЖДУ Основной.ПериодДействияНачало И Основной.ПериодДействияКонец)
//| И (ДругоеРабочееВремя.ВидИспользованияРабочегоВремени = Основной.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени)
//| И (ДругоеРабочееВремя.Период = РабочееВремяРаботников.Период)
//|
//|СГРУППИРОВАТЬ ПО
//| Основной.НомерСтроки
//|
//|ИНДЕКСИРОВАТЬ ПО
//| НомерСтроки";
// стало
"ВЫБРАТЬ
| Основной.НомерСтроки КАК НомерСтроки,
| СУММА(ВЫБОР
| КОГДА ДругоеРабочееВремя.Сотрудник ЕСТЬ NULL
| ТОГДА РабочееВремяРаботников.Дней
| ИНАЧЕ 0
| КОНЕЦ) КАК Дней,
| СУММА(ВЫБОР
| КОГДА (НЕ ДругоеРабочееВремя.Сотрудник ЕСТЬ NULL )
| И (НЕ РабочееВремяРаботников.ВидИспользованияРабочегоВремени.РабочееВремя)
| ИЛИ (НЕ ДругоеРабочееВремя.ВидИспользованияРабочегоВремени В (ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаНочныеЧасы), ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.РаботаВечерниеЧасы)))
| ТОГДА 0
| ИНАЧЕ РабочееВремяРаботников.Часов
| КОНЕЦ) КАК Часов
|ПОМЕСТИТЬ ВТОтработаноНЕПоВидуВремениДляПоказателей
|{ВЫБРАТЬ
| НомерСтроки,
| Дней,
| Часов}
|ИЗ
| РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия(
| Регистратор = &парамРегистратор
| И Авторасчет
| И ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени <> ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ПустаяСсылка)) КАК Основной
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.РабочееВремяРаботниковОрганизаций КАК РабочееВремяРаботников
| ПО Основной.Сотрудник = РабочееВремяРаботников.Сотрудник
| И (РабочееВремяРаботников.Период МЕЖДУ Основной.ПериодДействияНачало И Основной.ПериодДействияКонец)
| И ((НЕ РабочееВремяРаботников.ВидИспользованияРабочегоВремени = Основной.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени))
| И ((НЕ РабочееВремяРаботников.ВЦеломЗаПериод))
| И (РабочееВремяРаботников.Регистратор <> &парамРегистратор)
| И (РабочееВремяРаботников.Регистратор ССЫЛКА Документ.ТабельУчетаРабочегоВремениОрганизации)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РабочееВремяРаботниковОрганизаций КАК ДругоеРабочееВремя
| ПО Основной.Сотрудник = ДругоеРабочееВремя.Сотрудник
| И (ДругоеРабочееВремя.Период МЕЖДУ Основной.ПериодДействияНачало И Основной.ПериодДействияКонец)
| И (ДругоеРабочееВремя.ВидИспользованияРабочегоВремени = Основной.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени)
| И (ДругоеРабочееВремя.Регистратор <> &парамРегистратор)
| И (РабочееВремяРаботников.Регистратор ССЫЛКА Документ.ТабельУчетаРабочегоВремениОрганизации)
| И (ДругоеРабочееВремя.Период = РабочееВремяРаботников.Период)
| И ((НЕ ДругоеРабочееВремя.ВЦеломЗаПериод))
|
|СГРУППИРОВАТЬ ПО
| Основной.НомерСтроки";
// ИЗМЕНЕНО (Алексей) окончание
В базе в которой я это попроавил скорость выполнения запроса увеличилась примерно в 1000 раз. Удачи!
P.S. Кто заметит косяки просьба меня поругать!