| 
    
            
         
         | 
    
  | 
Какое событие происходит при интерактивном смене текущей строки в ДС? | ☑ | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 
    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) > Теперь смотрите, при интерактивной смене строки  верхнего ДС, необходимо нижние вкладки заблокировать (доступность = ложь) 
 
        где тут про запрос каких-то данных?  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |