Имя: Пароль:
1C
1С v8
Как отловить событие на форме при переключении на "закладку" регистра сведений
,
0 DenisZav
 
10.10.17
18:28
В общем суть вопроса:
Есть например в БП 3.0 справочник Номенклатура.
У него есть основная форма элемента.
В этой форме есть "закладки" то есть ссылки на регистры сведений у которых ведущее измерение номенклатура, или на команды других объектов, неважно.
Например в типовой: Виды номенклатуры, счета учета номенклатуры, Штрихкоды.

Хочется отслеживать событие когда пользователь переключается между самой формой элемента ("закладка" Основное) и другими разделами.
Чтобы в этой открытой форме отслеживать событие когда она получает фокус и когда теряет.
1 craxx
 
10.10.17
18:32
событие ПриВыбореЗакладки(), не?
2 Cyberhawk
 
10.10.17
18:35
Обработчики формы списка
3 Cyberhawk
 
10.10.17
18:36
Из самой формы - той, из который выполняется переход - не отловить
4 DenisZav
 
10.10.17
18:38
(1) Это не закладки, их поэтому в кавычках написал. Это всякие регистры сведений например или команды.
5 DenisZav
 
10.10.17
18:38
(3) Пока что тоже не вижу как, собираю мнения, может кто знает заклинание.
6 Mankubus
 
10.10.17
18:41
голосую за вариант "никак"
7 craxx
 
10.10.17
18:50
(4) убрать нафиг автоматические, сформировать самому динамически и там уже отлавливать
8 Mort
 
10.10.17
19:00
(0) А зачем это нужно отслеживать?
9 DenisZav
 
10.10.17
19:06
(8) Да, разумеется есть вопрос зачем. Но ответ долгий, поэтому сразу не написал.

Ну в общем все это на тему дополнительных реквизитов и табличных частей у справочника номенклатура. Чтобы сами реквизиты и ТЧ были в справочнике. А форма под них отельная, которая не будет трогаться при обновлении. В частности в данном случае это группа реквизитов под блок для автоматизации производства.

Считывать\Обновлять эти реквизиты можно через "ВладелецФормы.Объект.ИмяРеквизита".
Но хотелось бы это дело скопом обновлять при потере фокуса этой формы.
Сами подобные формы закрываются ПОСЛЕ закрытия формы основного объекта, увы и к сожалению.
Кроме того если отслеживать события получения фокуса можно редактировать дополнительные реквизиты с существующих табличных частях а не только в новых. То есть считывать данные можно не только при открытии, но и при повторном переключении на эту форму.

В двух словах вот так. Чтобы было прям идеально надо эти события поймать. Пока что не вижу способа, собираю мнения коллективног разума))
10 youalex
 
10.10.17
19:36
(9) >>Но хотелось бы это дело скопом обновлять при потере фокуса этой формы.

Оповестить/ОбработкаОповещения()


>>Сами подобные формы закрываются ПОСЛЕ закрытия формы основного объекта, увы и к сожалению.

Форма.ЗакрыватьПриЗакрытииВладельца
11 runoff_runoff
 
10.10.17
19:51
может ОкноКлиентскогоПриложения попробовать..
УправляемаяФорма.Окно
12 runoff_runoff
 
10.10.17
19:52
при активизации строки в списке регистра анализировать ОкноКлиентскогоПриложения.Содержимое
13 PiotrLoginov
 
10.10.17
20:45
(9) >>Считывать\Обновлять эти реквизиты можно через "ВладелецФормы.Объект.ИмяРеквизита".
А это по феншую вообще?


А вообще, события у формы-владельца не предусмотрено. Либо мучать события открываемых через командный интерфейс форм, либо менять командный интерфейс своим.
14 DenisZav
 
11.10.17
17:22
(13)"А это по феншую вообще?"
Затрудняюсь ответить точно. Язык динамический. Одна форма открыта на основании другой. Владелец всегда доступен. Дочерняя форма смотрит что там в родительской.
Это можно и в подборах использовать. Например если пользователь вернулся в документ и вид цен сменил, или еще что в этом духе.
15 DenisZav
 
11.10.17
17:23
(10) Я имею ввиду порядок. Что сначала закрывается главное окно (Номенклатура), а потом окно этой вот вложенной формы.
То есть при закрытии обновить данные не получится. Потому что родительская форма уже закрыта.
Если бы было наоборот то можно было бы обновлять при закрытии.