Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как получить <КонтекстФормы> файла внешнего отчета (число прочтений - 3022 )
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Как получить <КонтекстФормы> файла внешнего отчета
18. Декабря 2009 :: 13:15
Печать  
Добрый день!

Подскажите, пожалуйста, кто знает или сталкивался:
Перехватывая файл внешнего отчета в предопределенной процедуре ПриЗагрузкеВнешнегоОтчета(<ИмяФайлаОтчета>) можно получить его <КонтекстФормы>?
  
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как получить <КонтекстФормы> файла внешнего отчета
Ответ #1 - 18. Декабря 2009 :: 14:16
Печать  
либо лови Перехватчиком из 1cpp ,
либо сам открывай форму имея полный путь и поимеешь контекст ёё..
ЗЫ: форма при этом просто пероткроется..
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Как получить <КонтекстФормы> файла внешнего отчета
Ответ #2 - 18. Декабря 2009 :: 14:22
Печать  
Eprst писал(а) 18. Декабря 2009 :: 14:16:
либо лови Перехватчиком из 1cpp ,

Никогда не пользовался. Это сложно?

Eprst писал(а) 18. Декабря 2009 :: 14:16:
либо сам открывай форму имея полный путь и поимеешь контекст ёё..
ЗЫ: форма при этом просто пероткроется..

Переоткрывать представляется слишком сложным...

И создавать глобальную переменную для сохранения контекста перед каждым открытием внешнего отчета не хочется
  
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как получить <КонтекстФормы> файла внешнего отчета
Ответ #3 - 18. Декабря 2009 :: 14:39
Печать  
Перехватчиком ?
Да нет там ничего сложного..

Цитата:
Переоткрывать представляется слишком сложным...


А в чем там проблема то ?


  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как получить <КонтекстФормы> файла внешнего отчета
Ответ #4 - 18. Декабря 2009 :: 14:49
Печать  
Хотя, проще так сделать:

Код
Выбрать все
Перем КонтФ;
Процедура ПослеОткрытия(Конт)

	Если ПустоеЗначение(КонтФ)=0 Тогда
		КонтФ="";
		Сообщить(Конт);
	КонецЕсли;

КонецПроцедуры

Процедура ПриЗагрузкеВнешнегоОтчета(ИмяФайла)

	КонтФ = ИмяФайла

КонецПроцедуры 

  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Как получить <КонтекстФормы> файла внешнего отчета
Ответ #5 - 18. Декабря 2009 :: 14:49
Печать  
Eprst писал(а) 18. Декабря 2009 :: 14:39:
Перехватчиком ?
Да нет там ничего сложного..
Цитата:
Переоткрывать представляется слишком сложным...

А в чем там проблема то ?

Проблема в том, что вообще не могу представить себе это!

История проблемы:
1. Перехватываю внешнюю обработку.
2. Сверяю ее с эталонной и если не совпадает, перезаписываю эталоном и открываю без ведома пользователя.
Все это работает (см. http://www.1cpp.ru/forum/YaBB.pl?num=1258989069).
Но осталось КонтекстФормы для полноты гармонии передавать, если он есть.
  
Наверх
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Как получить <КонтекстФормы> файла внешнего отчета
Ответ #6 - 18. Декабря 2009 :: 15:08
Печать  
Через глобальную переменную не сложно:
Код
Выбрать все
Перем КонтекстФормы Экспорт; 


А перед вызовом внешней обработки:
Код
Выбрать все
КонтекстФормы=спПараметры; // или любой другой объект
ОткрытьФорму("Отчет",спПараметры,КаталогИБ()+"ИмяФайла.ert"); 


Но как быть, если передаю Контекст?
Код
Выбрать все
ОткрытьФорму("Отчет",Контекст,КаталогИБ()+"ИмяФайла.ert"); 

  
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как получить <КонтекстФормы> файла внешнего отчета
Ответ #7 - 18. Декабря 2009 :: 15:17
Печать  
Ээ... Не понял..
Ты форму же из вне открываешь? Или нет ? Т.е. через файл-открыть, или еще как.

Если ты программно её сам открываешь, то в чем сложность поиметь контекст открытой формы вообще ?
Или нужно универсальный механизм ?
Если нужна универсальность, то класс Перехватчик и ловить предопределенные события..

  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как получить <КонтекстФормы> файла внешнего отчета
Ответ #8 - 18. Декабря 2009 :: 15:17
Печать  
или как в #4
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Как получить <КонтекстФормы> файла внешнего отчета
Ответ #9 - 18. Декабря 2009 :: 15:25
Печать  
Eprst писал(а) 18. Декабря 2009 :: 15:17:
Ээ... Не понял..
Ты форму же из вне открываешь? Или нет ? Т.е. через файл-открыть, или еще как.

Если ты программно её сам открываешь, то в чем сложность поиметь контекст открытой формы вообще ?
Или нужно универсальный механизм ?

Можно сказать, и универсальный.

Открываю откуда угодно: из глобального модуля, из форм объектов 1с, из пунктов Меню, из других внешних отчетов.

Контекст нужен еще не открытой формы. До ее открытия.
Перед ее открытием замечательная предопределенная процедура "ПриЗагрузкеВнешнегоОтчета(<ИмяФайлаОтчета>)" позволяет сначала выполнить любые нужные проверки, а только потом открывать отчет.
Но я перед открытием иногда переписываю внешний отчет другим, более новым, или наоборот - защищенно старым.

Eprst писал(а) 18. Декабря 2009 :: 15:17:
Если нужна универсальность, то класс Перехватчик и ловить предопределенные события..

Что ж ... Перехватчиком, так Перехватчиком.
Пойду изучать его.

Спасибо за помощь!
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать