Вход | Регистрация


1С:Предприятие ::

Метки: 

Производительность динамического списка

Я
   ildary
 
03.11.17 - 10:23
Уважаемые специалисты, подскажите пожалуйста, можно ли ускорить открытие следующей формы:

УТ11, внешняя форма с динамическим списком документов, а под этим списком - второй, который выводит товары текущего документа из первого, вот так:
ГДЕ
    ЗаказКлиентаТовары.Ссылка = &ТекЗаказ

Проблема в том, что при появлении второго списка форма стала открываться значительно медленнее, хотя по умолчанию видимость второго списка отключена (включается галкой на форме).

Можно ли как-нибудь ускорить открытие формы? При открытии в параметр второго списка передается пустая ссылка.
 
  Рекламное место пустует
   Мыш
 
1 - 03.11.17 - 10:29
(0) Видим, не видим - а посчитать надо.
   DrShad
 
2 - 03.11.17 - 10:30
а зачем товары берутся из документа? почему не из регистров?
   ildary
 
3 - 03.11.17 - 10:33
(1) вот я и спрашиваю - а есть ли способ научить второй дин. список не считать, пока его не попросят?

(2) Чтобы видеть и менять вариант обеспечения (резерв, отгрузить) не заходя в документ. Я новичок и был не уверен, что брать эту информацию из регистра будет быстрее.
   DrShad
 
4 - 03.11.17 - 10:35
(3) в разы

а вообще брось эту затею, там на форме очень много меняется из-за обеспечения - ты все не пропишешь
   sanja26
 
5 - 03.11.17 - 10:37
(2) к тому что быстрый просмотр тч документа, например. Если данные туда уже собраны при создании документа, незачем их заново собирать.
   lodger
 
6 - 03.11.17 - 10:41
(5) это заказ. какое такое "собраны при создании документа"? я бы понял, если бы ты предложил не показывать результаты какого-то расчета по остаткам из нескольких таблиц с условиями.
но это заказ. в 99% случаев он просто натыкан из подбора.
почему общаться с виртуальной таблицей оборотов лучше чем с реальной таблицей ТЧ документов - учите матчасть.
   ildary
 
7 - 03.11.17 - 10:41
(4) мне не нужна форма документа заказа клиента (медленная), я хочу в форме списка быстро показать товары и их вариант обеспечения. Вот запрос второго дин. списка:

ВЫБРАТЬ
    ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
    ЗаказКлиентаТовары.Количество КАК Количество,
    ЗаказКлиентаТовары.ВариантОбеспечения КАК ВариантОбеспечения
ИЗ
    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ГДЕ
    ЗаказКлиентаТовары.Ссылка = &ТекЗаказ
   ildary
 
8 - 03.11.17 - 10:43
(6) Скажите пожалуйста, в каком регистре мне лучше брать нужную мне информацию? ЗаказыКлиентов?
   sanja26
 
9 - 03.11.17 - 10:47
(6) заказ, не заказ. К примеру там могут быть заданы определенные счета учёта или статьи затрат, склад списания на момент создания, какая-то ещё отметка по строке.
   DrShad
 
10 - 03.11.17 - 10:48
(8) лучше из регистра ОбеспечениеЗаказов
 
  Рекламное место пустует
   DrShad
 
11 - 03.11.17 - 10:49
(9) в УТ 11!? не смешите мои тапочки
   ildary
 
12 - 03.11.17 - 10:50
(10) Большое спасибо за пинок в нужном направлении.
   DrShad
 
13 - 03.11.17 - 10:51
(12) не за что
   toypaul
 
14 - 03.11.17 - 12:48
(6) "почему общаться с виртуальной таблицей оборотов лучше чем с реальной таблицей ТЧ" ну и почему же?
   toypaul
 
15 - 03.11.17 - 12:49
"При открытии в параметр второго списка передается пустая ссылка." надо не при открытии, а при создании устанавливать видимость и параметр.

Можно обнулять текст запроса
   ildary
 
16 - 03.11.17 - 13:07
(15) я ошибся - речь шла о ПриСозданииНаСервере. За идею обнулять текст запроса - большое спасибо! Я сам не додумался.
   youalex
 
17 - 03.11.17 - 13:17
(0) а зачем второй дин. список? Сделай таблицу формы, и заливай в нее данные ТЧ  ПриАктивизацииСтроки
   ildary
 
18 - 03.11.17 - 13:23
(17) просто вывести товары - это базовая функциональность второго списка. Далее я хочу выводить только неотгруженные товары (вычитая все товары, которые в подчиненых реализациях), а также товары только в резерве или только на отгрузку. Вдобавок открытие формы заказа - тормозная вещь (У11 лежит на медленном железе, еще и в виртуалке).
   DmitrO
 
19 - 03.11.17 - 13:30
(18)А еще такие вещи лучше снабжать развязкой через таймер.
в ПриАктивизацииСтроки запускать таймер:
ПодключитьОбработчикОжидания("ОбновитьВторойСписок", 0.1, Истина);
А в клиентской процедуре ОбновитьВторойСписок уже вызывать серверную, где по текущей строке первого обновлять второй список.
Если пользователь придавит стрелку клавиатуры в первом списке и будет бежать по нему (автоповтор), обновление второго списка произойдет только когда он отпустит клавишу.
   ildary
 
20 - 03.11.17 - 14:56
(19) большое спасибо за науку, пользуясь случаем хочу поблагодарить как контрибутора семерочных расширений типа 1C++.
   FIXXXL
 
21 - 03.11.17 - 15:32
(7) сделай кнопку и отдельную форму показа состава
лепить дин.список по товарам - гиблая затея и тормоза
   ildary
 
22 - 03.11.17 - 15:34
(21) на самом деле работает достаточно шустро (по сравнению с открытием формы заказа), тормоз добавился только при открытии.
   vde69
 
Модератор
23 - 03.11.17 - 15:36
зайду с другой стороны

ЗаказКлиентаТовары.Ссылка  - составной тип?
   ildary
 
24 - 03.11.17 - 15:39
(23) ЗаказКлиентаТовары - это ТЧ Товары у документа Заказы. А ссылка - это сам документ ЗаказКлиента и он не составной.
   FIXXXL
 
25 - 03.11.17 - 15:40
(22) завтра еще свистоперделки придумают и превратится список в тормозное Г
делай сразу нормально :)
   ildary
 
26 - 03.11.17 - 15:48
(25) я подумаю над отдельной формой.
   ptiz
 
27 - 03.11.17 - 16:20
(3) "есть ли способ научить второй дин. список не считать, пока его не попросят?" - а программно разве нельзя управлять источником данных дин.списка?
   ildary
 
28 - 03.11.17 - 16:35
(27) кстати, а что там лучше сделать? Я попробовал обнулить текст запроса - получил ошибку.
   ptiz
 
29 - 03.11.17 - 16:48
(28) Значит, другие свойства тоже надо менять.
   FIXXXL
 
30 - 07.11.17 - 11:21
(28) выбрать 1 как 1 подставь :)
   ildary
 
31 - 07.11.17 - 11:23
(30) как все просто, спасибо за совет, я не догадался...



Список тем форума
  Рекламное место пустует
Здесь во втором сообщении вам дадут решение, а в двадцатом дадут правильное решение. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует