Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как к классу добавить контекст окружения (число прочтений - 6114 )
Bill
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Как к классу добавить контекст окружения
19. Мая 2010 :: 05:40
Печать  
Вобщем задача такая:
Нужно динамически вносить изменения в тексты черных запросов.
Для этого переопределил стандартный объект Запрос.

Код
Выбрать все
класс Запрос = классЗапрос@MD : Query
{
  Число Выполнить(Строка ТекстЗапроса);
} 




Сам класс:

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

Функция Выполнить(ТекстЗапроса) Экспорт
   Сам=Сам(Контекст);

   //Здесь обработка текста запроса

   Возврат Сам.ПолучитьБазовыйКласс("Query").Выполнить(ТекстЗапроса);
КонецФункции 



Все нормально работает если в тексте запроса не используются переменные и функции контекста окружения. Если же они присутствуют, то возникает ошибка.

Возможно ли передать в класс контекст окружения?

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как к классу добавить контекст окружения
Ответ #1 - 19. Мая 2010 :: 06:33
Печать  
Да. Тупо в еще один метод передай контекст и всё.
Или ПолучитьКонтекстОкружения() используй..

  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как к классу добавить контекст окружения
Ответ #2 - 19. Мая 2010 :: 06:51
Печать  
Bill писал(а) 19. Мая 2010 :: 05:40:
Возможно ли передать в класс контекст окружения?

Да, но увидеть можно будет только переменные уровня модуля и реквизиты формы.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Как к классу добавить контекст окружения
Ответ #3 - 19. Мая 2010 :: 08:41
Печать  
Eprst писал(а) 19. Мая 2010 :: 06:33:
ПолучитьКонтекстОкружения() используй..


Помнится,  artbear рекомендовал не использовать этот метод, так как возможны всеразличные глюки. Передавай контекст напрямую.

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


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Как к классу добавить контекст окружения
Ответ #4 - 19. Мая 2010 :: 10:05
Печать  
Вот именно:
Цитата:
но увидеть можно будет только переменные уровня модуля и реквизиты формы


Если объект создается в ГМ, то ничего не увижу.

То есть выхода нет.

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


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Как к классу добавить контекст окружения
Ответ #5 - 19. Мая 2010 :: 10:07
Печать  
Интерсно, а как в самой платформе это реализовано?
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Как к классу добавить контекст окружения
Ответ #6 - 19. Мая 2010 :: 11:12
Печать  
Bill писал(а) 19. Мая 2010 :: 10:05:
Вот именно:
Цитата:
но увидеть можно будет только переменные уровня модуля и реквизиты формы


Если объект создается в ГМ, то ничего не увижу.

То есть выхода нет.


То что в ГМ ты увидишь и так, без никакого контекста
А вот то что в месте вызова, т.е. в Процедуре/Функции (как это делает метод Таблицы ВывестиСекицю()) - не увидишь никак Печаль
Как это реализовано в платформе т.е. в том-же объекте Таблица - ХЕЗ
  
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как к классу добавить контекст окружения
Ответ #7 - 19. Мая 2010 :: 11:29
Печать  
avgreen писал(а) 19. Мая 2010 :: 11:12:
Bill писал(а) 19. Мая 2010 :: 10:05:
Если объект создается в ГМ, то ничего не увижу.

То что в ГМ ты увидишь и так, без никакого контекста

Только если оно Экспорт.
  
Наверх
www  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Как к классу добавить контекст окружения
Ответ #8 - 19. Мая 2010 :: 11:48
Печать  
fez писал(а) 19. Мая 2010 :: 11:29:
avgreen писал(а) 19. Мая 2010 :: 11:12:
Bill писал(а) 19. Мая 2010 :: 10:05:
Если объект создается в ГМ, то ничего не увижу.

То что в ГМ ты увидишь и так, без никакого контекста

Только если оно Экспорт.

Ну это само собой....... а, ты имеешь ввиду случай, когда  Экземпляр класса вызвали из ГМ .....
Ну да, тогда в отличии от ГК наверное не получится добраться до глобальных переменных ГМ
  
Наверх
ICQ  
IP записан
 
Bill
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Как к классу добавить контекст окружения
Ответ #9 - 19. Мая 2010 :: 11:51
Печать  
avgreen писал(а) 19. Мая 2010 :: 11:48:
fez писал(а) 19. Мая 2010 :: 11:29:
avgreen писал(а) 19. Мая 2010 :: 11:12:
Bill писал(а) 19. Мая 2010 :: 10:05:
Если объект создается в ГМ, то ничего не увижу.

То что в ГМ ты увидишь и так, без никакого контекста

Только если оно Экспорт.

Ну это само собой....... а, ты имеешь ввиду случай, когда  Экземпляр класса вызвали из ГМ .....
Ну да, тогда в отличии от ГК наверное не получится добраться до глобальных переменных ГМ


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