|
Прошу подтвердить неоптимальность УТ11.5.22.137 palsergeich, АНДР, Greeen, Сергиус, Недопустимый, NorthWind, p-soft, Krendel, X Leshiy, ReaLg, vicof, b_ru, sxfoxi, Гипервизор, FirstLineSupport, bolder, Sabron, Злопчинский, ssh2006, 2S, H A D G E H O G s, StanyaGeya, Timon1405, maxab72, ДемьянТ, Spyke, Philix, Garykom, zzz_zzz_zzz, Chai Nic, Мультук, torgm, RomaH, calmius, Наивный, A_G, VladZ, Кац, paramedic, ivanov-i-i, toypaul, Климов Сергей, ThreeTONE, vladko, Vostochnick, alex_kld_2024, HobbyHorser, shuhard, unenu, ptiz, Vstur, runuts, altair2019, navigator, Верещагин, banco, fbear, PLUT, 1cVandal, MWWRuza, ОператорПК, Elf_80_lvl, Fragster, arsik, Builder, Fregat, Поток сознания, okmail, evorle145, АнализДанных, trooba, kubik_live, kir-g, probably, d4rkmesa, Ботаник Гарден Меран, Tarlich
| ☑ | |||
|---|---|---|---|---|---|
|
0
H A D G E H O G s
30.03.26
✎
16:30
|
День добрый.
Проведение отгрузочного документа, например, РТУ, при онлайн взаиморасчетах вызывает тормоза. Тормоза возникают в процедуре РегистрСведений.ВспомогательнаяИнформацияВзаиморасчетов.ЗаполнитьВспомогательнуюИнформацию() при выполнении запроса. Причина тормозов - в условиях связи небольшой временной таблицу изменений взаиморасчетов с физической таблицей РасчетыСКлиентами, а именно в формуле в выражении, которая отключает индекс, что приводит к полному чтению регистра. Прошу подтвердить ситуацию, если не лениво.
|
||||
|
1
H A D G E H O G s
30.03.26
✎
16:32
|
Собственно, посмотрел, 11.5.25.72 - точно также.
Поправить то просто - просто не ожидаешь такого встретить в типовой и нет ли тут хитрого смысла. |
||||
|
2
toypaul
гуру
30.03.26
✎
16:35
|
"просто не ожидаешь такого встретить в типовой" шо? в типовой как раз очень даже ожидаем.
|
||||
|
3
toypaul
гуру
30.03.26
✎
16:36
|
Они УТ наверное тестируют только на объемах демо базы. И производительность вряд ли отслеживают.
|
||||
|
4
H A D G E H O G s
30.03.26
✎
16:38
|
(2) Типовая - образчик чистоты среди говноподелий, с которыми сталкиваешься.
|
||||
|
5
Мультук
гуру
30.03.26
✎
16:55
|
(0)
ЕРП 2.5.25.85 1) Код точно такой же. 2) Это вы просто "нарвались", это еще не самое худшее. Там связь ПО Изменения.РасчетныйДокумент = Расчеты.Регистратор И я был уверен что тут играет индекс [ОРНР1 + ... +] Регистратор + НомерСтроки А вовсе не (ибо поля "Период" я в запросе не вижу) [ОРРХ | ОРНР1 +] Период + Регистратор + НомерСтроки (Кластерный) https://its.1c.ru/db/metod8dev/content/1590/hdoc 3) А по полям РН.РасчетыСКлиентами.ДатаРегистратора и РН.РасчетыСКлиентами.ДатаРегистратора и РН.РасчетыСКлиентами.ДатаПлатежа индексов нет Если вы ускорили этот запрос, объясните мне, где я ошибся в своих рассуждениях. (если не сложно) |
||||
|
6
H A D G E H O G s
30.03.26
✎
18:28
|
Вот так решается
&ИзменениеИКонтроль("ЗаполнитьВспомогательнуюИнформацию") Процедура АСФЗаполнитьВспомогательнуюИнформацию(МенеджерВТ, ЭтоРасчетыСКлиентами) Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; Запрос.Текст = " |ВЫБРАТЬ РАЗЛИЧНЫЕ | ВЫБОР КОГДА Изменения.РасчетныйДокумент ССЫЛКА Документ.ПервичныйДокумент | И Изменения.РасчетныйДокумент <> ЗНАЧЕНИЕ(Документ.ПервичныйДокумент.ПустаяСсылка) | ТОГДА Изменения.РасчетныйДокумент | ИНАЧЕ Изменения.Документ | КОНЕЦ КАК РасчетныйДокумент, | НАЧАЛОПЕРИОДА(ВЫБОР КОГДА Изменения.ДатаПлатежа = ДАТАВРЕМЯ(1,1,1) ИЛИ Изменения.Сторно | ТОГДА Изменения.ДатаРегистратора | ИНАЧЕ Изменения.ДатаПлатежа | КОНЕЦ , ДЕНЬ) КАК ДатаПлановогоПогашения |ПОМЕСТИТЬ ИзмененияВспомогательнойИнформации |ИЗ | &РасчетыИзменения КАК Изменения |ГДЕ | Изменения.Сумма <> 0 ИЛИ Изменения.КОтгрузке <> 0 ИЛИ Изменения.КОплате <> 0 |; #Вставка |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Расчеты.Регистратор КАК Регистратор, | Расчеты.ДатаПлатежа КАК ДатаПлатежа, | Расчеты.ДатаРегистратора КАК ДатаРегистратора, | Расчеты.Сумма КАК Сумма, | Расчеты.КОтгрузке КАК КОтгрузке, | Расчеты.КОплате КАК КОплате, | Расчеты.Сторно КАК Сторно, | Расчеты.СвязанныйДокумент КАК СвязанныйДокумент, | Расчеты.ПорядокОперации КАК ПорядокОперации, | Расчеты.ПорядокЗачетаПоДатеПлатежа КАК ПорядокЗачетаПоДатеПлатежа, | Расчеты.ВалютаДокумента КАК ВалютаДокумента, | Расчеты.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств |ПОМЕСТИТЬ РасчетыПоРегистратору |ИЗ | ИзмененияВспомогательнойИнформации КАК Изменения | ВНУТРЕННЕЕ СОЕДИНЕНИЕ &Расчеты КАК Расчеты | ПО Изменения.РасчетныйДокумент = Расчеты.Регистратор |; #КонецВставки |ВЫБРАТЬ | Изменения.РасчетныйДокумент КАК РасчетныйДокумент, | Изменения.ДатаПлановогоПогашения КАК ДатаПлановогоПогашения, | МИНИМУМ(ЕСТЬNULL(Расчеты.Регистратор, Неопределено)) КАК ДокументРегистратор, | МАКСИМУМ(ЕСТЬNULL(Расчеты.СвязанныйДокумент, Неопределено)) КАК СвязанныйДокумент, | МИНИМУМ(ЕСТЬNULL(Расчеты.ПорядокОперации, Неопределено)) КАК ПорядокОперации, | МИНИМУМ(ЕСТЬNULL(Расчеты.ПорядокЗачетаПоДатеПлатежа, Неопределено)) КАК ПорядокЗачета, | МИНИМУМ(ЕСТЬNULL(Расчеты.ВалютаДокумента, Неопределено)) КАК ВалютаДокумента, | МАКСИМУМ(ЕСТЬNULL(Расчеты.СтатьяДвиженияДенежныхСредств, Неопределено)) КАК СтатьяДвиженияДенежныхСредств |ИЗ | ИзмененияВспомогательнойИнформации КАК Изменения #Удаление | ЛЕВОЕ СОЕДИНЕНИЕ &Расчеты КАК Расчеты #КонецУдаления #Вставка | ЛЕВОЕ СОЕДИНЕНИЕ РасчетыПоРегистратору КАК Расчеты #КонецВставки | ПО Изменения.РасчетныйДокумент = Расчеты.Регистратор | И Изменения.ДатаПлановогоПогашения = НАЧАЛОПЕРИОДА(ВЫБОР КОГДА Расчеты.ДатаПлатежа = ДАТАВРЕМЯ(1,1,1) ИЛИ Расчеты.Сторно | ТОГДА Расчеты.ДатаРегистратора | ИНАЧЕ Расчеты.ДатаПлатежа | КОНЕЦ , ДЕНЬ) | И (Расчеты.Сумма <> 0 ИЛИ Расчеты.КОтгрузке <> 0 ИЛИ Расчеты.КОплате <> 0) |ГДЕ | ТИПЗНАЧЕНИЯ(Изменения.РасчетныйДокумент) <> ТИП(Документ.ПервичныйДокумент) |СГРУППИРОВАТЬ ПО | Изменения.РасчетныйДокумент, | Изменения.ДатаПлановогоПогашения | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | Изменения.РасчетныйДокумент КАК РасчетныйДокумент, | Изменения.ДатаПлановогоПогашения КАК ДатаПлановогоПогашения, | МИНИМУМ(ЕСТЬNULL(Расчеты.Регистратор, Неопределено)) КАК ДокументРегистратор, | МАКСИМУМ(ЕСТЬNULL(Расчеты.СвязанныйДокумент, Неопределено)) КАК СвязанныйДокумент, | МИНИМУМ(ЕСТЬNULL(Расчеты.ПорядокОперации, Неопределено)) КАК ПорядокОперации, | МИНИМУМ(ЕСТЬNULL(Расчеты.ПорядокЗачетаПоДатеПлатежа, Неопределено)) КАК ПорядокЗачета, | МИНИМУМ(ЕСТЬNULL(Расчеты.ВалютаДокумента, Неопределено)) КАК ВалютаДокумента, | МАКСИМУМ(ЕСТЬNULL(Расчеты.СтатьяДвиженияДенежныхСредств, Неопределено)) КАК СтатьяДвиженияДенежныхСредств |ИЗ | ИзмененияВспомогательнойИнформации КАК Изменения | ЛЕВОЕ СОЕДИНЕНИЕ &Расчеты КАК Расчеты | ПО Изменения.РасчетныйДокумент = Расчеты.РасчетныйДокумент | И Изменения.ДатаПлановогоПогашения = НАЧАЛОПЕРИОДА(ВЫБОР КОГДА Расчеты.ДатаПлатежа = ДАТАВРЕМЯ(1,1,1) ИЛИ Расчеты.Сторно | ТОГДА Расчеты.ДатаРегистратора | ИНАЧЕ Расчеты.ДатаПлатежа | КОНЕЦ , ДЕНЬ) | И (Расчеты.Сумма <> 0 ИЛИ Расчеты.КОтгрузке <> 0 ИЛИ Расчеты.КОплате <> 0) |ГДЕ | ТИПЗНАЧЕНИЯ(Изменения.РасчетныйДокумент) = ТИП(Документ.ПервичныйДокумент) |СГРУППИРОВАТЬ ПО | Изменения.РасчетныйДокумент, | Изменения.ДатаПлановогоПогашения |; |УНИЧТОЖИТЬ ИзмененияВспомогательнойИнформации"; Если ЭтоРасчетыСКлиентами Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст,"&РасчетыИзменения","РасчетыСКлиентамиИзменения"); Запрос.Текст = СтрЗаменить(Запрос.Текст,"&Расчеты","РегистрНакопления.РасчетыСКлиентами"); Иначе Запрос.Текст = СтрЗаменить(Запрос.Текст,"&РасчетыИзменения","РасчетыСПоставщикамиИзменения"); Запрос.Текст = СтрЗаменить(Запрос.Текст,"&Расчеты","РегистрНакопления.РасчетыСПоставщиками"); Запрос.Текст = СтрЗаменить(Запрос.Текст,"КОтгрузке","КПоступлению"); КонецЕсли; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл НаборЗаписей = СоздатьНаборЗаписей(); НаборЗаписей.Отбор.РасчетныйДокумент.Установить(Выборка.РасчетныйДокумент); НаборЗаписей.Отбор.ДатаПлановогоПогашения.Установить(Выборка.ДатаПлановогоПогашения); Если Выборка.ДокументРегистратор <> Неопределено Тогда ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(), Выборка); КонецЕсли; НаборЗаписей.Записать(); КонецЦикла; КонецПроцедуры |
||||
|
7
palsergeich
30.03.26
✎
22:29
|
(0) отвратительный запрос
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |