Имя: Пароль:
1C
1С v8
Какое событие происходит при интерактивном смене текущей строки в ДС?
0 Живой Ископаемый
 
28.12.16
19:00
1. При Активизации строки Таки 0% (0)
2. Другое событие 0% (0)
3. Делай то что ты хочешь кнопкой 0% (0)
Всего мнений: 0

А то что-то ПриАктивизацииСтроки происходит больше раз чем пользователь делает движений
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) > Теперь смотрите, при интерактивной смене строки  верхнего ДС, необходимо нижние вкладки заблокировать (доступность = ложь)

где тут про запрос каких-то данных?
Основная теорема систематики: Новые системы плодят новые проблемы.