Имя: Пароль:
1C
1С v8
v8 Построитель отчета очень долгий вывод
0 Bigbro
 
13.05.13
08:51
подскажите чайнику ... если построительотчета.Вывести() занимает 98,7% времени согласно данных отладчика - это нормально?
меня не устраивает время формирования отчета, сделанного через универсальный. по сути информация выводимая проста - затраченное время на выполнение нарядов по пользователям и по дням. выводится 4 колонки с 1 отбором и интервалом дат в полмесяца. время формирования - более часа. профайлер на сервере выдал duration 800 000+
у меня есть внутренняя уверенность что отчет в 250 строчек и 4 колонки не должен формироваться более часа...
подскажите что и где посмотреть?
1 Пеппи
 
13.05.13
08:53
запрос в студию и период отчета какой?
2 Bigbro
 
13.05.13
09:21
период май. то есть фактически 4 рабочих дня ...
запрос который? тот что после выполнить() формируется?
3 cw014
 
13.05.13
09:29
(2) Ты вкурсе, что после таких фраз тебе могут перестать помогать. И попросят отойти от компьютера и позвать программиста?
4 Bigbro
 
13.05.13
09:36
я в курсе, но звать некого. прошу проявить терпение, если есть желание помочь. если нет - можно проигнорировать, я пойму.
5 cw014
 
13.05.13
09:45
построительотчета - на основании чего строится? Как данные в него передаются?
6 ДенисЧ
 
13.05.13
09:46
Запрос результирующий покажи...
7 Bigbro
 
13.05.13
10:13
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ШтатнаяРасстановка.Организация КАК Организация,
   ШтатнаяРасстановка.Подразделение КАК Подразделение,
   ШтатнаяРасстановка.ФизЛицо КАК ФизЛицо,
   ПериодыШтатнойРасстановки.ДатаВыполненияРабот КАК ДатаВыполненияРабот
ПОМЕСТИТЬ ШтатнаяРасстановкаПоДням
ИЗ
   РегистрСведений.ШтатнаяРасстановка КАК ШтатнаяРасстановка
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           ВыполненныеРаботыОбороты.Исполнитель КАК Исполнитель,
           НАЧАЛОПЕРИОДА(ВыполненныеРаботыОбороты.Период, ДЕНЬ) КАК ДатаВыполненияРабот,
           МАКСИМУМ(ШтатнаяРасстановка.Период) КАК ПериодШтатнойРасстановки
       ИЗ
           РегистрНакопления.ВыполненныеРаботы.Обороты(&ДатаНач, &ДатаКон, День, ) КАК ВыполненныеРаботыОбороты
               ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ШтатнаяРасстановка КАК ШтатнаяРасстановка
               ПО ВыполненныеРаботыОбороты.Исполнитель = ШтатнаяРасстановка.ФизЛицо
       
       СГРУППИРОВАТЬ ПО
           ВыполненныеРаботыОбороты.Исполнитель,
           НАЧАЛОПЕРИОДА(ВыполненныеРаботыОбороты.Период, ДЕНЬ)) КАК ПериодыШтатнойРасстановки
       ПО ШтатнаяРасстановка.ФизЛицо = ПериодыШтатнойРасстановки.Исполнитель
           И ШтатнаяРасстановка.Период = ПериодыШтатнойРасстановки.ПериодШтатнойРасстановки

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
   ШтатнаяРасстановка.Организация,
   ШтатнаяРасстановка.Подразделение,
   ШтатнаяРасстановка.ФизЛицо,
   ПериодыШтатнойРасстановки.ДатаВыполненияРабот
ИЗ
   РегистрСведений.ШтатнаяРасстановка КАК ШтатнаяРасстановка
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           ВыполненныеРаботыОбороты.КонтактноеЛицо КАК КонтактноеЛицо,
           НАЧАЛОПЕРИОДА(ВыполненныеРаботыОбороты.Период, ДЕНЬ) КАК ДатаВыполненияРабот,
           МАКСИМУМ(ШтатнаяРасстановка.Период) КАК ПериодШтатнойРасстановки
       ИЗ
           РегистрНакопления.ВыполненныеРаботы.Обороты(&ДатаНач, &ДатаКон, День, ) КАК ВыполненныеРаботыОбороты
               ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ШтатнаяРасстановка КАК ШтатнаяРасстановка
               ПО ВыполненныеРаботыОбороты.КонтактноеЛицо = ШтатнаяРасстановка.ФизЛицо
       
       СГРУППИРОВАТЬ ПО
           НАЧАЛОПЕРИОДА(ВыполненныеРаботыОбороты.Период, ДЕНЬ),
           ВыполненныеРаботыОбороты.КонтактноеЛицо) КАК ПериодыШтатнойРасстановки
       ПО ШтатнаяРасстановка.Период = ПериодыШтатнойРасстановки.ПериодШтатнойРасстановки
           И ШтатнаяРасстановка.ФизЛицо = ПериодыШтатнойРасстановки.КонтактноеЛицо

ИНДЕКСИРОВАТЬ ПО
   ДатаВыполненияРабот,
   ФизЛицо
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВыполненныеРаботыОбороты.Организация КАК ОбслуживаемаяОрганизация,
   ВыполненныеРаботыОбороты.Исполнитель,
   ВыполненныеРаботыОбороты.ЗонаОбслуживания,
   ВыполненныеРаботыОбороты.ОбъектОбслуживания,
   ВыполненныеРаботыОбороты.Операция,
   ВыполненныеРаботыОбороты.ЗатратыВремениОборот КАК ЗатратыВремени,
   ВыполненныеРаботыОбороты.ОснованиеРабот КАК ПоступившийДокумент,
   ВыполненныеРаботыОбороты.ОснованиеРабот.Плановый КАК Плановый,
   СостоянияПоступившихДокументовСрезПоследних.Состояние КАК СостояниеПоступившегоДокумента,
   ВыполненныеРаботыОбороты.Регистратор КАК ДокументИсполненияРабот,
   ШтатнаяРасстановкаИсполнители.Организация КАК ОрганизацияИсполнителя,
   ШтатнаяРасстановкаИсполнители.Подразделение КАК ПодразделениеИсполнителя,
   ШтатнаяРасстановкаКонтактныеЛица.Подразделение КАК ПодразделениеКонтактногоЛица,
   ВыполненныеРаботыОбороты.ОснованиеРабот КАК КоличествоОбращений,
   ВыполненныеРаботыОбороты.Регистратор КАК КоличествоНарядов,
   ВыполненныеРаботыОбороты.Регистратор.Проект КАК ПроектНаряда
{ВЫБРАТЬ
   ОбслуживаемаяОрганизация.* КАК ОбслуживаемаяОрганизация,
   Исполнитель.*,
   ПоступившийДокумент.*,
   Плановый,
   ЗонаОбслуживания.*,
   ОбъектОбслуживания.*,
   ПроектНаряда.*,
   Операция.*,
   СостояниеПоступившегоДокумента.*,
   ВыполненныеРаботыОбороты.Регистратор.* КАК ДокументИсполненияРабот,
   ОрганизацияИсполнителя.*,
   ПодразделениеИсполнителя.*,
   ПодразделениеКонтактногоЛица.*,
   КоличествоОбращений,
   КоличествоНарядов,
   ЗатратыВремени}
ИЗ
   РегистрНакопления.ВыполненныеРаботы.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК ВыполненныеРаботыОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоступившихДокументов.СрезПоследних(&ДатаКон, ) КАК СостоянияПоступившихДокументовСрезПоследних
       ПО ВыполненныеРаботыОбороты.ОснованиеРабот = СостоянияПоступившихДокументовСрезПоследних.ПоступившийДокумент
       ЛЕВОЕ СОЕДИНЕНИЕ ШтатнаяРасстановкаПоДням КАК ШтатнаяРасстановкаИсполнители
       ПО ВыполненныеРаботыОбороты.Исполнитель = ШтатнаяРасстановкаИсполнители.ФизЛицо
           И (НАЧАЛОПЕРИОДА(ВыполненныеРаботыОбороты.Период, ДЕНЬ) = ШтатнаяРасстановкаИсполнители.ДатаВыполненияРабот)
       ЛЕВОЕ СОЕДИНЕНИЕ ШтатнаяРасстановкаПоДням КАК ШтатнаяРасстановкаКонтактныеЛица
       ПО ВыполненныеРаботыОбороты.КонтактноеЛицо = ШтатнаяРасстановкаКонтактныеЛица.ФизЛицо
           И (НАЧАЛОПЕРИОДА(ВыполненныеРаботыОбороты.Период, ДЕНЬ) = ШтатнаяРасстановкаКонтактныеЛица.ДатаВыполненияРабот)
{ГДЕ
   ВыполненныеРаботыОбороты.Организация.* КАК ОбслуживаемаяОрганизация,
   ВыполненныеРаботыОбороты.Исполнитель.*,
   ВыполненныеРаботыОбороты.ЗонаОбслуживания.*,
   ВыполненныеРаботыОбороты.ОбъектОбслуживания.*,
   ВыполненныеРаботыОбороты.Регистратор.Проект.* КАК ПроектНаряда,
   ВыполненныеРаботыОбороты.Операция.*,
   ВыполненныеРаботыОбороты.ОснованиеРабот.* КАК ПоступившийДокумент,
   ВыполненныеРаботыОбороты.ОснованиеРабот.Плановый КАК Плановый,
   СостоянияПоступившихДокументовСрезПоследних.Состояние.* КАК СостояниеПоступившегоДокумента,
   ВыполненныеРаботыОбороты.Регистратор.* КАК ДокументИсполненияРабот,
   ШтатнаяРасстановкаИсполнители.Организация.* КАК ОрганизацияИсполнителя,
   ШтатнаяРасстановкаИсполнители.Подразделение.* КАК ПодразделениеИсполнителя,
   ШтатнаяРасстановкаКонтактныеЛица.Подразделение.* КАК ПодразделениеКонтактногоЛица}
{УПОРЯДОЧИТЬ ПО
   ОбслуживаемаяОрганизация.* КАК ОбслуживаемаяОрганизация,
   Исполнитель.*,
   ЗонаОбслуживания.*,
   ОбъектОбслуживания.*,
   ПроектНаряда.*,
   Операция.*,
   ПоступившийДокумент.*,
   Плановый,
   СостояниеПоступившегоДокумента.*,
   ДокументИсполненияРабот.*,
   ОрганизацияИсполнителя.*,
   ПодразделениеИсполнителя.*,
   ПодразделениеКонтактногоЛица.*,
   КоличествоОбращений,
   КоличествоНарядов,
   ЗатратыВремени}
ИТОГИ
   СУММА(ЗатратыВремени),
   КОЛИЧЕСТВО(РАЗЛИЧНЫЕ КоличествоОбращений),
   КОЛИЧЕСТВО(РАЗЛИЧНЫЕ КоличествоНарядов)
ПО
   ОБЩИЕ
{ИТОГИ ПО
   ОбслуживаемаяОрганизация.* КАК ОбслуживаемаяОрганизация,
   Исполнитель.*,
   ЗонаОбслуживания.*,
   ОбъектОбслуживания.*,
   ПроектНаряда.*,
   Операция.*,
   ПоступившийДокумент.*,
   Плановый,
   СостояниеПоступившегоДокумента.*,
   ДокументИсполненияРабот.*,
   ОрганизацияИсполнителя.*,
   ПодразделениеИсполнителя.*,
   ПодразделениеКонтактногоЛица.*}
АВТОУПОРЯДОЧИВАНИЕ
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ШтатнаяРасстановкаПоДням
8 Bigbro
 
13.05.13
10:14
жесть жестяная ... походу надо свой запрос написать, тут же черт ногу сломит в построителе этом.
9 Bigbro
 
13.05.13
10:25
еще раз посмотрел этот запрос, возникли сомнения в компетентности того кто придумал такую архитектуру хранения данных ... (
10 Bigbro
 
13.05.13
10:30
Пеппи, ДенисЧ - какие то соображения появились?
11 SherifSP
 
13.05.13
10:50
(8) Обычный типовой отчет, ты уверен что лучше можешь?
12 SherifSP
 
13.05.13
10:52
Время выполнения зависит от данных, и от настроек отчета, правильно настроишь, быстро покажет
13 SherifSP
 
13.05.13
10:53
Попробуй в консоле проверить поэтапно
14 Bigbro
 
13.05.13
11:21
я не уверен, но глядя в конфигуратор вижу что есть единственный документ, и единственный регистр который мне нужен. в нем мне требуется одно измерение исполнитель и один ресурс затраты времени. кроме этого из документа регистратора нужна дата. все.
пожалуй осилю.
15 Bigbro
 
13.05.13
11:29
поэтапно в консоли - это как? на куски порезать произвольно в поиске где долго выполняется?
16 acsent
 
13.05.13
11:30
сколько времени выполняется сам запрос?
17 Bigbro
 
13.05.13
11:35
(16) 900+ сек по данным конфигуратора
18 Bigbro
 
13.05.13
11:41
залез в конструктор, вытащил мышкой нужные поля, сформировал.
7 секунд на все про все.
вот это нормальная цифра
19 Bigbro
 
13.05.13
11:50
поправка - забыл интервал дат ограничить в конструкторе. выбиралось за 2+ года. после ограничения - меньше секунды.
чем же занят построитель в тысячу раз большее время?
20 Bigbro
 
13.05.13
14:52
в общем, спасибо тем кто подсказал, отправил разработчику заявку разобраться с отчетом, надеюсь перепишут. ну или дадут четкое объяснение почему все работает так как работает. вдруг я все неверно понял и нужные мне данные совсем не по этому регистру надо собирать. благо схожих сущностей там много создано - можно запутаться.
хотя казалось бы хелпдеск - что там может быть мудреного.
21 Лефмихалыч
 
13.05.13
14:53
(0)  итогов количество уменьши, Люк,  и скорость формирования подрастет.
Итоги на клиенте считаются