Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Интересная багофича - ТолькоПросмотр(1) и ПослеОткрытия (число прочтений - 1375 )
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Интересная багофича - ТолькоПросмотр(1) и ПослеОткрытия
07. Октября 2009 :: 12:18
Печать  
Вот наткнулся на интересную особенность FromEx
Если Форма.ТолькоПросмотр(1) вызывать в процедуре ПриОткрытии() то она срабатывает как положено. Если ее-же вызвать в процедуре ПослеОткрытия() и форма с одной закладкой .... ну т.е. без закладок Улыбка то тоже все Ок.
А вот если форма с закладками, то на всех закладках кроме первой реквизиты типа "Строка" и "Число" остаются  доступными для редактирования!
Причем не помогает даже их принудительное блокирование кодом
Форма.Реквизит1.Редактирование(0);

Это я один такой невезучий, что наступил на столь редкие грабли?  Улыбка

Версия FromEx последняя 2.0.5.95
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Интересная багофича - ТолькоПросмотр(1) и ПослеОткрытия
Ответ #1 - 07. Октября 2009 :: 13:35
Печать  
Скорее всего да, ибо все делают Это в ПриОткрытии ..
Улыбка
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Интересная багофича - ТолькоПросмотр(1) и ПослеОткрытия
Ответ #2 - 08. Октября 2009 :: 12:03
Печать  
Eprst писал(а) 07. Октября 2009 :: 13:35:
Скорее всего да, ибо все делают Это в ПриОткрытии ..
Улыбка

Я сделал это в ПослеОткрытия(), потому что у меня там если  ТолькоПросмотр()  = 0 выполняется код который лазит по реквизитам и делает к примеру Доступность(0). А при открытии еще не все реквизиты проинициализированы, те-же ТП к примеру .... и наблюдались неоднократное падения. Вот я и перенес вызов из ПриОткрытии в ПослеОткрытия....
Ну в общем пока вышел из положения таким кодом
Код
Выбрать все
		Если ФормаТолькоПросмотр = 1 Тогда
			Для Х = 0 По ФормаРасш.КоличествоАтрибутов() - 1 Цикл
				лАтрибут = ФормаРасш.ПолучитьАтрибут(Х);
				Если (лАтрибут.Тип = 2) ИЛИ (лАтрибут.Тип = 12) Тогда // Поле для редактирования или "Флажок"
					лАтрибут.Доступность = 0;
				КонецЕсли;
			КонецЦикла;
			БлокироватьКнопкиФормы();
		КонецЕсли;
 


а дальше будет видно Улыбка

Кстати я так думаю это даже глюк не FormEx а самой 1С .... ну либо недокументированная фича. Ведь нигде в доке не сказано что ТолькоПросмотр(1) можно вызывать ИСКЛЮЧИТЕЛЬНО из ПриОткрытии(). А если я захочу вызвать ее в процессе работы формы ..... ну чисто гипотетически, пока такой необходимости не вижу .....
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать