Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) УстановитьПеременнуюКонтекста (число прочтений - 6893 )
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
УстановитьПеременнуюКонтекста
06. Октября 2006 :: 13:40
Печать  
Покажите, где туплю:
В классе:
Код
Выбрать все
_Форма = КонтекстФормы.Форма;
ТекАЭ = _Форма.АктивныйЭлемент();
Пер = "фых-фых";

рез = "";
		Сервис.ПолучитьПеременнуюКонтекста(КонтекстФормы,ТекАЭ,Рез);
		Сообщить("Контекст = "+КонтекстФормы+", тип = "+ТипЗначенияСтр(КонтекстФормы)+", "+ТекАЭ+" = "+рез);
		Сервис.УстановитьПеременнуюКонтекста(КонтекстФормы,ТекАЭ,Пер);
		_Форма.Обновить(); 


Где
КонтекстФормы - контекст формы, вызвавшей этот класс.
В общем ничего не устанавливается, а в "сообщить" выводит:

Контекст = ГрупповойКонтекст, тип = ГрупповойКонтекст, НомерПолиса =
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: УстановитьПеременнуюКонтекста
Ответ #1 - 06. Октября 2006 :: 14:05
Печать  
Цитата:
В общем ничего не устанавливается, а в "сообщить" выводит:

А что должно установиться то?
ТекАЭ возвращает у тебя просто строку - идентификатор активного элемента.
А ты хочешь изменить значение реквизита формы наверное?
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УстановитьПеременнуюКонтекста
Ответ #2 - 06. Октября 2006 :: 14:12
Печать  
vip писал(а) 06. Октября 2006 :: 14:05:
Цитата:
В общем ничего не устанавливается, а в "сообщить" выводит:

А что должно установиться то?
ТекАЭ возвращает у тебя просто строку - идентификатор активного элемента.
А ты хочешь изменить значение реквизита формы наверное?

Ну а если он является и тем и тем?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УстановитьПеременнуюКонтекста
Ответ #3 - 06. Октября 2006 :: 14:15
Печать  
Я сначала такого метода не знал, поэтому делал через Модуль:
Код
Выбрать все
//---------------------------------------------------
Процедура СоздатьМодуль(Куда)
	Модуль = СоздатьОбъект("ВыполняемыйМодуль");
	Модуль.УстановитьМодуль("
	|Процедура УстановитьЗначение(НовоеЗначение)
	|	" + Куда + " = НовоеЗначение;
	|КонецПроцедуры
	|");
	Модуль.НазначитьКонтекст(КонтекстФормы);
	Модуль.КомпилироватьМодуль();
	Модуль.ВыполнитьМодуль();
КонецПроцедуры // СоздатьМодуль 


Для каждого реквизита компилировал заново.
Мне это показалось слишком громоздким решением для такой пустяковой задачи. И тут я увидел метод УстановитьПеременнуюКонтекста()
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УстановитьПеременнуюКонтекста
Ответ #4 - 06. Октября 2006 :: 14:17
Печать  
Т.е. вместо
Код
Выбрать все
Сервис.УстановитьПеременнуюКонтекста(КонтекстФормы,ТекАЭ,Пер); 

(из (0))
Раньше делал так:
Код
Выбрать все
СоздатьМодуль(ТекАЭ);
Модуль.УстановитьЗначение(Пер); 

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



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: УстановитьПеременнуюКонтекста
Ответ #5 - 06. Октября 2006 :: 14:18
Печать  
JohnyDeath писал(а) 06. Октября 2006 :: 14:12:
vip писал(а) 06. Октября 2006 :: 14:05:
Цитата:
В общем ничего не устанавливается, а в "сообщить" выводит:

А что должно установиться то?
ТекАЭ возвращает у тебя просто строку - идентификатор активного элемента.
А ты хочешь изменить значение реквизита формы наверное?

Ну а если он является и тем и тем?

Проще всего использовать функционал TurboBL.
КонтекстФормы.ТекАЭ="фых-пых";
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УстановитьПеременнуюКонтекста
Ответ #6 - 06. Октября 2006 :: 14:23
Печать  
vip писал(а) 06. Октября 2006 :: 14:18:
JohnyDeath писал(а) 06. Октября 2006 :: 14:12:
vip писал(а) 06. Октября 2006 :: 14:05:
Цитата:
В общем ничего не устанавливается, а в "сообщить" выводит:

А что должно установиться то?
ТекАЭ возвращает у тебя просто строку - идентификатор активного элемента.
А ты хочешь изменить значение реквизита формы наверное?

Ну а если он является и тем и тем?

Проще всего использовать функционал TurboBL.
КонтекстФормы.ТекАЭ="фых-пых";

Так пробовал - не прокатывает. Да и не должно вроде, т.к. ТекАЭ - строка. Или я ошибаюсь?
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: УстановитьПеременнуюКонтекста
Ответ #7 - 06. Октября 2006 :: 14:31
Печать  
В таком виде, конечно не прокатывает. Ты сам ответил на свой первый вопрос.
Пробуй так.
Код
Выбрать все
АтрФормы = СоздатьОбъект("АтрибутФормы");
АтрФормы.УстановитьАтрибут(КонтекстФормы.Форма,ТекАЭ);
АтрФормы.Значение = "фых-пых"; 

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УстановитьПеременнуюКонтекста
Ответ #8 - 06. Октября 2006 :: 14:37
Печать  
vip писал(а) 06. Октября 2006 :: 14:31:
В таком виде, конечно не прокатывает. Ты сам ответил на свой первый вопрос.
Пробуй так.
Код
Выбрать все
АтрФормы = СоздатьОбъект("АтрибутФормы");
АтрФормы.УстановитьАтрибут(КонтекстФормы.Форма,ТекАЭ);
АтрФормы.Значение = "фых-пых"; 


Да, так идёт! Спасибо!
Но всё-таки, почему (0) не работает?
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: УстановитьПеременнуюКонтекста
Ответ #9 - 06. Октября 2006 :: 14:41
Печать  
Цитата:
Но всё-таки, почему (0) не работает?

Потому что
Цитата:
Да и не должно вроде, т.к. ТекАЭ - строка. Или я ошибаюсь?

Очень довольный
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УстановитьПеременнуюКонтекста
Ответ #10 - 06. Октября 2006 :: 14:43
Печать  
vip писал(а) 06. Октября 2006 :: 14:41:
Цитата:
Но всё-таки, почему (0) не работает?

Потому что
Цитата:
Да и не должно вроде, т.к. ТекАЭ - строка. Или я ошибаюсь?

Очень довольный

Дык вот как написано в документации:

Цитата:
Синтаксис: УстановитьПеременнуюКонтекста(Контекст, ИмяПеременной, НовоеЗначение)

Параметры:

Контекст - тип: ГрупповойКонтекст. Контекст, в котором необходимо установить значение переменной. Необязательный. По умолчанию - текущий контекст.
ИмяПеременной - тип: Строка. Имя переменной.
НовоеЗначение - тип: Любой. Значение, в которое необходимо установить переменную.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УстановитьПеременнуюКонтекста
Ответ #11 - 06. Октября 2006 :: 14:46
Печать  
Аааа-а! Может это ТОЛЬКо для переменных?! И никак не для реквизитов?!
Вот, мне кажется, где собака зарылась...
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: УстановитьПеременнуюКонтекста
Ответ #12 - 06. Октября 2006 :: 14:47
Печать  
Все правильно в документации написано.
А тебе надо установить новое значение переменной, которая является РЕКВИЗИТОМ формы.
  
Наверх
ICQ  
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: УстановитьПеременнуюКонтекста
Ответ #13 - 27. Января 2012 :: 06:51
Печать  
vip писал(а) 06. Октября 2006 :: 14:47:
Все правильно в документации написано.
А тебе надо установить новое значение переменной, которая является РЕКВИЗИТОМ формы.

А можно как-то установить реквизит документа этим методом?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: УстановитьПеременнуюКонтекста
Ответ #14 - 27. Января 2012 :: 10:56
Печать  
А для документа вообще ненадо внешних компонент если ты не работаешь с его формой.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать