Как работает НайтиОкноПоНавигационнойСсылке и работает ли вообще
Платформа 8.3.8.1652. Запускался в тонком клиенте управляемого приложения.
Решил опробовать метод НайтиОкноПоНавигационнойСсылке. Проанализировал:
1. Открыл форму списка справочника ФизическиеЛица
2. Открыл форму списка справочника Контрагенты
3. Открыл конкретное физ лицо
4. Открыл конкретного контрагента
Далее в отладке на клиенте опробовал:
НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[0].ПолучитьНавигационнуюСсылку())
НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[1].ПолучитьНавигационнуюСсылку())
и т.д.
Всегда в ходе экспериментов окно находилось только если оно сейчас активно (я в нём сижу). + всегда находит по НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[0].ПолучитьНавигационнуюСсылку()) Т.е. открыто окно конкретного контрагента, и и оно допустим ПолучитьОкна()[3], то только НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[3].ПолучитьНавигационнуюСсылку()) будет работать. Если я переключусь (именно переключусь, а не закрою) на другое окно и в отладке НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[3].ПолучитьНавигационнуюСсылку()) уже не будет работать.
В справке написано "Если окно не открыто, возвращается Неопределено.". Но так я окна и не закрывал, я только переключался на другие, а старое было открыто, но просто не активно... но он всё равно его не находил.
Из экспериментов у меня получилось, что он находит только то окно, которое в данный момент открыто + основное окно.
У меня вопрос: я что-то не так делаю или действительно метод НайтиОкноПоНавигационнойСсылке находит только активные окна?
Решил опробовать метод НайтиОкноПоНавигационнойСсылке. Проанализировал:
1. Открыл форму списка справочника ФизическиеЛица
2. Открыл форму списка справочника Контрагенты
3. Открыл конкретное физ лицо
4. Открыл конкретного контрагента
Далее в отладке на клиенте опробовал:
НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[0].ПолучитьНавигационнуюСсылку())
НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[1].ПолучитьНавигационнуюСсылку())
и т.д.
Всегда в ходе экспериментов окно находилось только если оно сейчас активно (я в нём сижу). + всегда находит по НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[0].ПолучитьНавигационнуюСсылку()) Т.е. открыто окно конкретного контрагента, и и оно допустим ПолучитьОкна()[3], то только НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[3].ПолучитьНавигационнуюСсылку()) будет работать. Если я переключусь (именно переключусь, а не закрою) на другое окно и в отладке НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[3].ПолучитьНавигационнуюСсылку()) уже не будет работать.
В справке написано "Если окно не открыто, возвращается Неопределено.". Но так я окна и не закрывал, я только переключался на другие, а старое было открыто, но просто не активно... но он всё равно его не находил.
Из экспериментов у меня получилось, что он находит только то окно, которое в данный момент открыто + основное окно.
У меня вопрос: я что-то не так делаю или действительно метод НайтиОкноПоНавигационнойСсылке находит только активные окна?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) Нет, в 1С не писал. Просто в это занимает много времени и в большинстве случаев бесполезно.
Уже не помню где столкнулся с данной проблемой, но вроде мне нужно было узнать открыта ли форма элемента определенного контрагента. Я вроде решил перебором всех форм и сравнением Форма.Объект.Сысылка=НужнаяСсылка.
Уже не помню где столкнулся с данной проблемой, но вроде мне нужно было узнать открыта ли форма элемента определенного контрагента. Я вроде решил перебором всех форм и сравнением Форма.Объект.Сысылка=НужнаяСсылка.
Решение пока применил такое:
Где "ЭтаФорма.НавСсылка" - нав.ссылка на искомое окно.
Только что-то из сохранённого объекта не обновляется информация на форме. Но это уже другая тема.
// Поиск окна и обновление редактируемого окна
Для Каждого ОкноДокумента Из ПолучитьОкна() Цикл
ВрНавСсылка = ОкноДокумента.ПолучитьНавигационнуюСсылку();
Если ВрНавСсылка=ЭтаФорма.НавСсылка Тогда
// Это оно
УпрФорма = ОкноДокумента.ПолучитьСодержимое();
УпрФорма.ОбновитьОтображениеДанных();
ОкноДокумента.Активизировать();
КонецЕсли;
КонецЦикла;
ПоказатьГде "ЭтаФорма.НавСсылка" - нав.ссылка на искомое окно.
Только что-то из сохранённого объекта не обновляется информация на форме. Но это уже другая тема.
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот