Вход | Регистрация



Прокручивается кольцо загрузки и мигает курсор

Прокручивается кольцо загрузки и мигает курсор
Я
   TolstiyBeremenniy
 
01.11.18 - 09:05
Конфигурация Документооборот 8 КОРП, редакция 2.1 (2.1.11.5).
Сделал форму списка документов по подобию формы списка справочника
Структура предприятия. Сейчас над ней постоянно прокручивается
кольцо загрузки и мигает курсов. От чего может быть такое
поведение?
 
 
   Cyberhawk
 
1 - 01.11.18 - 09:07
Давай видосик
   TolstiyBeremenniy
 
2 - 01.11.18 - 09:07
В настоящей форме ещё элементы выделяются жирным.
А в этой, только один. Жму на остальные, мигает курсор
и прокручивается кольцо загрузки.
   shadow_sw
 
3 - 01.11.18 - 09:27
выполняется бесконечно действие при отображении чего-либо
   TolstiyBeremenniy
 
4 - 01.11.18 - 10:23
(3) Пока не пойму что за действие.
Не подскажете как вероятнее его отловить?
Эту процедуру.
   TolstiyBeremenniy
 
5 - 01.11.18 - 10:28
Зацикливается вызов вот этих процедур, -


&НаКлиенте
Процедура ПользователиСписокПриАктивизацииСтроки(Элемент)


&НаСервере
Процедура УстановитьОтборОформленияПодразделенияТекущегоПользователяСервер(Подразделение)


&НаКлиенте
Процедура УстановитьОтборОформленияПодразделенияТекущегоПользователя()
   TolstiyBeremenniy
 
6 - 01.11.18 - 10:29
(5+) Но из за чего это?
   МимохожийОднако
 
7 - 01.11.18 - 10:30
Включи отладку, сделай паузу, включи замер, сделай паузу. Посмотри на что тратится максимальное время
   shadow_sw
 
8 - 01.11.18 - 10:31
(5) Вангую - не установлено подразделение пользователя
   TolstiyBeremenniy
 
9 - 01.11.18 - 10:36
Я на КонецПроцедуры поставил точки останова.
Они гоняют по кругу, зауиклившись!
   Fragster
 
10 - 01.11.18 - 10:37
а нафиг ты в обработчике активизации останавливаешь отбор?
 
 Рекламное место пустует
   TolstiyBeremenniy
 
11 - 01.11.18 - 10:37
А как работает замер производительности?

Я выбираю его, но ничего не происходит.
   TolstiyBeremenniy
 
12 - 01.11.18 - 10:38
(10) Это как?
   TolstiyBeremenniy
 
13 - 01.11.18 - 10:40
(8) Посмотрел, да подразделение пусто в одной из процедур!
Нужно разбираться от куда это идет и на что влияет.
   Остап Сулейманович
 
14 - 01.11.18 - 10:41
(5) СП читать не пробовал?
"
ТаблицаФормы (FormTable)
ПриАктивизацииСтроки (OnActivateRow)
Синтаксис:

ПриАктивизацииСтроки()
Описание:

Вызывается при активизации строки таблицы.
Примечание:

В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.
"

Особо обратить внимание на примечание. Думать.
   TolstiyBeremenniy
 
15 - 01.11.18 - 10:41
Вот видимо из за чего. но почему ТекущиеДанные не определено?



    Если Элементы.СписокЗаявокУИиС.ТекущиеДанные = Неопределено
        Или ТипЗнч(Элементы.СписокЗаявокУИиС.ТекущаяСтрока) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
        Подразделение = Неопределено;
   TolstiyBeremenniy
 
16 - 01.11.18 - 10:42
(14) Код то это не мой. Я же скопировал форму с типового справочника и подстраиваю под свою задачу.
   TolstiyBeremenniy
 
17 - 01.11.18 - 10:43
В типовой форме справочника ничего не мигает.
   Остап Сулейманович
 
18 - 01.11.18 - 10:44
(16) "Код то это не мой."
ГЫ. Никто и не сомневался. Это фирменный стиль ливингстара.
Но попытаться понять код можно? Хочешь расскажу почему циклится?
   TolstiyBeremenniy
 
19 - 01.11.18 - 10:44
Вот тут,   Элементы.СписокЗаявокУИиС.ТекущиеДанные = Неопределено

Но почему не понятно!


&НаКлиенте
Процедура УстановитьОтборОформленияПодразделенияТекущегоПользователя()
    
    Если Элементы.СписокЗаявокУИиС.ТекущиеДанные = Неопределено
        Или ТипЗнч(Элементы.СписокЗаявокУИиС.ТекущаяСтрока) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
        Подразделение = Неопределено;
   TolstiyBeremenniy
 
20 - 01.11.18 - 10:45
(18) Конечно!
   shadow_sw
 
21 - 01.11.18 - 10:47
забавный ТС :)
   TolstiyBeremenniy
 
22 - 01.11.18 - 10:47
Вся левая таблица передергивается при прокручивании
полосы прокрутки и курсор мигает.
   Остап Сулейманович
 
23 - 01.11.18 - 10:50
(20) Становишься на строку. Вызывается ПриАктивизацииСтроки. Оттуда уходим на сервер (это твой вызов УстановитьОтборОформления...). После выполнения процедуры на сервере форма начинает обновляться. Фокус уходит с твоего поля и пробешается по всем полям в порядке обхода. После завершения обхода фокус возвращается на исходную строку и опять вызывается ПриАктивизации. И опять идем на сервер ...

ЗЫ.Исключи уход кода на сервер и все наладится.
   palsergeich
 
24 - 01.11.18 - 10:51
Народ все проще.
2 недели такая же фигня была.
Еще ->изменить форму-> настройки по умолчанию
   palsergeich
 
25 - 01.11.18 - 10:52
2 недели назад.
ТОже голову ломал, скинул настройки формы и все стало ОК
   palsergeich
 
26 - 01.11.18 - 10:53
В этом же самом месте на абсолютно типовой форме
   palsergeich
 
27 - 01.11.18 - 10:54
Ни чистка кеша ничего не помогало. Скинь настройки формы (24) и будет счастье
   Остап Сулейманович
 
28 - 01.11.18 - 10:55
(24) Может и так. Но это не отменяет того момента, что ПриАктивизации не нужно вызывать сервер. Как в (5)
   Cyberhawk
 
29 - 01.11.18 - 10:55
(27) Это ты симптом вылечил, а народу видимо интересно причину выяснить)
   palsergeich
 
30 - 01.11.18 - 10:57
(28) Нормально все там. Эта процедура один раз отрабатывает.
(29) Один и единственный раз такое причем только у одного юзера и именно на этой форме. Есть подозрение что это платформенный баг.
Там в ДО есть такие приколы.
   Остап Сулейманович
 
31 - 01.11.18 - 11:01
+ (28) В ПриАктивизации нужно сказать ОбработкаОжидания с каким-то разумным периодом. И уже там можно обращаться к серверу.
Это такой себе общеалгоритмический подход. И даже без привязки к 1С. Например у вас при установке курсора нужно показать в поле активдокса вордовский документ. Пользователь в списке наступает на клавишу "стрелка вниз" и переезжает на 20 записей. При подходе без ОбработкаОжидания на форму будут загружены все 20 промежуточных документов. Хотя оно и не нужно.
Наглядно можно посмотреть пролистывание в проводнике папки с картинками.
   palsergeich
 
32 - 01.11.18 - 11:03
(31) Это архитектурно справочник с малым количеством элементов, тем более там изменяется условное оформление, это допустимо.
Там есть куда более интересные платформенные баги причем в типовой и зараза не воспроизводимые. У одного проблемы у остальных нет, приходится придумывать пути обхода.
   palsergeich
 
33 - 01.11.18 - 11:04
(31) А на самом деле в 99% случаев условное оформление не меняется и форма не перерисовывается
 
 
   Остап Сулейманович
 
34 - 01.11.18 - 11:06
(33) И что? Можно перебегать улицу не глядя. И видимо в 99% у вас это получится.
   Остап Сулейманович
 
35 - 01.11.18 - 11:07
+ (34) Почему бы не делать это правильно?
   TolstiyBeremenniy
 
36 - 01.11.18 - 11:08
(24) У меня дергается все равно!
   Остап Сулейманович
 
37 - 01.11.18 - 11:09
Ну вот... Ливингстар попадает как раз в 1%. )))
   palsergeich
 
38 - 01.11.18 - 11:10
(36) Измени колонки в настройках формы (сними какие нибудь флажки). Я сначала избавился на копии так.
(35)  v8@1c.ru вы можете написать сюда и когда нибудь Вам помогут. За действия вендора я не отвечаю
   TolstiyBeremenniy
 
39 - 01.11.18 - 11:12
(23) Если я поменяю типовой функционал.
То возможно же работать не будет же.
Я же его и взял для себя как работающий!
Не пойму почему его нужно менять, если он сам
в справочнике работает.
   Остап Сулейманович
 
40 - 01.11.18 - 11:12
(38) В этом случаем мне помощь не нужна. Я стараюсь придерживаться рекомендаций. Не всегда. Но чаще всего. И в таких случаях = точно.
   Остап Сулейманович
 
41 - 01.11.18 - 11:15
(39) Та - не вопрос. Можешь делать свою работу так, как считаешь правильным. Если установил для себя потолок - копипасте - твое дело. Но и должен осознавать какой получишь результат.
   TolstiyBeremenniy
 
42 - 01.11.18 - 11:17
(41) Я хочу понять что мне делать!!!!!!!
Пока (24) не помогло.
   palsergeich
 
43 - 01.11.18 - 11:19
(42) Сделай так (38)
   palsergeich
 
44 - 01.11.18 - 11:20
(42) Или просто удали все пользовательские настройки.
   Остап Сулейманович
 
45 - 01.11.18 - 11:20
(42) Видимо нужно таки начать программировать. На найти где Скопипастить потратишь времени намного больше.
   TolstiyBeremenniy
 
46 - 01.11.18 - 11:24
(38) Пробовал, поставил какой то флажек. Мигает все равно.
   Остап Сулейманович
 
47 - 01.11.18 - 11:27
(46)
ГЫ. "поставил какой то флажек" )))
Жги palsergeich Твой выход.
   palsergeich
 
48 - 01.11.18 - 11:28
(47) (46) Увы на этом проблема ушла и больше не повторялась. Надо смотреть.
   TolstiyBeremenniy
 
49 - 01.11.18 - 11:30
(48) Какой флажек? Автозаголовок?
У меня она повторяется. Открываю типовой, все работает!
 
 Рекламное место пустует
   Вафель
 
50 - 01.11.18 - 11:30
через обработчик ожидания уже пробовал?
   palsergeich
 
51 - 01.11.18 - 11:31
(49) Нет, в настройках формы я снял галку с колонки списка, который правый. Нажал ОК. Все заработало, потом зашел снова поставил флажок.
   Остап Сулейманович
 
52 - 01.11.18 - 11:34
(49) О-о-о... Да...
"Автозаголовок" это именно то что нужно.)))

ЗЫ. И фары протирал и по колесу стучал, а оно никак не заводится ...
   palsergeich
 
53 - 01.11.18 - 11:48
(49) Ну чо как оно?
   TolstiyBeremenniy
 
54 - 01.11.18 - 11:54
(51) В режиме предприятия?
   palsergeich
 
55 - 01.11.18 - 11:54
(54) Да
   TolstiyBeremenniy
 
56 - 01.11.18 - 11:56
(53) я какой то флажек убрал, у меня вообще пропала
таблицы, список СтруктураПредприятия.
   TolstiyBeremenniy
 
57 - 01.11.18 - 11:57
(55) Список вернул, но как мигало так и мигает!
   palsergeich
 
58 - 01.11.18 - 11:57
(56) Постоянное обновление ушло?
   TolstiyBeremenniy
 
59 - 01.11.18 - 11:57
(58) Нет (
   palsergeich
 
60 - 01.11.18 - 11:58
(57) ТВ есть?
   palsergeich
 
61 - 01.11.18 - 11:58
Подрубится глянуть можно?
   TolstiyBeremenniy
 
62 - 01.11.18 - 11:58
(61) Жаль, но нет ((((((( Исключено (((((
   palsergeich
 
63 - 01.11.18 - 12:01
(62) Мы же про одно и тоже говорим? https://yadi.sk/i/01Cut9E7sMx4jw
   TolstiyBeremenniy
 
64 - 01.11.18 - 12:01
Если я вот это закомментирую, -

&НаКлиенте
Процедура СтруктураПредприятияПриАктивизацииСтроки(Элемент)
    
    //ПодключитьОбработчикОжидания("СтруктураПредприятияПослеАктивизацииСтроки", 0.1, Истина);

    
КонецПроцедуры


То мигания нет. Но тогда и не работает все то зачем я этот пример взял!!!!!!!
   palsergeich
 
65 - 01.11.18 - 12:02
Да там этот обработчик в ожидании срабатывает.
Попоробуй удали все пользовательские настройки. В моем случае дело было в них.
   TolstiyBeremenniy
 
66 - 01.11.18 - 12:02
(63) Ну вроде как да.
Только у меня справа список не пользователей.
А одного типового документа, на который я настраиваю
отбор по подобию, как в этой форме по подразделениям.
   TolstiyBeremenniy
 
67 - 01.11.18 - 12:02
(65) Кеш?
   palsergeich
 
68 - 01.11.18 - 12:04
https://yadi.sk/i/Bivru6q1jukwag и так, если не поможет я не знаю.
(67) Увы но нет, я из ДТ с нуля базу развернул и под этим пользователем та же проблема была. Именно пользовательские настройки
   palsergeich
 
69 - 01.11.18 - 12:07
https://yadi.sk/i/9bTQCPKW5DcCdg Тогда сорри, не знаю чем помочь. Надо смотреть
   TolstiyBeremenniy
 
70 - 02.11.18 - 03:33
(69) Ну у меня бесполезно не помогает.
Устанавливаю стандартные настройки без конца.
Снимаю ставлю галки. Курсор не перестает мигать!
   TolstiyBeremenniy
 
71 - 02.11.18 - 03:47
Увидел что мигать курсор прекращает только если в левом
списке выбрать значение, которому соответствуют элементы
в правом списке. Он становится жирным и мигание прекращается.

Думаю как его все же устранить!
   TolstiyBeremenniy
 
72 - 02.11.18 - 03:59
Похоже зацикливается вот на этих двух процедурах.


&НаКлиенте
Процедура ПользователиСписокПриАктивизацииСтроки(Элемент)    
    ПодключитьОбработчикОжидания("УстановитьОтборОформленияПодразделенияТекущегоПользователя", 0.2, Истина);    
КонецПроцедуры


&НаКлиенте
Процедура УстановитьОтборОформленияПодразделенияТекущегоПользователя()
    Если Элементы.СписокЗаявокУИиС.ТекущиеДанные = Неопределено
        Или ТипЗнч(Элементы.СписокЗаявокУИиС.ТекущаяСтрока) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
        Подразделение = Неопределено;
    Иначе
        Подразделение = Элементы.СписокЗаявокУИиС.ТекущиеДанные.ПодразделениеПодготовителя;
    КонецЕсли;
    УстановитьОтборОформленияПодразделенияТекущегоПользователяСервер(Подразделение);
КонецПроцедуры



Если выбирается элемент в левом списке, и в правом нет
элементов для отбора, начинает мигать курсор. Происходит
зацикливание этих двух процедур.
   TolstiyBeremenniy
 
73 - 02.11.18 - 04:35
Попробовал вот так прервать выполнение кода.
Но не помогло. Можно ли как то принудительно запретить
его выполнение?

&НаКлиенте
Процедура УстановитьОтборОформленияПодразделенияТекущегоПользователя()
    
    Если Элементы.СписокЗаявокУИиС.ТекущиеДанные = Неопределено
        Или ТипЗнч(Элементы.СписокЗаявокУИиС.ТекущаяСтрока) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
        Подразделение = Неопределено;
    Иначе
        Подразделение = Элементы.СписокЗаявокУИиС.ТекущиеДанные.ПодразделениеПодготовителя;
    КонецЕсли;
    
    УстановитьОтборОформленияПодразделенияТекущегоПользователяСервер(Подразделение);
    Если Элементы.СписокЗаявокУИиС.ТекущиеДанные = Неопределено Тогда
        Возврат;
    КонецЕсли;
КонецПроцедуры
   TolstiyBeremenniy
 
74 - 02.11.18 - 04:58
Как вам такой подход? Мигать начинает, если в правой 
части нет строк. Я не запускаю эту зациклевшуюся
процедуру, и все. как вам это?


    Если Элементы.СписокЗаявокУИиС.ТекущиеДанные = Неопределено Тогда    
         ГашениеМигающегоКурсора = Истина;
    Иначе
        ГашениеМигающегоКурсора = Ложь;
        ПодключитьОбработчикОжидания("УстановитьОтборОформленияПодразделенияТекущегоПользователя", 0.2, Истина);
    КонецЕсли;
   TolstiyBeremenniy
 
75 - 02.11.18 - 05:00
Сейчас только у того подразделения по которому есть
строки в правом списке, не убирается выделение.
Ото стало выделенным всегда. Так как в правой части 
введен документ только по нему. как снять выделение
если курсор не стоит на нем?
   TolstiyBeremenniy
 
76 - 02.11.18 - 05:27
Может я не тем занимаюсь? И этот пример не удачный,
какой то? Может посоветуете что другое, из докумнетооборота. Где не нужно черти чем сидеть заниматься.
А взять его и сделать?
   TolstiyBeremenniy
 
77 - 02.11.18 - 05:36
Подобное есть ещё в справочнике внутренние документы
но там чт ото совсем не пойму как это можно переводить на
свои условия.
   Тихий омут
 
78 - 02.11.18 - 05:43
Что-то ты не договариваешь.
Что у тебя происходит в УстановитьОтборОформленияПодразделенияТекущегоПользователяСервер?
   Тихий омут
 
79 - 02.11.18 - 05:45
С однократным обработчиком ожидания всё работает без проблем, у тебя ещё какой-то фактор действует
   TolstiyBeremenniy
 
80 - 02.11.18 - 05:52
Вот это закомментил, и выделения не стало.
И курсор не мигает.


&НаКлиенте
Процедура УстановитьОтборОформленияПодразделенияТекущегоПользователя()
    
    Если Элементы.СписокЗаявокУИиС.ТекущиеДанные = Неопределено
        Или ТипЗнч(Элементы.СписокЗаявокУИиС.ТекущаяСтрока) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
        Подразделение = Неопределено;
    Иначе
        Подразделение = Элементы.СписокЗаявокУИиС.ТекущиеДанные.ПодразделениеПодготовителя;
    КонецЕсли;
    
    //УстановитьОтборОформленияПодразделенияТекущегоПользователяСервер(Подразделение);
   Тихий омут
 
81 - 02.11.18 - 05:56
Ну и всё таки, что у тебя в происходит на сервере, при выполнении этой закомменченой строки?
   TolstiyBeremenniy
 
82 - 02.11.18 - 06:09
(81) Там вот такая процедура. Она видимо делает выделение
строки подразделения в левом списке. А при выделении
другого, выделение с предыдущего снимается, выделяется
тот что выделяется в момент выделения. В своей форме я
отказался от этого выделения. Пока делаю как вижу сам.



&НаСервере
Процедура УстановитьОтборОформленияПодразделенияТекущегоПользователяСервер(Подразделение)
    
    Для Каждого ЭлементУсловногоОформления Из УсловноеОформление.Элементы Цикл
        Если ЭлементУсловногоОформления.Представление = "ПодразделениеТекущегоПользователя"
            Или ЭлементУсловногоОформления.Представление = "УдаленноеПодразделениеТекущегоПользователя" Тогда
            ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы[0];
            ЭлементОтбораДанных.ПравоеЗначение = Подразделение;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры
   Тихий омут
 
83 - 02.11.18 - 06:46
Специально накидал тестовую обработку из двух динсписков на форме, ничего не тупит.
В (82) точно тот код, на котором наблюдается зацикливание?
   МимохожийОднако
 
84 - 02.11.18 - 07:51
ОФФ:Вспомнился Пит и его классификация дятлов...
   TolstiyBeremenniy
 
85 - 02.11.18 - 08:24
(83) Вот что вызывало зацикливание, я обошел это проверкой. Это первая процедура с которой шел бесконечный цикл. Так как в правой таблице не было данных.


&НаКлиенте
Процедура ПользователиСписокПриАктивизацииСтроки(Элемент)
    Если Элементы.СписокЗаявокУИиС.ТекущиеДанные = Неопределено Тогда    
         ГашениеМигающегоКурсора = Истина;
    Иначе
        ГашениеМигающегоКурсора = Ложь;
        ПодключитьОбработчикОжидания("УстановитьОтборОформленияПодразделенияТекущегоПользователя", 0.2, Истина);
    КонецЕсли;
    
КонецПроцедуры


Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует