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


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


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


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

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

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

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

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

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



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

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


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

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

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

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


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

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


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


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



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

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



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


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



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


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