Есть набор данных Партии.
Если выполнять запрос через форму обычного приложения, результат выводится через 1 секунду.
Если выполнять через управляемую форму, на построение запроса требуется больше 6 секунд.
Запрос, как по мне, элементарный. Стек вызовов на УП показал шесть запросов в базу. Каждый больше секунды.
В условиях нет отборов, так как записей в регистре около 30ти.
Текст запроса:
ВЫБРАТЬ
ПартииТоваровНаСкладахОстаткиИОбороты.Склад КАК Склад,
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования КАК ДокументПартии
{ВЫБРАТЬ
Склад,
Номенклатура,
ДокументПартии}
ИЗ
РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты КАК ПартииТоваровНаСкладахОстаткиИОбороты
{ГДЕ
ПартииТоваровНаСкладахОстаткиИОбороты.Склад,
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования}
Как такое может быть?
Какое-то СКД в управляемом приложении неуправляемое ;(
//Создадим и инициализируем процессор компоновки
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
//Создадим и инициализируем процессор вывода результата
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
//Обозначим начало вывода
ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
КонецПроцедуры
Итог: 2 вызова - 0,44 секунды.
Спасибо ;)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший