Как работает НайтиОкноПоНавигационнойСсылке и работает ли вообще

1. klinval 338 03.08.16 11:25 Сейчас в теме
Платформа 8.3.8.1652. Запускался в тонком клиенте управляемого приложения.

Решил опробовать метод НайтиОкноПоНавигационнойСсылке. Проанализировал:
1. Открыл форму списка справочника ФизическиеЛица
2. Открыл форму списка справочника Контрагенты
3. Открыл конкретное физ лицо
4. Открыл конкретного контрагента

Далее в отладке на клиенте опробовал:
НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[0].ПолучитьНавигационнуюСсылку())
НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[1].ПолучитьНавигационнуюСсылку())
и т.д.

Всегда в ходе экспериментов окно находилось только если оно сейчас активно (я в нём сижу). + всегда находит по НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[0].ПолучитьНавигационнуюСсылку()) Т.е. открыто окно конкретного контрагента, и и оно допустим ПолучитьОкна()[3], то только НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[3].ПолучитьНавигационнуюСсылку()) будет работать. Если я переключусь (именно переключусь, а не закрою) на другое окно и в отладке НайтиОкноПоНавигационнойСсылке(ПолучитьОкна()[3].ПолучитьНавигационнуюСсылку()) уже не будет работать.

В справке написано "Если окно не открыто, возвращается Неопределено.". Но так я окна и не закрывал, я только переключался на другие, а старое было открыто, но просто не активно... но он всё равно его не находил.

Из экспериментов у меня получилось, что он находит только то окно, которое в данный момент открыто + основное окно.

У меня вопрос: я что-то не так делаю или действительно метод НайтиОкноПоНавигационнойСсылке находит только активные окна?
+
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. klinval 338 05.08.16 09:08 Сейчас в теме
Судя по обилию комментариев НайтиОкноПоНавигационнойСсылке никто не пользовался...
+
3. KilloN 56 11.01.18 17:01 Сейчас в теме
(2)
Судя по обилию комментариев НайтиОкноПоНавигационнойСсылке никто не пользовался...


Доброго времени суток:
Столкнулся точно с такой же проблемой, Вы пробовали писать в 1С?
+
4. klinval 338 11.01.18 17:30 Сейчас в теме
(3) Нет, в 1С не писал. Просто в это занимает много времени и в большинстве случаев бесполезно.

Уже не помню где столкнулся с данной проблемой, но вроде мне нужно было узнать открыта ли форма элемента определенного контрагента. Я вроде решил перебором всех форм и сравнением Форма.Объект.Сысылка=НужнаяСсылка.
+
5. KilloN 56 11.01.18 17:32 Сейчас в теме
(4)
Я написал. Посмотрим, что они скажут.
+
6. binx 167 23.03.18 08:53 Сейчас в теме
Такая же проблема, похоже 1С проблему не решила.
+
7. strange2007 144 24.08.18 12:30 Сейчас в теме
Решение пока применил такое:

       // Поиск окна и обновление редактируемого окна
	Для Каждого ОкноДокумента Из ПолучитьОкна() Цикл
		ВрНавСсылка = ОкноДокумента.ПолучитьНавигационнуюСсылку();
		Если ВрНавСсылка=ЭтаФорма.НавСсылка Тогда
			// Это оно
			УпрФорма = ОкноДокумента.ПолучитьСодержимое();
			УпрФорма.ОбновитьОтображениеДанных();
			ОкноДокумента.Активизировать();
		КонецЕсли;
	КонецЦикла;
Показать


Где "ЭтаФорма.НавСсылка" - нав.ссылка на искомое окно.
Только что-то из сохранённого объекта не обновляется информация на форме. Но это уже другая тема.
+
8. ben19791010 24.08.18 12:48 Сейчас в теме
(7)
не обновляется информация на форме
после записи?
+
9. strange2007 144 24.08.18 12:54 Сейчас в теме
(8) Да. Я меняю объект в БД и хотел, что бы форма перечитала данные из БД. В общем не перечитывает. Да и фиг с ней.
+
11. ben19791010 24.08.18 13:02 Сейчас в теме
(9)
В общем не перечитывает
что за конфа?
завтра проверю, ради интереса
+
12. strange2007 144 24.08.18 13:47 Сейчас в теме
(11) В любой не перечитывается. Экспериментирую в ЗУП 3.1
+
10. strange2007 144 24.08.18 12:55 Сейчас в теме
(8) Если редактировать реквизиты из УпрФорма.Объект, то всё нормально. Но т.о. табличную часть не хочет передавать на сервер, а на клиенте её ну никак не отредактируешь
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот