Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=5019)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование управляемых форм 1С 8.2 _ ПриАктивацииСтроки вызывается несколько раз

Автор: vbi 11.10.11, 11:29

Есть форма списка документа.
В ней переопределил процедуру "ПриАктивацииСтроки". В ней изменяю видимость некоторых элементов формы (не табличных).

Так вот, если видимость какого-то элемента в ПриАктивацииСтроки изменится с ИСТИНА н ЛОЖЬ или наоборот, то после завершения процедура ПриАктивацииСтроки вызывается еще раз.

Но если видимость элемента изменяется с ЛОЖЬ на ЛОЖЬ или ИСТИНА на ИСТИНА - вызывается один раз. Почему?


Таб. часть списка - динамический список

Автор: Vofka 11.10.11, 12:38

В 8.1 и в 8.2 (толстый клиент) в процедуру ПриПолученииДанных тоже пару раз заходит, этого тоже до сих пор никто объяснить не может dry.gif, поэтому, возможно, стОит смириться...

Автор: vbi 11.10.11, 13:08

просто при выводе строки сервер один раз вызывается. Ну ладно, потом сделаю чтоб сервер не вызывался

Автор: vbi 11.10.11, 14:26

Кстате никогда не любил использовать "ПриПолученииДанных". Я Всегда использую "ОбновлениеОтображения" формы

Автор: Vofka 11.10.11, 15:13

Цитата
Кстате никогда не любил использовать "ПриПолученииДанных". Я Всегда использую "ОбновлениеОтображения" формы

Это разные вещи. ПриПолученииДанных вызывается, когда в списках данные меняются (т.е. получение/удаление каких-то строк). А ОбновлениеОтображения когда что либо меняется в форме.

Автор: vbi 13.10.11, 9:37

Цитата(Vofka @ 11.10.11, 16:13) *
Это разные вещи. ПриПолученииДанных вызывается, когда в списках данные меняются (т.е. получение/удаление каких-то строк). А ОбновлениеОтображения когда что либо меняется в форме.


Ну да, когда меняется один список, вызывается ПриПолученииДанных, но также вызывается и ОбновлениеОтображения т.к. список визуально поменялся.

Автор: Vofka 13.10.11, 9:43

Цитата
Ну да, когда меняется один список, вызывается ПриПолученииДанных, но также вызывается и ОбновлениеОтображения т.к. список визуально поменялся.

Я к тому, что если меняется реквизит шапки, например, то ПриПолученииДанных не вызывается, а вызывается ОбновлениеОтображения. Т.е. вызов ПриПолученииДанных будет только тогда, когда нам надо, а не будет всегда.

Автор: DartRomanius 13.10.11, 10:29

Цитата(vbi @ 11.10.11, 12:29) *
Есть форма списка документа.
В ней переопределил процедуру "ПриАктивацииСтроки". В ней изменяю видимость некоторых элементов формы (не табличных).

Так вот, если видимость какого-то элемента в ПриАктивацииСтроки изменится с ИСТИНА н ЛОЖЬ или наоборот, то после завершения процедура ПриАктивацииСтроки вызывается еще раз.

Но если видимость элемента изменяется с ЛОЖЬ на ЛОЖЬ или ИСТИНА на ИСТИНА - вызывается один раз. Почему?


Таб. часть списка - динамический список


Так и должно быть. При изменении видимости происходит перерисовка - соответственно активация тоже происходит.
ЗЫ: Сам столкнлуся в свое время.

Автор: vbi 17.10.11, 15:26

Цитата(DartRomanius @ 13.10.11, 11:29) *
Так и должно быть. При изменении видимости происходит перерисовка - соответственно активация тоже происходит.
ЗЫ: Сам столкнлуся в свое время.


Тоесть снова меняется видимость реквизита, но так как это один и тот же элемент - видимость та же самая и перерисовка больше не вызывается. Иначе говоря, если б при каждой активации строки видимость элемента менялась бы на противоположную - все бы зациклилось и повисло. Вот это да!
Что ж сделать, чтоб активация строки не вызывалась после перерисовки?

Автор: DartRomanius 17.10.11, 15:59

Цитата(vbi @ 17.10.11, 16:26) *
Тоесть снова меняется видимость реквизита, но так как это один и тот же элемент - видимость та же самая и перерисовка больше не вызывается. Иначе говоря, если б при каждой активации строки видимость элемента менялась бы на противоположную - все бы зациклилось и повисло. Вот это да!
Что ж сделать, чтоб активация строки не вызывалась после перерисовки?


Скорее сделать что-бы не вызывалась перерисовка после активации строки.

Автор: vbi 18.10.11, 8:21

Цитата(DartRomanius @ 17.10.11, 16:59) *
Скорее сделать что-бы не вызывалась перерисовка после активации строки.


А как это сделать?

Автор: DartRomanius 18.10.11, 9:10

Цитата(vbi @ 18.10.11, 9:21) *
А как это сделать?


Не использовать изменение видимости в ПриАктивацииСтроки 31000000.gif

Автор: mister-x 18.10.11, 9:42

Чистов на клієнті рекомендує взагалі відмовитись від викор. видимості, радить керувати доступністю. Видимість налаштовувати тільки при створ. форми на сервері.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua