Если Форма.ТолькоПросмотр() = 0 Тогда
// тут еще можно флаг взвести чтобы в ПриОткрытии() сделать СтатусВозврата(ФлагКоторыйНоль)
ОткрытьФорму(ТекущийДокумент(),,1);
КонецЕсли;
Процедура ПриОткрытии()
ОткрытьФорму(ТекущийДокумент(),,1);
КонецПроцедуры // ПриОткрытии()
Функция СобытиеГМ_ПриОткрытии(Конт, ФлагЧтенияНастройки) Экспорт
......
Рез=ПроверкаРазрешенияРедактирования(КонтФормы);
Если Рез=0 Тогда
......
ИначеЕсли Рез=-1 Тогда
ДокИнв=КонтФормы.ТекущийДокумент(); //Переменная для внешнего события
Сервис.ВнешнееСобытие("Фабрика","ПриОткрытии","ОткрытьТолькоНаПросмотр"); //Открываем повторно форму в режиме ТолькоПросмотр только через ВнешнееСобытие, т.к. иначе глюки с открытием
Возврат 0;
ИначеЕсли Рез=-10 Тогда
СообщитьВОтладке(""+ТекущееВремя()+" КОНЕЦ "+л_ИмяСобытия+" НЕ разрешаем открывать форму");
Возврат 0;
КонецЕсли;
Функция Событие_ОбработкаВнешнегоСобытия(Источник,Событие,Данные) Экспорт //+Al 2016-04-13 16:53:09 глобальная (СобытиеГМ_) перехватывается при вызове Сервис.ВнешнееСобытие из глМодуля
//!!! При открытии форм из ПриНачалеРаботыСистемы теряется контекст откуда вызывалось ВнешнееСобытие. КонтФормы будет = последней открытой форме. Это, по всей видимости, глюк перехватчика из ВК 1с++
Перем л_ИмяСобытия,ЕстьМетод,ИмяМетода;
л_ИмяСобытия = ""+ID+" ФабрикаСобытий Событие_ОбработкаВнешнегоСобытия() ";
СообщитьВОтладке(""+ТекущееВремя()+" НАЧАЛО "+л_ИмяСобытия+" Источник="+Источник+" Событие="+Событие+" Данные="+Данные);
СообщитьВФайл("НАЧАЛО "+л_ИмяСобытия+" Источник="+Источник+" Событие="+Событие+" Данные="+Данные,"ФабрикаСобытий"); //+Al 2024-06-13 11:54
Если Данные="ОткрытьТолькоНаПросмотр" Тогда
ОткрытьФорму(ДокИнв,,1);
ДокИнв=0;Рез=0;
ИначеЕсли Данные="ОткрытьНаРедактирование" Тогда
ОткрытьФорму(ДокИнв,,0);
ДокИнв=0;Рез=0;
......