Имя: Пароль:
1C
 
тормозят динамические списки
0 Krabobor
 
01.12.14
13:53
сильно не пинать, только учусь.

есть обоработка. в ней несколько динамических списков. и очень тормозят любые действия связанные с ними. замер производительности показывает маленькое время отрабатывания кода, но после отрабатывания процедуры форма висит секунд 5-7.

в чем может быть проблема?
1 ДенисЧ
 
01.12.14
13:54
в 1с.
2 Адский плющ
 
01.12.14
13:54
Запрос ДС произвольный? Тада в студию.
3 Поpyчик-4
 
01.12.14
13:55
(0) Бывает, да. Смирись или переходи на 7.7. Там формы не сильно тормозят.
4 Krabobor
 
01.12.14
13:57
(2) произвольный. формируется динамически
5 Лодырь
 
01.12.14
13:58
(4) Задуматься над текстом сформированного запроса?
6 Адский плющ
 
01.12.14
14:02
(4) Ну так выкладывай, телепаты в отпуске все.
7 Krabobor
 
01.12.14
14:10
(6)

ВЫБРАТЬ
    СпрНоменклатура.Номенклатура КАК Номенклатура,
    СпрНоменклатура.Характеристика КАК Характеристика,
    ЗапасыНаСкладе.КоличествоОстаток КАК ОстатокСклад,
    ЗапасыНаВсехСкладах.КоличествоОстаток КАК ОстатокНаВсехСкладах,
    СпрНоменклатура.Номенклатура.Наименование КАК Наименование
ИЗ
    (ВЫБРАТЬ
        СправочникНоменклатура.Ссылка КАК Номенклатура,
        ЕСТЬNULL(ХарактеристикиНоменклатуры.Ссылка, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК Характеристика
    ИЗ
        Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
            ПО (СправочникНоменклатура.Ссылка = ХарактеристикиНоменклатуры.Владелец)
    ГДЕ
        СправочникНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Запас)
        И НЕ СправочникНоменклатура.ПометкаУдаления
        И НЕ ХарактеристикиНоменклатуры.ПометкаУдаления
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        Номенклатура.Ссылка,
        ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
    ИЗ
        Справочник.Номенклатура КАК Номенклатура
    ГДЕ
        Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Запас)
        И НЕ Номенклатура.ПометкаУдаления) КАК СпрНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЗапасыНаСкладахОстатки.Номенклатура КАК Номенклатура,
            СУММА(ЗапасыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток,
            ЗапасыНаСкладахОстатки.Характеристика КАК Характеристика
        ИЗ
            РегистрНакопления.ЗапасыНаСкладах.Остатки(, Организация = &Организация) КАК ЗапасыНаСкладахОстатки
        
        СГРУППИРОВАТЬ ПО
            ЗапасыНаСкладахОстатки.Номенклатура,
            ЗапасыНаСкладахОстатки.Характеристика) КАК ЗапасыНаВсехСкладах
        ПО СпрНоменклатура.Номенклатура = ЗапасыНаВсехСкладах.Номенклатура
            И СпрНоменклатура.Характеристика = ЗапасыНаВсехСкладах.Характеристика
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЗапасыНаСкладахОстатки.Номенклатура КАК Номенклатура,
            СУММА(ЗапасыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток,
            ЗапасыНаСкладахОстатки.Характеристика КАК Характеристика
        ИЗ
            РегистрНакопления.ЗапасыНаСкладах.Остатки(
                    ,
                    СтруктурнаяЕдиница = &СтруктурнаяЕдиница
                        И Организация = &Организация) КАК ЗапасыНаСкладахОстатки
        
        СГРУППИРОВАТЬ ПО
            ЗапасыНаСкладахОстатки.Номенклатура,
            ЗапасыНаСкладахОстатки.Характеристика) КАК ЗапасыНаСкладе
        ПО СпрНоменклатура.Номенклатура = ЗапасыНаСкладе.Номенклатура
            И СпрНоменклатура.Характеристика = ЗапасыНаСкладе.Характеристика

УПОРЯДОЧИТЬ ПО
    СпрНоменклатура.Номенклатура,
    СпрНоменклатура.Характеристика
8 Поpyчик-4
 
01.12.14
14:17
(7) И после такого запроса динамический список не будет тормозить? А можно чисто спросить, а назачем в запросе упорядочивание?
9 Krabobor
 
01.12.14
14:19
(8) затрудняюсь ответить, т.к. автор запроса не известен
10 Адский плющ
 
01.12.14
14:22
Группировки виртуальных таблиц убери.
11 Барматолог
 
01.12.14
14:26
(10) а что не так с группировками в ВЗ?
12 Адский плющ
 
01.12.14
14:27
(11) Тупо не нужны.
13 Поpyчик-4
 
01.12.14
14:30
Упорядочивание в запросе тоже убрать, и настраивать порядок в настройках динамического списка.
14 Krabobor
 
01.12.14
14:43
(12) (13) убрал, ничего не изменилось
15 Krabobor
 
01.12.14
14:43
16 Адский плющ
 
01.12.14
14:55
Теперь вложенные таблицы с регистрами руби
17 Адский плющ
 
01.12.14
14:56
В смысле выноси их из вложения.
18 Krabobor
 
01.12.14
15:29
(18) вынес, результат визуально не изменился
19 Krabobor
 
01.12.14
15:29
(18) база серверная, на пост гри - может это важно
20 Огурцы
 
01.12.14
15:32
(19)важно конечно. постгри неумело жует вложенные запросы
21 Krabobor
 
01.12.14
15:39
(20) лучше перевести на ломаный мс скл?
22 SUA
 
01.12.14
15:45
- проверить индексы
- характеристики без номенклатуры уже бывают?
- регистры большие?
- за сколько такой запрос просто в консоли запросов отрабатывает (без отрисовки результата)?
23 H A D G E H O G s
 
01.12.14
15:52
Забавно, что 1С пугалось давать ВТ в ДС.
Засрут-с.

А портянками запросов они ДС не засерают, угу.
24 Krabobor
 
01.12.14
16:01
(22) 1.проверил.
2. нет
3. да
4. менее секунды
25 Барматолог
 
01.12.14
18:13
Попробуй заменить ЗНАЧЕНИЕ на параметры

ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Запас)
26 g00dtlt
 
02.12.14
00:44
а слабо выполнить и замерить свой запрос в консоли запросов?
27 Reaper_1c
 
02.12.14
01:51
??, ну ни в жисть не поверю, что при работе со списком одновременно нужны и номенклатура и характеристики одновременно. Открой типовой подбор и посмотри насколько он работает лучше этого, а?
Кроме того, совершенно не понятно пересчитываются ли у тебя итоги (судя по тексту - у тебя древняя УНФ, в которой автоматического пересчета итогов не предусмотрено). А полный пересчет нужно делать регулярно, так же как и реиндексацию таблиц.
28 Reaper_1c
 
02.12.14
01:51
Жаль, очень жаль, что форум не понимает букву "Ять"!
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс