Имя: Пароль:
1C
1С v8
как можно ускорить работу формы списка, управляемой?
,
0 dreamoff
 
15.11.14
13:47
у заказчика,есть переписанная конфа "управление сервисным центром".есть форма списка документа.на котором 7 закладок с динамическим списком и произвольным запросом в нем.основная таблица для дс-журнал документов.все запросы одинаковые,отличаются только одним условием по статусу документа.подскажите,можно ли как оптимизировать это дело(очень долго открывается список),не только оптимизацией запросов,и оставить эти закладки на форме?
1 YHVVH
 
15.11.14
14:40
попробовать конечно можно
2 YHVVH
 
15.11.14
14:41
предложит купить железо новое, чтоб быстродействие было лучше
3 dreamoff
 
15.11.14
15:29
(2) это конечно хороший вариант.но думаю будет не скоро такое счастье)
попробовал разделить выполнение запросов по закладкам.да,список стал открываться заметно быстрее,но теперь тормоза при переключением закладок((
4 arsik
 
гуру
15.11.14
15:41
одним запросом все отбирай во временную таблицу, а по закладкам уже свой запрос, с фильтром
5 katc
 
15.11.14
15:48
7 закладок и один список или все же 7 динамических списков и виден только один?.
6 Эмбеддер
 
15.11.14
15:50
покажите запрос, может создание индекса поможет ускорить
7 ifso
 
15.11.14
16:00
(0)
> очень долго открывается список
есть уверенность, что трабла именно в запросе, а не в передаче данных клиенту?
8 dreamoff
 
15.11.14
17:23
(6) вот запрос.я его модифицировал.список стал открываться в 2 раза быстрее.у остальных запросов прибавляется только еще одно условие по статусу
ВЫБРАТЬ
    СЦентр_ДокументыПоРемонтуИОбслуживанию.Дата,
    СЦентр_ДокументыПоРемонтуИОбслуживанию.Номер,
    СЦентр_ДокументыПоРемонтуИОбслуживанию.Организация,
    СЦентр_ДокументыПоРемонтуИОбслуживанию.СтруктурнаяЕдиница,
    СЦентр_ДокументыПоРемонтуИОбслуживанию.Номенклатура,
    СЦентр_ДокументыПоРемонтуИОбслуживанию.Характеристика,
    СЦентр_ДокументыПоРемонтуИОбслуживанию.ЕдиницаИзмерения,
    СЦентр_ДокументыПоРемонтуИОбслуживанию.Этап,
    СЦентр_ДокументыПоРемонтуИОбслуживанию.РезультатВыполненияЭтапа,
    СЦентр_ДокументыПоРемонтуИОбслуживанию.СуммаДокумента,
    СЦентр_ДокументыПоРемонтуИОбслуживанию.СерийныйНомер,
    СЦентр_ДокументыПоРемонтуИОбслуживанию.ВалютаДокумента,
    СЦентр_ДокументыПоРемонтуИОбслуживанию.Инженер,
    СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка,
    ВЫБОР
        КОГДА СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка ССЫЛКА Документ.СЦентр_ПриемВРемонт
            ТОГДА ЗНАЧЕНИЕ(Справочник.СЦентр_ВидыЭтаповРемонта.ПриемВРемонт)
        ИНАЧЕ "Выезд мастера"
    КОНЕЦ КАК ТекущийЭтап,
    ВЫБОР
        КОГДА СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка ССЫЛКА Документ.СЦентр_ПриемВРемонт
            ТОГДА 1
        ИНАЧЕ 9
    КОНЕЦ КАК НомерТекущегоЭтапа,
    ЕСТЬNULL(РасчетыСПокупателямиОстатки.СуммаВалОстаток, 0) КАК Задолженность,
    ВЫБОР
        КОГДА СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка ССЫЛКА Документ.СЦентр_ПриемВРемонт
            ТОГДА СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка.ДатаОкончания
        КОГДА СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка ССЫЛКА Документ.СЦентр_ВыездМастера
            ТОГДА СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка.ПланДатаОкончания
    КОНЕЦ КАК ДатаОкончания,
    СЦентр_ДокументыПоРемонтуИОбслуживанию.СуммаДокумента КАК СуммаРемонта
ИЗ
    ЖурналДокументов.СЦентр_ДокументыПоРемонтуИОбслуживанию КАК СЦентр_ДокументыПоРемонтуИОбслуживанию
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСПокупателями.Остатки(, ТипРасчетов = ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Долг)) КАК РасчетыСПокупателямиОстатки
        ПО СЦентр_ДокументыПоРемонтуИОбслуживанию.Организация = РасчетыСПокупателямиОстатки.Организация
            И СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка.Контрагент = РасчетыСПокупателямиОстатки.Контрагент
            И СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка.Договор = РасчетыСПокупателямиОстатки.Договор
ГДЕ
    (СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка ССЫЛКА Документ.СЦентр_ПриемВРемонт
            ИЛИ СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка ССЫЛКА Документ.СЦентр_ВыездМастера)
    И &Формировать
9 dreamoff
 
15.11.14
17:23
(7)нет такой уверенности.подскажите,как можно проверить это?
10 dreamoff
 
15.11.14
17:25
(4)как я понимаю,если создать временную таблицу при создании формы списка ,то дс всегда будет к ней обращаться и при добавлении новых значений не будут отображаться в списке?
11 Reaper_1c
 
15.11.14
17:49
(10) Двойка тебе - динамические списки не поддерживают запросы с временными таблицами.
Ускорить можно - нужно отказаться от статусов на закладках, отбор по статусу реализовать полем ввода со списком выбора над динамическим списком, так же, как сделаны отборы по организации/типу документа в самом журнале.
12 Эмбеддер
 
15.11.14
17:53
я с журналами как-то сильно не сталкиваюсь, поэтому сильно не пинайте
вот здесь нет ссылки
СЦентр_ДокументыПоРемонтуИОбслуживанию.Организация
а здесь
СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка.Контрагент
и здесь
СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка.Договор
она есть.
просто нет графы в журнале? может, добавить графу?
ну и такую информацию тоже можно записывать в графу журнала
КОГДА СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка ССЫЛКА Документ.СЦентр_ВыездМастера
            ТОГДА СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка.ПланДатаОкончания
    КОНЕЦ КАК ДатаОкончания
и насколько быстро работает в отборе проверка ССЫЛКА? может сделать дополнительное поле тип перечисление с отбором?
13 Reaper_1c
 
15.11.14
20:42
(12) Тут дело не в этом - у него на форме по факту 7 (!) демонических списков. При старте формы платформа инициирует получение из базы данных 7 списков. Хотя когда форма откроется - пользователь увидит только один. И не факт, что откроет хотя бы второй из семи за весь сеанс работы. Отказ от вкладок - ускорение открытия формы в ~7 раз.
14 dreamoff
 
15.11.14
20:45
(11)(12)признаюсь,не очень хорошо знаю уф(я понимаю,что отказ от этих вкладок ускорит открытие списка,но заказчик привык работать с другой прогой(название не вспомню сейчас) и хочет именно такой вид
15 dreamoff
 
15.11.14
20:46
не (12),а (13)  перепутал))
16 ifso
 
15.11.14
20:47
(9) удобным для себя способом оценить и сравнить время, затрачиваемое на выполнение запроса и время на вывод данных на форму
17 dreamoff
 
15.11.14
20:49
(12) большинство реквизитов в запросе и есть графы
18 dreamoff
 
15.11.14
20:51
(16) время запроса можно оценить,через профайлер.а во вывод данных...подскажите,пожалуйста,как?
19 ifso
 
15.11.14
21:42
(18) в общем случае ВремяВсего - ВремяНаЗапрос
20 mdocs
 
15.11.14
21:46
как вариант сделать фиктивные вкладки где при смене вкладки меняется отобор одного списка.
21 Drac0
 
15.11.14
22:25
(8) поменяй архитектуру немнгго, что избавиться от конструкции ВЫБОР КОГДА. Добавь вспомогательный регистр по статусам.

Условие в ГДЕ с ИЛИ замени на ОБЪЕДИНЕНИЕ двух запросов с ВЫРАЗИТЬ.
22 Reaper_1c
 
15.11.14
22:25
(14) Ну так и скажи ему прямо, что вот так как он хочет - программа будет работать так как она работает. Пусть выбирает между своими "хочу" и комфортной работой в программе.
23 Drac0
 
15.11.14
22:26
(13) Нет. ДС работают хитрее: они получают данные при активации их закладки. Можешь проверить.
24 Drac0
 
15.11.14
22:28
(8) глянь, что у тебя с индексами в реквизитах, которые соединяешь. Если можешь достать план скулевого запроса будет хорошо.
25 Reaper_1c
 
15.11.14
22:28
(23) А я где-то говорил, что при активации закладки ничего не происходит?
26 Drac0
 
15.11.14
22:31
(25) в (13) ты пишешь "При старте формы платформа инициирует получение из базы данных 7 списков." но это не так. ДС получает данные при активации его закладки.
27 Reaper_1c
 
15.11.14
22:51
(26) Вот ты сначала сходи и проверь, что делает система до того, как форма окажется на экране, ага? В той же УТ 11.0 форма "Выписки по расчетным счетам" наглядно демонстрирует масштаб проблемы, если в базе есть данные хотя бы за пару лет.
28 IamAlexy
 
15.11.14
22:55
(0) отказаться от ДС.

если запросы сложные, статусы собираются - фиг что сделаешь..
29 Torquader
 
16.11.14
00:09
А не проще ли все данные, необходимые для отображения уже собрать в каком-то регистре сведений, чтобы на форме его показывать.
Можно же посмотреть, какими отборами пользуются, а какие никто и не пробовал, чтобы увеличить быстродействие действительно важного.