Имя: Пароль:
1C
1С v8
Программное заполнение ДереваЗначений уф
0 zladenuw
 
07.11.17
16:15
60 тысяч позиций товара заполняет где то от 15 до 20 секунд
Можно ли как ускорить этот процесс ?
Делаю выборку. Потом программно заполняю дерево.
    Запрос.УстановитьПараметр("ЕстьПоиск",ЗначениеЗаполнено(ЭтотОбъект.ПолныйПоиск));
        Запрос.УстановитьПараметр("Поиск","%"+ЭтотОбъект.ПолныйПоиск+"%");
        Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        
        ОбъектСпДерево.Строки.Очистить();
        Пока Выборка.Следующий() Цикл
        
            Доб = ОбъектСпДерево.Строки.Добавить();
            Доб.Товар = Выборка.Ссылка;
            Доб.Ссылка = Выборка.Ссылка.УникальныйИдентификатор();
            Доб.Артикул = Выборка.Артикул;
            Доб.Производитель = Выборка.Производитель;
            
            ВыборкаХарактеритиска = Выборка.Выбрать();
            Пока ВыборкаХарактеритиска.Следующий() Цикл
                 ДобХаракт = Доб.Строки.Добавить();
                 ДобХаракт.Товар = ВыборкаХарактеритиска.Характеристика;
                 ДобХаракт.Ссылка = ВыборкаХарактеритиска.Характеристика.УникальныйИдентификатор();
                 ДобХаракт.Артикул = ВыборкаХарактеритиска.Артикул;
                //ДобХаракт.Производитель = Выборка.Производитель;
            КонецЦикла;    
        КонецЦикла;
1 Buster007
 
07.11.17
16:17
Замер сделай и посмотри, какие строки у тебя занимают больше всего времени
2 DrShad
 
07.11.17
16:18
загружать из результата запроса
3 Cyberhawk
 
07.11.17
16:19
Зачем заполнять дерево из 60 тысяч строк сразу?
4 zladenuw
 
07.11.17
16:20
(2) хм. а как тогда запихнуть характеристику в номенклатуру ? :)

(3) а как тогда ?
5 DrShad
 
07.11.17
16:22
(4) собрать ее в запросе, не?
6 GANR
 
07.11.17
16:22
(0) А зачем тут дерево? Нельзя ли соответствие или ТЗ задействовать - эти объекты-то полегче будут.
7 Buster007
 
07.11.17
16:23
ЗначениеВРеквизитФормы(Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам), ИмяРеквизита)
8 GANR
 
07.11.17
16:23
Запрос.УстановитьПараметр("Поиск","%"+ЭтотОбъект.ПолныйПоиск+"%"); - вот это гарантированно даст тормоза
9 zladenuw
 
07.11.17
16:24
(8) как раз тут. не тупит. если делает поиск. занимает 1 секунду на запрос и построение дерева.
тупит когда выводит все :)
а мне туда еще склады и цены добавить нужно.
10 DrShad
 
07.11.17
16:25
(9) не нужно тебе это все, поверь
11 DrShad
 
07.11.17
16:25
такое дерево актуально будет только в виде отчета
12 zladenuw
 
07.11.17
16:27
(10) (11) мне оно да. А вот люди захотели именно так.
Есть реализация для толстого клиента. Хотят для УФ
13 GANR
 
07.11.17
16:29
(12) а в толстом, значицца, быстро работает с таким же объемом данных?
14 zladenuw
 
07.11.17
16:31
(13) чуток да. с учетом что там и цены и остатки выводятся :) а тут без этого. Мне бы за 5 секунд формирование :)
15 DrShad
 
07.11.17
16:32
(14) ну и чем в УФ отличается от ОФ, кроме (7)?
16 DrShad
 
07.11.17
16:33
возьми все то же самое и через (7) кидай на форму
17 zladenuw
 
07.11.17
16:33
попробую
18 Cyberhawk
 
07.11.17
16:33
(4) От сценариев использования плясать надо. Отсюда не видно.
19 GANR
 
07.11.17
16:35
(14) Если не поможет (7) можно еще попробовать убрать ссылочные типы из состава того, что выводится на форму (вывести строки только).
20 zladenuw
 
07.11.17
16:43
(19) это сделал сразу. пробую сразу результат на форму.
21 zladenuw
 
07.11.17
16:43
мда уж 46 секунд :)
22 GANR
 
07.11.17
16:52
(21) А если вообще убрать ссылки из результата запроса и из дерева? Только примитивные типы оставить.
23 zladenuw
 
07.11.17
16:54
в консоле запрос выполняется за 865мс.
долго идет загрузка в дерево
24 GANR
 
07.11.17
16:56
(23) ссылки ПОЛНОСТЬЮ из дерева убрал?
25 GANR
 
07.11.17
16:58
Запости-ка замер производительности кода из (0). Посмотрим в каких точках тормоза.
26 zladenuw
 
07.11.17
18:35
Во зараза. убрал все ссылки. строкам выставил размерности. и чудо. 2 секунды :)
27 zladenuw
 
07.11.17
18:36
да и заменил вот это
значениевданныеформы
на
ЗначениеВРеквизитФормы
28 zladenuw
 
07.11.17
18:39
как задать ширину колонки.
В конфиге меняю. но все равно нужно раздвигать колонку
http://prntscr.com/h7dp2k
29 Cyberhawk
 
07.11.17
18:50
(28) Формат поля на первой вкладке СКД, либо Оформление в настройках СКД
30 GANR
 
07.11.17
19:08
(26) Во! Ссылка по-ходу выливается в неявный запрос в цикле.
31 zladenuw
 
07.11.17
19:14
(30) так главное. это дерево пухло. помещение дерево в реквизит формы до 1 секунды идет.
(29) так ставлю ширину такую как настроил на форме. и пофиг. режит ее.
32 zladenuw
 
07.11.17
19:15
(30) еще добавлю цены и остатки. и посмотрим. но не думаю что должно тупить. при таком подходе динамический нормально работает. его бы и использовал но есть товар с характеристиками. и нужно выводить их в группировке
33 zladenuw
 
07.11.17
19:16
(30) Сейчас больше времени занимает старт самого предприятия. я думал вообще поместить в фоновое задание. а потом результат поместить на форму. только вот теперь думаю или стоит такое делать :)
34 GANR
 
07.11.17
19:22
(33) К этому прибегать только если никак не получится ускорить. Замучаешься эти фоновые задания эти отлаживать потом.
35 Cyberhawk
 
07.11.17
19:23
(31) Нужно не ширину ставить, а минимальную ширину
36 zladenuw
 
07.11.17
19:26
(35) да нашел где собака зарыта. общая ширина группы не позваляло. так как потом динамически меняется отображение еще 10 колонок :) по ширине не проходило.
а за совет спасибо. пробую.
37 zladenuw
 
07.11.17
19:28
есть еще момент.
Хочу при вводе в поле ввода.сразу искать.
Но вот смотрю событие нельзя делать вызов сервера :(
Расширение поля формы для поля ввода (Form field extension for a text box)
АвтоПодбор (AutoComplete)

В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.
Походу вариант с фоновым ?
38 zladenuw
 
07.11.17
19:29
(35) что то не вижу такого http://prntscr.com/h7efic
39 Cyberhawk
 
07.11.17
20:02
(38) А, так у тебя своя форма что ли
40 zladenuw
 
07.11.17
20:32
(39) да :)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс