Имя: Пароль:
1C
1С v8
Зависает запрос 1С 8.3.12 при использовании границ
0 Euroset1
 
15.03.19
13:06
"ВЫБРАТЬ
                   |    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
                   |    СУММА(ВЫБОР
                   |            КОГДА ХозрасчетныйОстатки.Субконто2 = &ОснСклад
                   |                ТОГДА ХозрасчетныйОстатки.СуммаОстатокДт
                   |            ИНАЧЕ 0
                   |        КОНЕЦ) КАК СуммаОсн,
                   |    СУММА(ВЫБОР
                   |            КОГДА ХозрасчетныйОстатки.Субконто2 = &ОснСклад
                   |                ТОГДА ХозрасчетныйОстатки.КоличествоОстатокДт
                   |            ИНАЧЕ 0
                   |        КОНЕЦ) КАК КоличествоОсн,
                   |    СУММА(ВЫБОР
                   |            КОГДА ХозрасчетныйОстатки.Субконто2 = &ДопСклад
                   |                ТОГДА ХозрасчетныйОстатки.СуммаОстатокДт
                   |            ИНАЧЕ 0
                   |        КОНЕЦ) КАК СуммаДоп,
                   |    СУММА(ВЫБОР
                   |            КОГДА ХозрасчетныйОстатки.Субконто2 = &ДопСклад
                   |                ТОГДА ХозрасчетныйОстатки.КоличествоОстатокДт
                   |            ИНАЧЕ 0
                   |        КОНЕЦ) КАК КоличествоДоп
                   |ПОМЕСТИТЬ ВТ_Остатки41
                   |ИЗ
                   |    РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет = &Счет, , ) КАК ХозрасчетныйОстатки
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ХозрасчетныйОстатки.Субконто1
                   |;

когда &Дата передается как ДатаАктуальности, то на любую дату запрос отрабатывает 5 сек. Когда &Дата передается как Новый Граница(ДатаАктуальности - 1, ВидГраницы.Включая) , то на некоторые даты результат тот же, а на некоторые вообще зависает и вешает SQL на 40 процентов процессорного времени на неопределенное время. Я не использовал границы и не планировал, но "великие умы 1с" советуют делать это. Отсюда вопрос, особенно к тем, кто это советует использовать: почему простейший запрос, в котором результат дай боже двадцать тысяч строк, вешает машину на неопределенный срок? После двух часов ожидания приходилось килять запрос на SQL, потому что он результатов не давал.