Имя: Пароль:
1C
 
v8: Событие ПриПолученииДанных отрабатывает дважды
0 mikecool
 
16.03.10
15:52
Событие ПриПолученииДанных табличного поля отрабатывает дважды на один набор данных?
1 Волшебник
 
16.03.10
15:53
Тебе это мешает?
2 mikecool
 
16.03.10
15:53
спс за переименование, сам поздно спохватился :)
3 mikecool
 
16.03.10
15:53
(1) время, оно не резиновое
4 mikecool
 
16.03.10
15:54
у меня в нем отрабатывает запрос на получение доп данных и установка оных по текстовым полям
5 mikecool
 
16.03.10
15:55
+4 как бы быстро запрос не работал - зачем его запускать дважды...
6 agarych
 
16.03.10
15:57
(0) посмотри на ИТС там все написано.

Первый раз отрабатывает, для строк выше текущей строки, второй раз для текущей строки + все что ниже.

Кстати два раза он у тебя будет вызываться если ты кнопки page up, page down используешь. И один раз если колесиком мышки крутить.

А на самом деле это бесит )
7 mikecool
 
16.03.10
16:01
(6) спасибо, итс периодически почитываю, но его приносят быстрее, чем я успеваю читать :)
8 Stepa86
 
16.03.10
16:05
Запрос в ПриПолученииДанных??? айяйяй...
9 mikecool
 
16.03.10
16:06
(8) вариант?
10 mikecool
 
16.03.10
16:06
+9 нужно остатки по номенклатуре для формы списка номенклатуры + еще немного данных
11 mikecool
 
16.03.10
16:08
пишу так

   СписокНоменклатурыОграничение = Новый СписокЗначений;
   Для Каждого Оформление Из ОформленияСтрок Цикл
       Если Оформление.ДанныеСтроки.ЭтоГруппа Тогда
           Продолжить;
       КонецЕсли;
       
       СписокНоменклатурыОграничение.Добавить(Оформление.ДанныеСтроки.Ссылка);
   КонецЦикла;
   
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Склад", ВладелецФормы.Склад);
   Запрос.УстановитьПараметр("СписокНоменклатуры", СписокНоменклатурыОграничение);
   Запрос.УстановитьПараметр("Дата", ТекущаяДата());

   Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                  |    ТоварыПоМестамХраненияОстатки.Номенклатура,
                  |    ТоварыПоМестамХраненияОстатки.КоличествоОстаток КАК Остаток
                  |ИЗ
                  |    РегистрНакопления.ТоварыПоМестамХранения.Остатки(
                  |            &Дата,
                  |            Склад = &Склад
                  |                И Номенклатура В (&СписокНоменклатуры)) КАК ТоварыПоМестамХраненияОстатки";
                 
   ТаблицаРезультатов = Запрос.Выполнить().Выгрузить();
   
   Если ТаблицаРезультатов.Количество() = 0 Тогда
       Возврат
   КонецЕсли;
   
   Для Каждого Оформление Из ОформленияСтрок Цикл
       
       Остатки = ТаблицаРезультатов.Найти(Оформление.ДанныеСтроки.Ссылка, "Номенклатура");
       
       Если Остатки = Неопределено Тогда
           Продолжить;
       КонецЕсли;
       
       Оформление.Ячейки.Остаток.УстановитьТекст(Остатки.Остаток);
       Оформление.Ячейки.Остаток.Выравнивание = ГоризонтальноеПоложение.Право;
       
   КонецЦикла;

может и в натуре - я тормоз? :)
12 Stepa86
 
16.03.10
16:08
(10) 1) При открытии получить таблицу остатков по всей номенклатуре, а потом из этой таблице тянуть
2) Перейти на 8.2
13 Mitriy
 
16.03.10
16:09
(12)+ обновлять эту таблицу при желании...
14 Stim
 
16.03.10
16:10
(11) если ТП содержит под сотню строк, то у пользователя будут такие тормоза, что он проклянет весь твой род
15 mikecool
 
16.03.10
16:10
(12) гы, точно... туплю :)
16 Mitriy
 
16.03.10
16:10
(13)+ можно диначмически заполнять эту таблицу в ПриПолученииДанных, чтобы не получать данные каждый раз, и не получать остатки по всей номенклатуре... называется кеш...
17 mikecool
 
16.03.10
16:11
(14) как тебя однако судьба потрепала :)
у меня тела терпеливые :)
18 mikecool
 
16.03.10
16:13
(16) это доп форма подбора, думаю кеш не понадобится..
19 Stim
 
16.03.10
16:13
(17) всякому терпению может придти конец :)
Однажды обнаружишь за своей дверью ожидающего тебя пользователя с топором в дрожащих руках..
20 agarych
 
16.03.10
16:31
(11) Вывод переделай. Поиск по таблице результатов не очень то ) Посмотри проф. разработку, там сделано через "Соответствие".

to All: нормально он делает, самое главное не при выводе строки.
21 mikecool
 
16.03.10
16:32
(20) а запрос может выгружать в соответствие? или как?
22 Stepa86
 
16.03.10
16:35
(20) то есть тебя не смущает, когда форма по 5 минут открывается?
(21) тз с индексируемой колонкой по скорости обращения ничем от соответствия не отличается
23 agarych
 
16.03.10
16:36
(21)

   Ссылки = Новый Массив;
   Соответствие = Новый Соответствие;
   Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
       Документ = ОформлениеСтроки.ДанныеСтроки.Ссылка;
       Соответствие.Вставить(Документ, ОформлениеСтроки);
   КонецЦикла;
   
   Запрос = Новый Запрос;    
   Запрос.Текст = ТекстЗапроса;

   Выборка = Запрос.Выполнить().Выбрать();
   
   Пока Выборка.Следующий() Цикл    
        ОформлениеСтроки = Соответствие[Выборка.Документ];
       КонецПопытки;
24 agarych
 
16.03.10
16:36
(23) в конце КонецЦикла;
25 Stepa86
 
16.03.10
16:37
+(22) то есть перерисовывается при перемещении по списку
26 Птица
 
16.03.10
16:38
(22)мож, запросы кривые? периодически использую запросы в приполученииданных - никаких тормозов
27 Mitriy
 
16.03.10
16:39
(20) можно и ТЗ, все дело в индексах...
28 mikecool
 
16.03.10
16:40
(26) при маленьком списке - нормально, у меня склад на 10мбитной сетке сидит, есть один список - тормозит, переделаю...
(22) т.е. добавить индекс и поиск будет совсем быстрый? :)
29 Mitriy
 
16.03.10
16:40
(27)+ хотя, если по мне, то соответствие привычнее и удобнее ))
30 mikecool
 
16.03.10
16:41
(29)а что быстрее - перебор и добавление в соответствие или выгрузить результат запроса в тз? не мерял?
31 Mitriy
 
16.03.10
16:41
(28) по крайней мере мне об этом говорили люди, которым я склонен доверять...
32 Птица
 
16.03.10
16:42
(28)а при чем тут размер списка? данные-то каждый раз только на записи, попавше в экран, запрашиваются
33 Stepa86
 
16.03.10
16:42
+(31) Еж замерял вроде
34 Mitriy
 
16.03.10
16:42
(30) не мерял... вряд ли сильно будет отличаться...
35 agarych
 
16.03.10
16:42
(31) Аналогично. Замер показал что поиск по соответствию быстрее.
36 agarych
 
16.03.10
16:43
(35) чем поиск по таблице значений.
37 Mitriy
 
16.03.10
16:43
(35) чем по индексированной таблице?
38 mikecool
 
16.03.10
16:44
добавил индекс - вообще перестал задержку замечать при отрисовке
39 Stepa86
 
16.03.10
16:44
40 Mitriy
 
16.03.10
16:45
(39) ну вот... я даже не соврал ))
41 mikecool
 
16.03.10
16:46
вот спасибо, покурю ссылку
42 agarych
 
16.03.10
16:46
(22) Я согласен с тобой что некоторые формы могут открывать долго, но это все зависит от хотелок пользователей.
43 Mitriy
 
16.03.10
16:47
(42) чаще это зависит от криворукости программиста...
44 mikecool
 
16.03.10
16:47
(42) не, хотелки пользователей не должны влиять на производительность
45 NULLL
 
16.03.10
16:50
(23) А оно глючить не будет если два раза один документ попадется?
46 agarych
 
16.03.10
17:07
(45) нет не будет. сделай выбрать различные.

(44) хотелки всегда на производительность влияют, наши задача просто минимизировать потери в производительности.
47 NULLL
 
16.03.10
17:08
(46) Я не об этом, если в списке повторяющиеся данные?
48 agarych
 
16.03.10
17:17
(47) эээ... а как такое может быть? )