|
v7: Непрекращающийся вызов функции. | ☑ | ||
---|---|---|---|---|
0
Eeakie
18.04.14
✎
00:57
|
Справочник. Форма списка. На колонке висит функция (BRUSH_S), красящая текущую строку.
Открываю справочник, а дальше никаких манипуляций, НО функция постоянно вызывается. За минуту вызвалась 1300 раз. Что за такое...? |
|||
1
Zhuravlik
18.04.14
✎
01:08
|
Это так клюшки работают) Чтоб не вызывать 1300 раз ставь защиту.
|
|||
2
Eeakie
18.04.14
✎
01:13
|
(1) Это я так решил потестить вызов процедур/функций во всей конфе... просто охренел. Может в формексе дело?
Защиту поставить? Думал уже, но как? |
|||
3
Eeakie
18.04.14
✎
01:15
|
Кстати, такая же беда и в ТЧ документов...
|
|||
4
Zhuravlik
18.04.14
✎
01:33
|
(2)(3) Можно еще текстовое поле кинуть на форму обработки, на закладке дополнительно прописать вызов функции "МояФункция()", а в теле обработки такой код:
Перем Счетчик; Функция МояФункция() Счетчик = Счетчик +1; Сообщить("Эта " + Счетчик + " вызов..."); КонецФункции Счетчик =0; |
|||
5
Zhuravlik
18.04.14
✎
01:34
|
+
|
|||
6
Zhuravlik
18.04.14
✎
01:35
|
Перем Счетчик;
Перем Защита; Функция МояФункция() Если Защита <> 0 Тогда Возврат; КонецЕсли; Счетчик = Счетчик +1; Сообщить("Эта " + Счетчик + " вызов..."); Защита = 1; КонецФункции Счетчик =0; Защита = 0; |
|||
7
Eeakie
18.04.14
✎
01:39
|
(6) Это, конечно, выход. Просто хотелось бы знать в чём причина такого "массового беспорядка" ;)
|
|||
8
Eeakie
18.04.14
✎
01:44
|
+(6) Хотя, я ведь в функцию всё равно буду попадать с той же регулярностью, только делать вместо одной строчки с "brush_s[]" проверку на значение переменной. Есть ли разница? По скорости выполнения разница в 1 миллисекунду в пользу проверки на счетчик.
|
|||
9
Eeakie
18.04.14
✎
01:48
|
А вообще это нормально, что клюшки так делают? :) Это стандартный механизм такой?
|
|||
10
Zhuravlik
18.04.14
✎
01:48
|
(8) в 77 вот так... я когда остатки окрашивал по условию в форме списка, так делал, практически не тупило =)
|
|||
11
Eeakie
18.04.14
✎
01:50
|
(10) Понял :) Буду пробовать :) Спасибо.
|
|||
12
Злопчинский
18.04.14
✎
03:56
|
(11) хрень у вас какая-то (могу конечно ошибаться..)... не должно так быть по идее.. что-то у вас постоянно форму обновляет
. убрать раскраску строки. поставить как журавлик нарисовал функцию в текст - смотреть обновляется или нет... |
|||
13
vcv
18.04.14
✎
06:35
|
Включить замер производительности в отладчике. Ничего не делать, через минуту выключить. Убедиться, что "За минуту вызвалась 1300 раз". Искать в результатах замера, кто и зачем дергает что-то типа Форма.Обновить().
|
|||
14
Ёпрст
18.04.14
✎
09:32
|
(0) нехрен писать в функциях Форма.Обновить()
|
|||
15
Ёпрст
18.04.14
✎
09:32
|
бездумно.
|
|||
16
Eeakie
18.04.14
✎
13:11
|
(13), (14), никаких Форма.Обновить() и в помине нет.
Оставил только одну функцию. Воткнул в неё "Сообщить(ТекущийЭлемент())". Открываю справочник: 4 элемента постоянно повторяются. Без остановки. (13) 1781 раз за 56 секунд. В функции стоит замер времени выполнения, кстати. Это может как-то влиять? |
|||
17
Eeakie
18.04.14
✎
13:12
|
(12) Не обновляется. Всё нормально. Но сам факт захода в функцию остается.
|
|||
18
Ёпрст
18.04.14
✎
13:18
|
(16) наивный какой, ищи лучше.
|
|||
19
Ёпрст
18.04.14
✎
13:19
|
+ смотреть, что в формулах текстовых колонок справочника
|
|||
20
Eeakie
18.04.14
✎
13:35
|
Почему каждая функция отрабатывает по 2 раза?
|
|||
21
oslokot
18.04.14
✎
13:41
|
(12) +1 у них форма обновляется, всего и делов то
|
|||
22
Eeakie
18.04.14
✎
13:56
|
(21) После срабатывания одной функции форма обновляется?
|
|||
23
Eeakie
18.04.14
✎
13:57
|
Включил все функции, так они вызываются по столько раз, сколько из всего.
|
|||
24
Eeakie
18.04.14
✎
14:26
|
Функции циклятся, когда внутри функции есть процедура, которая обновляет элемент справочника.
На пальцах: например, справочник, который хранит название функции и количество её вызовов. Т.е. при заходе в функцию перезаписывается элемент этого справочника на количество вызовов + 1. Если убрать Спр.Записать(), то всё отрабатывает нормально, иначе циклится вызов функции. Что за оно? |
|||
25
Ёпрст
18.04.14
✎
14:59
|
(24) даже не знаю, 86 ?
|
|||
26
Eeakie
18.04.14
✎
15:00
|
(25) 86?
|
|||
27
Ёпрст
18.04.14
✎
15:01
|
(26) твой год выпуска, не 86 случаем ?
А то судя по (24) - самое оно. Это где такому учат, чтобы в формуле реквизита записывать справочник ?.. |
|||
28
Ёпрст
18.04.14
✎
15:02
|
который автоматом вызывает обновление формы и так до бесконечности..
|
|||
29
Ёпрст
18.04.14
✎
15:02
|
+28 обновление формы вызывает функцию в формуле и.. см (27)
|
|||
30
Eeakie
18.04.14
✎
15:02
|
(28) Вооооот.. вызывает обновление формы...
|
|||
31
Ёпрст
18.04.14
✎
15:02
|
Ну и запись в формуле - это пять!
|
|||
32
Ёпрст
18.04.14
✎
15:03
|
хотя, пятница.. бухой видать да ?
Или уже весенний срез грибочков подоспел ? |
|||
33
Eeakie
18.04.14
✎
15:03
|
(31) Кстати, да, до Чернобыля совсем недалеко... ;)
|
|||
34
Eeakie
18.04.14
✎
15:05
|
(32) В любом случае это всё объяснило. Спасибо.
|
|||
35
Злопчинский
18.04.14
✎
21:27
|
Я безумно рад что в (12) я не ошибся!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |