|
Какое событие происходит при интерактивном смене текущей строки в ДС? | ☑ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0
Живой Ископаемый
28.12.16
✎
19:00
|
А то что-то ПриАктивизацииСтроки происходит больше раз чем пользователь делает движений
|
||||||||||
1
mszsuz
28.12.16
✎
19:13
|
В ПриАктивизацииСтроки нельзя обращаться к серверу, т.к. снова генерируется ПриАктивизацииСтроки.
|
||||||||||
2
Живой Ископаемый
28.12.16
✎
19:24
|
а как понято что есть?
например вот так я замером производительности воспользовался: http://screencast.com/t/rDLlOV3L00 Это оно? А почему идет обработка сервером? Из-за обращения к Элемент.ТекущиеДанные или к "Неопределено"? |
||||||||||
3
h-sp
28.12.16
✎
20:12
|
(2) доступность похоже. она же по-любому на сервере.
|
||||||||||
4
Живой Ископаемый
28.12.16
✎
20:26
|
блин, но ведь так не должно же быть, елки!
|
||||||||||
5
Fragster
гуру
28.12.16
✎
20:33
|
не текущиеданные, а текущаястрока
|
||||||||||
6
Fragster
гуру
28.12.16
✎
20:33
|
(3) доступность можно менять на клиенте
|
||||||||||
7
mszsuz
28.12.16
✎
20:34
|
(4) селяви
Здесь есть два варианта решения: 1) запоминать в переменной на клиенте текущую строку ДС и вызывать свою обработку события только при реальном изменении 2) в ПриАктивизацииСтроки добавить ПодключитьОбработчикОжидания("ТвояПроцедура", 0.1, Истина), а уже в ТвояПроцедура дергать сервер |
||||||||||
8
Fragster
гуру
28.12.16
✎
20:40
|
(4) должно быть
|
||||||||||
9
Живой Ископаемый
29.12.16
✎
00:18
|
короче, смотрите.
Есть верхний ДС. Например в нем две строки. по двойному щелчку мыши на любой строке этого ДС, берется значение одного поля, и по этому значению на сервере получаются детальные сведения (много), эти сведения возвращаются в структуре на клиента, и там уже выводятся в полях на многих вкладках. Теперь смотрите, при интерактивной смене строки верхнего ДС, необходимо нижние вкладки заблокировать (доступность = ложь) НО нельзя у пользователя отнимать возможность не просто сменить строку в ДС, а дважды щелкнуть по этой, второй стоке. При этом мы опять пойдем на сервер, получим детальные записи по ключу из второй строки, и опять вернем эту структуру с детальными данными на клиента, и там опять отобразятся в куче полей на кладках. При этом пользователю можно будет ходить по этим вкладкам (доступность = истина). Так вот до сих пор я смену доступности вешал на приавтивизациистроки. Пока не заметил такую отвратительную штуку, то если я дважды щелкну на ВТОРУЮ строку, прочитаются и выведутся детальные данные по ней, но (!!), при этом в силу каких-то неведомых мне причин буде перечитан верхний ДС, текущей строкой станет ПЕРВАЯ, выполнится опять код процедуры ПриАктивизацииСтроки, и само собой доступность вкладок выставится в ложь. (7.2) Та же самая хрень происходит и при Выполнении процедуры, выполняемую по обработчику ожидания. 2(6) Да, можно, меняется именно на клиенте, но зачем-то иницирует обновление ДС. 2(5) щас попробую тогда |
||||||||||
10
Живой Ископаемый
29.12.16
✎
01:02
|
не, текущаястрока не катит. Там все сложно, верхний дс показывает строки из внешнего источника данных.
|
||||||||||
11
FIXXXL
29.12.16
✎
09:19
|
(10) Изменение видимости точно неявно вызывает сервер, ибо перерисовка формы. Доступность видимо тоже...
Мне не понятно, нахрена так вообще сделали "неявный вызов сервера"... попробуй через Элементы.****.ТекущиеДанные.ПолучитьИдентификатор() отправляй ИД в процедуру на серваке, там на серваке ищи в ДС свою строку, заполняй все на серваке при необходимости верни указатель на текущую строку при возврате на клиента |
||||||||||
12
Stepa86
29.12.16
✎
09:22
|
(9) Используй обработчик ожидания в ПриАктивацииСтроки. В любой типовой на УФ уже куча примеров этого костыля
|
||||||||||
13
Живой Ископаемый
29.12.16
✎
09:31
|
2(12) Я же ясно написал что в этом случае перечитывается ДС, и текущей строкой становится первая.
|
||||||||||
14
Stepa86
29.12.16
✎
09:34
|
(13) Значит ты что то меняешь с данными этого ДС. Или у тебя все равно происходит вызов сервера в При активации. Использование обработчика ожидания в при активации для предотвращения сброса активной строки уже проверенный и используемый в типовых способ.
|
||||||||||
15
Живой Ископаемый
29.12.16
✎
09:40
|
2(14) Нет, только меняю доступность. Ради оставил обработчик ожидания, но без смены доступности - все норм, ДС не перечитывается.
НО я подумаю еще... Может быть детальные данные которые выводятся конечно чтото меняют в верхнем ДС. и когда мы меняем их доступность что-то там передергивается. Но это уже бред по-моему |
||||||||||
16
Stepa86
29.12.16
✎
09:42
|
(15) Какая версия платформы? Доступность на клиенте достаточно недавно стала меняться
|
||||||||||
17
Stepa86
29.12.16
✎
09:44
|
(15) Можешь глянуть БСП посвежее, там в Справочнике Файлы есть форма "Файлы" в которой есть ДС Папки, при активации строки которой происходит смена доступности и уход на сервер через обработчик ожидания
|
||||||||||
18
Живой Ископаемый
29.12.16
✎
09:48
|
8.3.9.1818
ладно, потом может вернусь к этому. пока сделал стремную залипуху, уже устал думать только над этим вопросм. |
||||||||||
19
Живой Ископаемый
29.12.16
✎
09:52
|
2(17) да я верю что так должно быть. Я ж говорю - когда черз обработчик ожидания просто вызываю функцию которая ничего не делает с доступностью, то с ДС все ок, как и должно быть
|
||||||||||
20
Живой Ископаемый
29.12.16
✎
09:58
|
хотя... я там еще одну обработку ожидания юзаю, которая ждет завершения асинхронно выполняемого запроса в фоновом задании... Но она только выводит инфу в закладку которая не подвергается смене доступности, и тоже в ДС вроде ничего не делает...
короче, нафиг, потом разберусь. |
||||||||||
21
Stepa86
29.12.16
✎
10:02
|
(20) Попробуй сделать по кнопке, если активная строка сбрасывается, то дело в функции, если нет - в способе вызова
|
||||||||||
22
Живой Ископаемый
29.12.16
✎
10:20
|
а, точно. проверю, сенкс.
|
||||||||||
23
Fragster
гуру
29.12.16
✎
12:49
|
(10) катит
|
||||||||||
24
Живой Ископаемый
29.12.16
✎
13:27
|
2(23) не катит, потому что детальные записи я ищи не по ключу записи внешнего источника. А мне доступен в ТекущейСтроки ДС ВИДа только он.
|
||||||||||
25
Живой Ископаемый
29.12.16
✎
13:30
|
Но да, можно наверное получить этот ключ, сходить на сервер, выполнить запрос, получить другое поле, wait сходить на сервер? это то, от чего мы пытаемся уйти?
|
||||||||||
26
Fragster
гуру
29.12.16
✎
14:24
|
(25) > Теперь смотрите, при интерактивной смене строки верхнего ДС, необходимо нижние вкладки заблокировать (доступность = ложь)
где тут про запрос каких-то данных? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |