Архив за месяц: Январь 2015

1C 7.7. Прямой запрос с группировкой без индексированной таблицы

Прямые запросы в 1С++ — это отличный способ в тысячи раз ускорить выборки данных по сравнению со стандартными запросами 1С 7.7. Особенно полезно для крупных баз, свыше 100Гб, где требуется оптимизация. Группировка индексной таблицей — это дополнительные затраты серверного ресурса, и порой долгие минуты ожидания для пользователя. Запросы с использованием ROLLUP позволят получать данные с итогами по группировкам уже в самом запросе.

К примеру, получим остатки.

Как видно из запроса, мы создаем две группы: ТМЦ и Партия.

Теперь поля приобртают значение в зависимости от уровня группировки: ИтогПоТоварам =1 и ИтогПоПартиям = 1 ,  — это общий итог.

ИтогПоТоварам =0 и ИтогПоПартиям = 1 , когда попадаем на строку с итогом по товару, куда «всуммировались» и итоги по каждой партии отдельно

ИтогПоТоварам =0 и ИтогПоПартиям = 0 , когда попадаем на строку с итогом по партии, который в свою очередь находится внутри итога по товару. Они же детальные строки.

Как можно использовать это?

Смотрим пример обхода результата выборки.

Ну и результат, привычно для отчетов, которые любят в 1С 8.х — когда итоги размещаются сверху групп, их не надо суммировать в переменные, или группировать в индексированной таблице. Всё выводится очень быстро и естественно.

 

Желаю удачи!