проблемы с открытием форм, обычное приложение

1. antipod13 13.08.21 13:56 Сейчас в теме
	ТекДанные = ЭтаФорма.ТекущийЭлемент.ТекущаяСтрока;
	Док = ТекДанные.Ссылка.ПолучитьОбъект();
    Форма = Док.ПолучитьФорму("ФормаДокумента",Док,ЭтаФорма);
	Если Не Форма.Открыта() Тогда
    	Форма.Открыть();
	КонецЕсли;	

Такой код на событий выбора в ТЗ на моей форме. проблемы две
1. таблиц две, в обоих случаях выдает что форма не открыта и открывает их несколько раз,
2. в первой таблице открывает форму и активирует ее, во второй тот же код, но формы открываются без активации
По теме из базы знаний
Найденные решения
2. Release 13.08.21 14:03 Сейчас в теме
(1)
По 1. Не уверен, что дело только в этом, но читаем СП ДокументОбъект.ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>):
<Владелец> (необязательный)
Тип: Форма; Элемент управления.
Объект, который будет являться владельцем открываемой формы.

<КлючУникальности> (необязательный)
Тип: Произвольный.
В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм.
При поиске учитываются значения свойств открытых форм соответствующим значениям параметров метода. Если найдена открытая форма (по совпадению всех параметров), то она будет возвращена вместо новой формы.
Если из некой формы (один и тот же владелец) требуется открывать новые экземпляры другой формы, то при каждом вызове метода значение данного параметра должно быть уникально (в рамках соответствующих значений свойств открытых форм).
Значение параметра присваивается свойству открываемой формы КлючУникальности.
Следует учитывать, что при получении формы из "объекта" система получает форму для конкретного экземпляра объекта с учетом совокупности переданных параметров, в то время как для "ссылки" всегда существует только один объект в базе данных и форма получается одна (для одинаковой совокупности параметров).

Возможно 1 как-то влияет и на 2.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Release 13.08.21 14:03 Сейчас в теме
(1)
По 1. Не уверен, что дело только в этом, но читаем СП ДокументОбъект.ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>):
<Владелец> (необязательный)
Тип: Форма; Элемент управления.
Объект, который будет являться владельцем открываемой формы.

<КлючУникальности> (необязательный)
Тип: Произвольный.
В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм.
При поиске учитываются значения свойств открытых форм соответствующим значениям параметров метода. Если найдена открытая форма (по совпадению всех параметров), то она будет возвращена вместо новой формы.
Если из некой формы (один и тот же владелец) требуется открывать новые экземпляры другой формы, то при каждом вызове метода значение данного параметра должно быть уникально (в рамках соответствующих значений свойств открытых форм).
Значение параметра присваивается свойству открываемой формы КлючУникальности.
Следует учитывать, что при получении формы из "объекта" система получает форму для конкретного экземпляра объекта с учетом совокупности переданных параметров, в то время как для "ссылки" всегда существует только один объект в базе данных и форма получается одна (для одинаковой совокупности параметров).

Возможно 1 как-то влияет и на 2.
5. antipod13 13.08.21 14:24 Сейчас в теме
(2)
	ТекДанные = ЭтаФорма.ТекущийЭлемент.ТекущаяСтрока;
	Док = ТекДанные.Ссылка;
    Форма = Док.ПолучитьФорму("ФормаДокумента",ЭтаФорма);
	Если Не Форма.Открыта() Тогда
    	Форма.Открыть();
	Иначе	
		Форма.Активизировать();
	КонецЕсли;

Да, весь фокус в первом вопросе был в вызове объекта,
а во втором у меня одна таблица стояло "только просмотр" - у нее нормально работало, во второй начинался ввод в ячейку таблицы, активация окна терялась
3. SlavaKron 13.08.21 14:05 Сейчас в теме
(1)
Следует учитывать, что при получении формы из "объекта" система получает форму для конкретного экземпляра объекта с учетом совокупности переданных параметров, в то время как для "ссылки" всегда существует только один объект в базе данных и форма получается одна (для одинаковой совокупности параметров).

Получайте форму из ссылки, а не из объекта. И да, параметры в порядок приведите.
4. RustamZz 13.08.21 14:05 Сейчас в теме
(1)
Док1 = ТекДанные.Ссылка.ПолучитьОбъект();
Док2 = ТекДанные.Ссылка.ПолучитьОбъект();
Если Док1 <> Док2 Тогда
Сообщить("Ой, а они разные!");
КонецЕсли;
Оставьте свое сообщение

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