Имя: Пароль:
1C
1С v8
Долгое время обновления динамического списка
0 maksyandra
 
30.12.21
19:54
Есть доработанная УПП. В ней есть обработка с управляемой формой, на которой размещен динамический список. В зависимости от выбранных на форме отборов динамический список обновляется. Проблема в том что обновление этого списка у всех происходит
с разным временем у кого-то 10 сек, а у кого-то 80. В не зависимости от прав пользователя. Подскажите куда рыть???
1 H A D G E H O G s
 
30.12.21
19:57
В сторону отборов
2 SuperMario
 
03.01.22
13:23
(0) в сторону запроса этого динамического списка. Идеально, конечно, увидеть план запроса и покури внимательней код 1С.  
Не исключаю, что с клиента дергают его обновление по несколько раз без толку.

Более подробно только вскрытие покажет ))
3 timurhv
 
03.01.22
13:59
(0) Отключить группировку и все полетит
4 maksyandra
 
04.01.22
11:55
ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка КАК Ссылка,
    РеализацияТоваровУслуг.Дата КАК Дата,
    РеализацияТоваровУслуг.Номер КАК Номер,
    РеализацияТоваровУслуг.Контрагент КАК Получатель,
    РеализацияТоваровУслуг.ГородДоставки КАК ГородДоставки,
    РеализацияТоваровУслуг.Комментарий КАК Комментарий,
    тчРТиУ.Количество КАК Количество,
    тчРТиУ.Вес КАК Вес,
    тчРТиУ.Объем КАК Объем,
    РеализацияТоваровУслуг.Ответственный КАК Ответственный,
    РеализацияТоваровУслуг.СпособДоставки КАК СпособДоставки,
    "РТИУ" КАК ТипДокумента
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
            СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
            СУММА(РеализацияТоваровУслугТовары.Номенклатура.ЕдиницаХраненияОстатков.Вес * РеализацияТоваровУслугТовары.Количество) КАК Вес,
            СУММА(РеализацияТоваровУслугТовары.Номенклатура.ЕдиницаХраненияОстатков.Объем * РеализацияТоваровУслугТовары.Количество) КАК Объем
        ИЗ
            Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ГДЕ
            РеализацияТоваровУслугТовары.Ссылка.Проведен = ИСТИНА
            И РеализацияТоваровУслугТовары.Ссылка.Склад В(&СписокСкладов)
            И НЕ РеализацияТоваровУслугТовары.Ссылка В (&СписокОбработаныхНакладных)
            И РеализацияТоваровУслугТовары.Ссылка.ТипДоставки <> ЗНАЧЕНИЕ(Перечисление.ТипДоставки.Самовывоз)
            И РеализацияТоваровУслугТовары.Ссылка.Дата > ДАТАВРЕМЯ(2020, 5, 1, 0, 0, 0)
        
        СГРУППИРОВАТЬ ПО
            РеализацияТоваровУслугТовары.Ссылка) КАК тчРТиУ
        ПО РеализацияТоваровУслуг.Ссылка = тчРТиУ.Ссылка
ГДЕ
    РеализацияТоваровУслуг.Проведен = ИСТИНА
    И РеализацияТоваровУслуг.Склад В(&СписокСкладов)
    И НЕ РеализацияТоваровУслуг.Ссылка В (&СписокОбработаныхНакладных)
    И РеализацияТоваровУслуг.ТипДоставки <> ЗНАЧЕНИЕ(Перечисление.ТипДоставки.Самовывоз)
    И РеализацияТоваровУслуг.Дата > ДАТАВРЕМЯ(2020, 5, 1, 0, 0, 0)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ПеремещениеТоваров.Ссылка,
    ПеремещениеТоваров.Дата,
    ПеремещениеТоваров.Номер,
    ПеремещениеТоваров.СкладПолучатель,
    ПеремещениеТоваров.СкладПолучатель.ГородДоставки,
    ПеремещениеТоваров.Комментарий,
    тчПеремещение.КоличествоЕдиницТоваров,
    тчПеремещение.Вес,
    тчПеремещение.Объем,
    ПеремещениеТоваров.Ответственный,
    "Перемещение",
    "Перемещение"
ИЗ
    Документ.ПеремещениеТоваров КАК ПеремещениеТоваров
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ПеремещениеТоваровТовары.Ссылка КАК Ссылка,
            СУММА(ПеремещениеТоваровТовары.Количество) КАК КоличествоЕдиницТоваров,
            СУММА(ПеремещениеТоваровТовары.Номенклатура.ЕдиницаХраненияОстатков.Вес * ПеремещениеТоваровТовары.Количество) КАК Вес,
            СУММА(ПеремещениеТоваровТовары.Номенклатура.ЕдиницаХраненияОстатков.Объем * ПеремещениеТоваровТовары.Количество) КАК Объем
        ИЗ
            Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
        ГДЕ
            ПеремещениеТоваровТовары.Ссылка.Проведен = ИСТИНА
            И ПеремещениеТоваровТовары.Ссылка.СкладОтправитель В(&СписокСкладов)
            И НЕ ПеремещениеТоваровТовары.Ссылка В (&СписокОбработаныхНакладных)
            И ПеремещениеТоваровТовары.Ссылка.Дата > ДАТАВРЕМЯ(2020, 5, 1, 0, 0, 0)
        
        СГРУППИРОВАТЬ ПО
            ПеремещениеТоваровТовары.Ссылка) КАК тчПеремещение
        ПО ПеремещениеТоваров.Ссылка = тчПеремещение.Ссылка
ГДЕ
    ПеремещениеТоваров.Проведен = ИСТИНА
    И ПеремещениеТоваров.СкладОтправитель В(&СписокСкладов)
    И НЕ ПеремещениеТоваров.Ссылка В (&СписокОбработаныхНакладных)
    И ПеремещениеТоваров.Дата > ДАТАВРЕМЯ(2020, 5, 1, 0, 0, 0)
5 maksyandra
 
04.01.22
11:56
Запрос из ДС выше
6 hhhh
 
04.01.22
12:01
(5) ну вот эта хрень должна обязательно тормозить

         И РеализацияТоваровУслугТовары.Ссылка.Склад В(&СписокСкладов)
            И НЕ РеализацияТоваровУслугТовары.Ссылка В (&СписокОбработаныхНакладных)
            И РеализацияТоваровУслугТовары.Ссылка.ТипДоставки <> ЗНАЧЕНИЕ(Перечисление.ТипДоставки.Самовывоз)
  
поэтому смиритесь.
7 acht
 
04.01.22
12:08
(6) Да это еще малая из бед. Основное там в ПОЛНОЕ СОЕДИНЕНИЕ и ОБЪЕДИНИТЬ ВСЕ в списке без основной таблицы... Боюсь представить, во что СКД превращает ЭТО после наложения отборов и группировок.

(0) Смиритесь, вы сами создали эту реальность.
8 SuperMario
 
04.01.22
12:08
(4) Ёптудэй )))
У вас не динамический список, а целый отчет зафигачен))

(6) да там не только на этом будет тормозить. Там и полное соединение с вложенным запросом и агрегация... ужас. А если еще и RLS то бедный планировщик запроса :(

Вы себе отдаете отчет, что при каждом скороллинге этого списка будет полностью запрос выполнен?

Хотя бы какая в этом списке основная таблица?
9 Ёпрст
 
04.01.22
12:08
ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ

дальше можно не читать
10 acht
 
04.01.22
12:09
(8) > основная таблица
Никакая. Оно не даст ее установить.
11 SuperMario
 
04.01.22
12:11
(10) ну тогда мои соболезнования автору)
12 maksyandra
 
04.01.22
12:27
Я предупреждал заказчиков что будет тормозить. Но им нужны все эти данные.
13 SuperMario
 
04.01.22
12:59
(12) а  оставить список в покое и сделать его по прямому назначению?

Вынести "хотелки" заказчика в отчет?


имхо: если заказчик попросит спрыгнуть с крыши, не делайте этого! ))))))))))
14 Xapac
 
04.01.22
13:01
(0) Сортировки нет? по како-муто "нехорошему" полю
15 SuperMario
 
04.01.22
13:12
(14)  прием тут сортировка? Запрос в корне неверно построен.
16 palsergeich
 
04.01.22
13:32
(12) Ну если нужно - подождут.
17 maksyandra
 
04.01.22
13:46
(13) Им нужно вывести эти данные на форму, выбирать их в табличную часть, потом на основании выбранных данных создается документ и т.д. Видеть они хотят все в одном окне. Отчет тут не поможет.
18 maksyandra
 
04.01.22
13:47
(15) Я понимаю что в ДС такое количество данных не выводят. Но может можно как-то оптимизировать запрос.
19 acanta
 
04.01.22
13:53
Или городить архитектуру с регистра сведений, который будет отображаться один-к,одному в динамическом списке, а формироваться где-то как-то другими способами
20 opus70
 
04.01.22
13:56
заведите регистр сведений и при записи из формы обновляйте его а от туда уже тяните данные по документам
21 opus70
 
04.01.22
13:58
ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка КАК Ссылка,
    РеализацияТоваровУслуг.Дата КАК Дата,
    РеализацияТоваровУслуг.Номер КАК Номер,
    РеализацияТоваровУслуг.Контрагент КАК Получатель,
    РеализацияТоваровУслуг.ГородДоставки КАК ГородДоставки,
    РеализацияТоваровУслуг.Комментарий КАК Комментарий,
    тчРТиУ.Количество КАК Количество,
    тчРТиУ.Вес КАК Вес,
    тчРТиУ.Объем КАК Объем,
    РеализацияТоваровУслуг.Ответственный КАК Ответственный,
    РеализацияТоваровУслуг.СпособДоставки КАК СпособДоставки,
    "РТИУ" КАК ТипДокумента
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        СОЕДИНЕНИЕ регистрсведений.тчРТиУ .....
22 Xapac
 
04.01.22
14:37
(15)Сортировка  для динамического списка - это прям зло.
23 maksyandra
 
04.01.22
14:37
(20) Думал об этом. Надо попробовать.
24 Смотрящий
 
04.01.22
14:46
(23) Перепиши запрос. С ходу - накладывай отбор один раз, группируй и разыменовывай. В 2-3 раза скорость повысится
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший