|
Отучить управляемую форму обновляться | ☑ | ||
---|---|---|---|---|
0
Dirk Diggler
07.02.25
✎
17:09
|
Есть довольно сложная форма. В одном её месте при активизации строки в табличном поле в обработчике этого события накладывается отбор на строки другого табличного поля.
И в этот момент почему-то происходит обновление других элементов формы, кучи табличных полей, опять вызываются обработчики событий ПриАктивизацииСтроки.... Почему они вообще обновляются, их же выполнение обработчика никак не коснулось? Ниже обработчик. После его выполнения каскадом начинают выполняться другие. &НаКлиенте Процедура ВремяОбработкиНаЕдПродукцииПриАктивизацииСтроки(Элемент) Если Элемент.ТекущиеДанные <> Неопределено и ЗначениеЗаполнено(Элемент.ТекущиеДанные.Станок) тогда Элементы.УстановыДеталиНаЕдПродукции.Видимость = Истина; Элементы.УстановыДеталиНаЕдПродукции.ОтборСтрок = Новый ФиксированнаяСтруктура("КлючСвязи, СТанок", ТекущийКлючСвязи(), Элемент.ТекущиеДанные.Станок); Иначе Элементы.УстановыДеталиНаЕдПродукции.Видимость = Ложь; КонецЕсли; КонецПроцедуры |
|||
1
Галахад
гуру
07.02.25
✎
17:13
|
ТекущийКлючСвязи на сервер ходит?
|
|||
2
Dirk Diggler
08.02.25
✎
16:16
|
(1) неа
&НаКлиенте Функция ТекущийКлючСвязи() возврат ?(Элементы.Изделия.ТекущиеДанные = Неопределено, 0, Элементы.Изделия.ТекущиеДанные.КлючСвязи); КонецФункции |
|||
3
1Снеговик
гуру
07.02.25
✎
18:21
|
(1) так ОтборСтрок ходит на сервер
|
|||
4
Dirk Diggler
07.02.25
✎
18:39
|
(3) Упс. Не знал.
А есть выход? надо в одном табличном поле выбирать строку, а в других полях - оставлять только те строки, какие нужны в зависимости от выбранной. |
|||
5
Волшебник
07.02.25
✎
18:48
|
(4) Сделайте обновление быстрым, добавьте кеширование
|
|||
6
Dirk Diggler
07.02.25
✎
19:23
|
(5) там проблема в другом. В том табличном поле, что выводится с отбором - не удается выбрать нужную строку.
Я на нее клацаю, вызывается обработчик ПриАктивизацииСтроки, после него - каскадом вызываются ПриАктивизацииСтроки других табличных полей, выбор сбрасывается, и вот выбранная строка - опять первая в этом табличном поле. Вторую и ниже выделить не удается. |
|||
7
Timon1405
07.02.25
✎
20:21
|
посмотрите как сделан отбор строк в документе таможенная декларация на импорт в УТ/ЕРП
а вызов сервера может вызывать изменение свойства .Видимось |
|||
8
Garykom
гуру
07.02.25
✎
20:33
|
ПодключитьОбработчикИзмененияДанных?
|
|||
9
Casey1984
07.02.25
✎
22:28
|
(0) Определять в обработчиках что их дернуло поможет?
|
|||
10
d4rkmesa
07.02.25
✎
23:15
|
(0) Элемент.ТекущиеДанные же делает серверный вызов, либо я не так понял вопрос ТС? В обработчиках ПриАктивизацииСтроки стандарт - все через подключение обработчика ожидания, кроме самых простых случаев.
|
|||
11
Ёпрст
07.02.25
✎
23:57
|
(0) на разных платформах (более того, разной совместимости конф) по-разному ведут в приактивации. Так то обработку ожидания туда, а в сторонние, где неявный вызов, втыкай условие на текущий элемент формы, если это не он, возврат
|
|||
12
lEvGl
гуру
07.02.25
✎
23:59
|
(0) При активизации возникает только для той таблицы, для которой ставится ОтборСтрок, но т к в ее активизации тоже ставится ОтборСтрок для подчиненных, то и в них возникает это событие, каскад событий, которых сегодня прям больше, чем обычно
(5) если сбрасывается выбор текущей Таблицы, значит его где то сбросили, возможно тем же ОтборомСтрок, надо проверять всю цепочку событий, все нормально работает. Но есть какое то сомнение, что при каких то условиях был такой прикол.. не вспомню, слишком ситуативно. При отсутствии неправильных движений все работает нормально |
|||
13
Гений 1С
гуру
08.02.25
✎
15:04
|
(8) да, известная тема. в первый раз когда словил подобный глюк тоже пришел в легкий афуй
(12) да, серверные вещи с формой в самой при активизации делать нельзя, только в подключаемом обработчике. Вообще принять за правило - при активизации подключать обработчик, а в нем уже химичить. |
|||
14
Dirk Diggler
13.02.25
✎
16:22
|
(8) ПодключитьОбработчикИзмененияДанных это же для обычных форм. А у меня управляемые....
|
|||
15
Ёпрст
13.02.25
✎
16:27
|
(14) Та ты шо ? У мужика в кепке спрашивал хоть, в пофигураторе ?
|
|||
16
Ёпрст
13.02.25
✎
16:28
|
Тебе нужен ПодключитьОбработчикОжидания, а не то, что выше насоветовали
|
|||
17
lubitelxml
13.02.25
✎
16:29
|
(11) +1. За обработчик ожидания при активации строки и обновление подчиненных элементов.
|
|||
18
Ёпрст
13.02.25
✎
16:33
|
+ в сторонних ПриАктивизацииСтроки втыкай проверку на текущийэлемент:
&НаКлиенте Процедура ТоварыПриАктивизацииСтроки(Элемент) Если ТекущийЭлемент=Элемент Тогда ПодключитьОбработчикОжидания("Подключаемый_ТоварыПриАктивизацииСтроки", 0.1, Истина); Конецесли; КонецПроцедуры |
|||
19
Dirk Diggler
13.02.25
✎
16:40
|
(18) вот это уже сделал, и даже почти заработало. Спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |