Имя: Пароль:
1C
1С v8
Запрос к регистру накопления медленно считает
0 igel1969
 
27.04.18
14:43
Здравствуйте!
1С 8.2 УТ 10.3

Смотрите, если я делаю стандартный отчет "Ведомость по товарам на складах", выбираю там по дням, ограничиваю одним складом и одним товаром, за месяц, то у меня результат выходит мгновенно. И это естесствено, ведь это очень простой отчет и данных там немного.

А когда я пытаюсь то же самое сделать программно запросом, а именно:

Запрос.Текст = "ВЫБРАТЬ
                   СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК Начало,
    СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК Конец,
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК Расход,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Дата1, &Дата2, День, ДвиженияИГраницыПериода, ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.Склад = &Склад
И ТоварыНаСкладахОстаткиИОбороты.Номенклатура = &Номенклатура
СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОстаткиИОбороты.Номенклатура";

Этот запрос выполняется очень долго, больше минуты!!!!
Что я сделал не так, кроме выбора профессии?
1 CHerypga
 
27.04.18
14:50
как минимум потому что условия в секции где, а не в параметрах виртуальной таблицы
2 igel1969
 
27.04.18
14:53
(1) Спасибо огромное, помогло!!!
Теперь хзапрос выглядит так и считает моментально:

ВЫБРАТЬ
                   |    СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК Начало,
                   |    СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК Конец,
                   |    СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК Расход,
                   |    ТоварыНаСкладахОстаткиИОбороты.Номенклатура
                   |ИЗ
                   |    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
                   |            &Дата1,
                   |            &Дата2,
                   |            День,
                   |            ДвиженияИГраницыПериода,
                   |            Склад = &Склад
                   |                И Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстаткиИОбороты
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ТоварыНаСкладахОстаткиИОбороты.Номенклатура

Не думал, что это так важно
3 PR
 
27.04.18
14:55
Стаж пять с половиной лет
4 CHerypga
 
27.04.18
14:58
(2) а теперь стоит попробовать убрать группировку, результат будет точно таким же как и с ней
5 igel1969
 
27.04.18
15:07
(4) Мы используем характеристики номенклатуры. я полагаю (проверять лень), что если не буду группировать, скорее всего в результате запроса будет несколько строк с разными характеристиками, а мне надо только по номенклатуре.
6 CHerypga
 
27.04.18
15:10
(5) при получении данных из виртуальной таблицы они уже сразу придут сгруппированные до тех измерений, которые выбираются
7 AlexTim03
 
27.04.18
16:55
(4) твое предположение неверное, а еще помноженное на лень, дает эффект, описанный в посте (0)
8 RomanYS
 
27.04.18
17:18
Интересно какой смысл в
СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток)

в сочетании с выборкой по дням?
Основная теорема систематики: Новые системы плодят новые проблемы.