Имя: Пароль:
1C
1C 7.7
v7: ОткрытьФорму() ругается
0 evgpinsk_
 
15.11.25
13:52
Странное поведение открытьФорму():
Если Процедура запускается при редактирования Поля ввода (которое находится например в журнале документов)
то 1с ругается на код
открытьФорму(док.ТекущийДокумент());

сообщением "Открытие окна в данном режиме недоступно!"

если же в этом же журнале этот же код выполнять из кнопки - всё ок.

Но хочется документ открывать сразу при редактировании поля ввода а не через кнопку )
1 MWWRuza
 
гуру
15.11.25
14:46
Да, есть такое, подтверждаю...


Как обойти - пока не знаю, надо подумать...
Может через какие-то ложные закрытия, или чего-то на подобии. Если, что-то придумаю - отпишусь.
2 craxx
 
15.11.25
14:55
(1) Обработка ожидания не пойдет?
3 MWWRuza
 
гуру
15.11.25
15:04
(2) Возможно, надо пробовать...
Так: https://forum.infostart.ru/forum9/topic4200/
Работает.
ОткрытьФормуМодально(ТекущийДокумент)

4 evgpinsk_
 
15.11.25
15:44
ОткрытьФормуМодально
это сразу проверил и увидел что работает. Но не очень красиво ).
5 MWWRuza
 
гуру
15.11.25
15:49
(4) Ну, тогда или как в (2) предложили - через обработку ожидания пробовать, или формексом генерить внешнее союытие, и из его обработки открывать документ...
6 Олдж
 
15.11.25
18:59
(4) (5) Есть еще один старый обходной манёвр, как  ранее написал "ложное закрытие"
Перем НельзяЗакрытьформу;
 

Процедура ЗапускаемаяИзПоляВвода()  
	//ОткрытьФорму(ТекущийДокумент);
	
	НельзяЗакрытьформу= 1;
	Форма.Закрыть(0);
	
КонецПроцедуры          

Процедура ПриЗакрытии()  
	
	Если НельзяЗакрытьФорму = 1 Тогда
		НельзяЗакрытьФорму = 0;
		СтатусВозврата(0);
		ОткрытьФорму(ТекущийДокумент);  	
	КонецЕсли;
	
КонецПроцедуры
7 MWWRuza
 
гуру
15.11.25
17:56
(6) Ну, да, я ранее в (1) именно про это и писал...
Только проверять не стал, так, как подумал, что ТС уже проверил, и (2) с толку сбило, думал не работает, раз пошли такие сложности с обработкой ожидания и т.д...
Но, нет, все ОК!

PS Только в первой процедуре ошибка в имени переменной. Так, Вы ее никогда не закроете - придется задачу снимать, с переиндексацией и прочими последствиями.
8 AAA
 
15.11.25
18:43
Я бы просто не стал делать такой интерфейс. Выбор-это выбор, редактирование - это редактирование. Да и вообще в форме списка редактировать так себе, кроме простых, обычно служебных данных
9 Олдж
 
15.11.25
19:00
(7) ага, скорректировал
10 Злопчинский
 
15.11.25
22:20
Formex
Сервис:
РазрешитьОткрытиеОкон(<?>)
Синтаксис:
РазрешитьОткрытиеОкон(Флаг)
Назначение:
для обхода запрета открытия форм из формулы реквизита диалога
Параметры:
<Флаг> - 1 - разрешить открытие форм, 0 - запретить открытие форм.
ЗАМЕЧАНИЕ:
Метод надо вызывать непосредственно в месте, где открытие запрещено.
11 Злопчинский
 
15.11.25
22:21
(8) поддерживаю
ненавижу ад когда из списка справочника делают рабочее место и потом при вызове этой формы куча ненужной хрени
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс