|
ПриВыводеСтроки - вешается комп и 1с | ☑ | ||
---|---|---|---|---|
0
Нуф-Нуф
11.11.11
✎
12:01
|
табличное поле в 3 колонки и в несколько строк
если добавляю в процедуре ПриВыводеСтроки обработчик в котором меняю отображаемый текст в строке и меняю значение в таблице значений: // ОформлениеСтроки.Ячейки.СерияНоменклатуры.Текст = ""+ДанныеСтроки.СерияНоменклатуры.Номер+" "+Формат(ДанныеСтроки.СерияНоменклатуры.Дата,"ДФ=dd.MM.yyyy"); //ДанныеСтроки.НомерСтроки = ДанныеСтроки.Владелец().Индекс(ДанныеСтроки)+1; то работа вешается наглухо, начинаются дикие тормоза вплоть до того как 1с не закрою. кто сталкивался? |
|||
1
Maxus43
11.11.11
✎
12:02
|
//ДанныеСтроки.НомерСтроки = ДанныеСтроки.Владелец().Индекс(ДанныеСтроки)+1;
вот это зачем? |
|||
2
Axel2009
11.11.11
✎
12:02
|
вывод строки зацикливается?
|
|||
3
Живой Ископаемый
11.11.11
✎
12:02
|
и этот человек называл копрокодом короткое имя переменной....
|
|||
4
Нуф-Нуф
11.11.11
✎
12:03
|
мне нужна нумерация строк в табличном поле
(2) эээ походу точно. так как меняю таблицу значений - он снова ее пытается вывести? |
|||
5
Maxus43
11.11.11
✎
12:03
|
(4) номер тоже оформлением строки делай
|
|||
6
Нуф-Нуф
11.11.11
✎
12:03
|
(3) посыпаю голову пеплом... скопировал сей код с форума (кстати этого)
|
|||
7
Нуф-Нуф
11.11.11
✎
12:03
|
(5) ну да, так и сделаю. спасибо
|
|||
8
Нуф-Нуф
11.11.11
✎
12:04
|
(3) а короткое имя переменной - это копрокод
|
|||
9
guitar_player
11.11.11
✎
12:31
|
(8) пробелы в коде хоть поставь...
|
|||
10
hhhh
11.11.11
✎
12:35
|
(8) ну вот эта фигня
ДанныеСтроки.СерияНоменклатуры.Номер это запрос в цикле. Хоть понимаешь? Обычно за такое сразу расстреливают. |
|||
11
Нуф-Нуф
11.11.11
✎
12:36
|
(10) о каком цикле идет речь?
|
|||
12
acsent
11.11.11
✎
12:38
|
(10) Если справочник состоит из пары полей, то ваще фигня
|
|||
13
Поручик
11.11.11
✎
12:40
|
(11) Процедура ПриВыводеСтроки вызывается фактически в цикле при отображении списка.
И вообще ПриВыводеСтроки используют только лохи педальные. Пацаны ПриПолучении данных. |
|||
14
Нуф-Нуф
11.11.11
✎
12:44
|
(13) при получении данных ты предлагаешь обрабатывать всю табчасть?
|
|||
15
Нуф-Нуф
11.11.11
✎
12:44
|
т.е. офомление всех строк?
|
|||
16
Нуф-Нуф
11.11.11
✎
12:45
|
ктстати, выдержка из СП
ТабличноеПоле.ПриПолученииДанных (TableBox.OnDataGet) Возникает при получении данных табличным полем, после обработки событий ПриВыводеСтроки. |
|||
17
Михаил Козлов
11.11.11
✎
12:49
|
Еще заметил (не знаю, прав ли), что ПриВыводеСтроки вызывается несколько раз. Похоже, что для каждой колонки, но до конца не разобрался.
|
|||
18
Нуф-Нуф
11.11.11
✎
12:49
|
ну где желающие поспорить?
|
|||
19
hhhh
11.11.11
✎
12:57
|
(17) при установке отбора вызывается. Поэтому если при открытии формы устанавливаешь отбор, то вызывается четко 2 раза для каждой строки.
|
|||
20
Axel2009
11.11.11
✎
13:14
|
(16) да никто не спорит. вопрос в том, что ДанныеСтроки.СерияНоменклатуры.Номер вызывается для каждой строки. а если в получении данных делать, тогда можешь получить для всех серий номера и присвоить
|
|||
21
Maxus43
11.11.11
✎
13:15
|
ПриВыводеСтроки вызывается при перерисовке строк в ТЧ, даже если размер окна поменяете - вывовется, чего гадать то
|
|||
22
Axel2009
11.11.11
✎
13:15
|
(19)+а еще если переключился между окнами, то при выводе строки вызывается еще раз =) в общем если в отладчике бацнуть бряк при выводе строки, то будет рекурсия
|
|||
23
Михаил Козлов
11.11.11
✎
13:22
|
(17) Видимо этот эффект был на старой платформе (может еще 8.0). Сейчас не заметил.
Еще полезно завести кэш для уже выведенных строк, чтобы при скроллинге туда-сюда не лазить за данными. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |