После очередного обновления при закрытии месяца бухгалтера стали жаловаться на очень медленное перепроведение документов.
Проблема нашлась в документе "Поступление на расчетный счет". Приведу часть запроса, который очень долго выполняется:
"ВЫБРАТЬ | ХозрасчетныйОстатки.Субконто1 КАК Контрагент, | ХозрасчетныйОстатки.Субконто2 КАК Договор, | ХозрасчетныйОстатки.Субконто3 КАК РасчетныйДокумент, | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Валюта КАК ВалютаВзаиморасчетов, | ЕСТЬNULL(ХозрасчетныйОстатки.Подразделение, &ПустоеПодразделение) КАК Подразделение, | ХозрасчетныйОстатки.СуммаОстаток КАК СуммаРуб, | ВЫБОР | КОГДА ХозрасчетныйОстатки.Счет.Валютный | ТОГДА ХозрасчетныйОстатки.ВалютнаяСуммаОстаток | ИНАЧЕ ХозрасчетныйОстатки.СуммаОстаток | КОНЕЦ КАК СуммаВзаиморасчетов |ПОМЕСТИТЬ ВТВыборкаПосчетамУСН |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &ДатаОстатка, | Счет В (&СчетаУСН), | &ВидыСубконто, | Организация = &Организация | И &УсловиеПоПодразделению | И (Субконто1, Субконто2, Субконто3) В | (ВЫБРАТЬ | АналитикаОстатков.Контрагент, | АналитикаОстатков.ДоговорКонтрагента, | АналитикаОстатков.РасчетныйДокумент | ИЗ | ВТ_АналитикаОстатков КАК АналитикаОстатков)) КАК ХозрасчетныйОстатки | |ИНДЕКСИРОВАТЬ ПО | РасчетныйДокумент |;
А если еще точнее, то тормозит вот эта конструкция:
|(Субконто1, Субконто2, Субконто3) В | (ВЫБРАТЬ | АналитикаОстатков.Контрагент, | АналитикаОстатков.ДоговорКонтрагента, | АналитикаОстатков.РасчетныйДокумент | ИЗ | ВТ_АналитикаОстатков КАК АналитикаОстатков)
Просто переписал запрос на такую конструкцию и скорость запроса увеличилась в десятки раз.
"ВЫБРАТЬ | ХозрасчетныйОстатки.Субконто1 КАК Контрагент, | ХозрасчетныйОстатки.Субконто2 КАК Договор, | ХозрасчетныйОстатки.Субконто3 КАК РасчетныйДокумент, | ХозрасчетныйОстатки.Счет КАК Счет, | ХозрасчетныйОстатки.Валюта КАК ВалютаВзаиморасчетов, | ЕСТЬNULL(ХозрасчетныйОстатки.Подразделение, &ПустоеПодразделение) КАК Подразделение, | ХозрасчетныйОстатки.СуммаОстаток КАК СуммаРуб, | ВЫБОР | КОГДА ХозрасчетныйОстатки.Счет.Валютный | ТОГДА ХозрасчетныйОстатки.ВалютнаяСуммаОстаток | ИНАЧЕ ХозрасчетныйОстатки.СуммаОстаток | КОНЕЦ КАК СуммаВзаиморасчетов |ПОМЕСТИТЬ ВТВыборкаПосчетамУСН |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &ДатаОстатка, | Счет В (&СчетаУСН), | &ВидыСубконто, | Организация = &Организация | И Подразделение В (&Подразделения)) КАК ХозрасчетныйОстатки | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АналитикаОстатков КАК ВТ_АналитикаОстатков | ПО ВТ_АналитикаОстатков.Контрагент = ХозрасчетныйОстатки.Субконто1 | И ВТ_АналитикаОстатков.ДоговорКонтрагента = ХозрасчетныйОстатки.Субконто2 | И ВТ_АналитикаОстатков.РасчетныйДокумент = ХозрасчетныйОстатки.Субконто3 | |ИНДЕКСИРОВАТЬ ПО | РасчетныйДокумент |;
Такое поведение по крайней мере замечено на платформе 8.3.22.1750
Если я Вам помог, то меня можно поблагодарить.
Отправить комментарий