|
Отчет СКД в УП выполняется за 6 секунд, в ОП за 1 секунду. | ☑ | ||
---|---|---|---|---|
0
dj_serega
16.12.13
✎
13:19
|
База на MS SQL.
Есть набор данных Партии. Если выполнять запрос через форму обычного приложения, результат выводится через 1 секунду. Если выполнять через управляемую форму, на построение запроса требуется больше 6 секунд. Запрос, как по мне, элементарный. Стек вызовов на УП показал шесть запросов в базу. Каждый больше секунды. В условиях нет отборов, так как записей в регистре около 30ти. Текст запроса: ВЫБРАТЬ ПартииТоваровНаСкладахОстаткиИОбороты.Склад КАК Склад, ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования КАК ДокументПартии {ВЫБРАТЬ Склад, Номенклатура, ДокументПартии} ИЗ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты КАК ПартииТоваровНаСкладахОстаткиИОбороты {ГДЕ ПартииТоваровНаСкладахОстаткиИОбороты.Склад, ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура, ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования} Как такое может быть? Какое-то СКД в управляемом приложении неуправляемое ;( |
|||
1
Hmster
16.12.13
✎
13:21
|
возможно делается через фоновое задание.
Проверь по журналу |
|||
2
dj_serega
16.12.13
✎
13:22
|
(1) что именно делается через фоновое задание?
|
|||
3
Ёпрст
16.12.13
✎
13:24
|
Это, условия в параметры ВТ не хочешь вложить ?
|
|||
4
dj_serega
16.12.13
✎
13:24
|
(2) Фоновое задание выполяет чтото за 3 секунды ;(
|
|||
5
banco
16.12.13
✎
13:29
|
(0) может поможет v8: Почему фоновые задачи так тормозят?
|
|||
6
dj_serega
16.12.13
✎
13:44
|
УП такое УП.
Для решение текущей задачи пришлось программно формировать отчет. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = ЛОжь; НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки); //Создадим и инициализируем процессор компоновки ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина); //Создадим и инициализируем процессор вывода результата ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); //Обозначим начало вывода ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина); КонецПроцедуры Итог: 2 вызова - 0,44 секунды. Спасибо ;) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |