Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) метод ПолучитьПеременнуюКонтекста (число прочтений - 5338 )
disbat
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 2
Зарегистрирован: 03. Декабря 2007
метод ПолучитьПеременнуюКонтекста
03. Декабря 2007 :: 06:14
Печать  
Метод постоянно возвращает 0,какую переменную не пытаемся получить:
Сервис.ПолучитьПеременнуюКонтекста(Конт,"Перемен",Рез) = 0,причем отладчик эти переменные вычисляет без проблем
....где собака порылась?
Сам текст таков:
     Перем  Конт, Рез;
     Сервис = СоздатьОбъект("Сервис");
     Если Сервис.АктивныйКонтекст(Конт) = 1 Тогда
           Если ТипЗначенияСтр(Конт) = "ГрупповойКонтекст" Тогда
                 Если Сервис.ПолучитьПеременнуюКонтекста(Конт,"ТекущийДокумент",Рез) = 1 Тогда
                       Сообщить("Значение переменной контекста: " + Рез);
                 КонецЕсли;
           КонецЕсли;
     Иначе
           Сообщить("Активное окно не является контекстным или нет активного окна.");
     КонецЕсли;
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: метод ПолучитьПеременнуюКонтекста
Ответ #1 - 03. Декабря 2007 :: 09:34
Печать  
Используй ВыполняемыйМодуль. Он удобнее.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: метод ПолучитьПеременнуюКонтекста
Ответ #2 - 03. Декабря 2007 :: 10:12
Печать  
disbat писал(а) 03. Декабря 2007 :: 06:14:
           Если ТипЗначенияСтр(Конт) = "ГрупповойКонтекст" Тогда
                 Если Сервис.ПолучитьПеременнуюКонтекста(Конт,"ТекущийДокумент",Рез) = 1 Тогда

У какого контекста в 1С есть переменная ТекущийДокумент ?
У дока есть толькметод ТекущийДокумент().
Т.е. налицо неверное использование метода Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: метод ПолучитьПеременнуюКонтекста
Ответ #3 - 03. Декабря 2007 :: 10:44
Печать  
artbear писал(а) 03. Декабря 2007 :: 10:12:
У какого контекста в 1С есть переменная ТекущийДокумент ?


Переменная ТекущийДокумент есть у ФормыСписка Журнала документов.
  
Наверх
ICQ  
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: метод ПолучитьПеременнуюКонтекста
Ответ #4 - 03. Декабря 2007 :: 11:36
Печать  
А помоему это Атрибут у Журнала.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: метод ПолучитьПеременнуюКонтекста
Ответ #5 - 03. Декабря 2007 :: 12:50
Печать  
Указанный метод работает только для групповых контекстов и только для переменных в модуле формы этого контекста
Т.е. атрибуты контекста с помощью этого метода получить/изменить нельзя.
Используй 1С++ и класс ВыполняемыйМодуль, в версии 1С++ 2.5 есть спец. методы, который работает с атрибутами любых контекстов.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
disbat
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 2
Зарегистрирован: 03. Декабря 2007
Re: метод ПолучитьПеременнуюКонтекста
Ответ #6 - 05. Декабря 2007 :: 05:13
Печать  
to artbear:
dnp прав....
Переменную пытался вычислить для ФормыСписка журнала док-в,но не в том дело,просто если метод попытается вычислить "ТекущийДокумент" в форме списка например справочника,то и пускай себе возвр-е 0,а вот если эта переменная в этом "ГрупповомКонтексте" 100пудово есть-то почему все же 0 возвр-ет?
Т.е. напрашивается вывод,что так не выйдет...Жаль,смысл был в том,чтобы польз-ль на панели инструментов щелкал на "АктСверки",
и последний в свою очередь формировался для контекста:Т.е. если мы в списке справ-ка Контрагенты,то по ТекЭлементу,если мы в журнале доков,то по Контре который в доке...
Пришлось делать так...жаль что не красиво:
           Если ТипЗначенияСтр(Конт) = "ГрупповойКонтекст" Тогда
                 Попытка
                       Возврат Конт.ТекущийДокумент.Контрагент;
                 Исключение                                 
                       Попытка
                             Возврат Конт.ТекущийЭлемент();
                       Исключение
                       КонецПопытки;
                 КонецПопытки;
           КонецЕсли;
  
Наверх
 
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: метод ПолучитьПеременнуюКонтекста
Ответ #7 - 05. Декабря 2007 :: 06:13
Печать  
Могу предложить ещё менее красивый вариант Улыбка
Код
Выбрать все
РФ = СоздатьОбъект( "РасширениеФормы" );
РФ.УстановитьФорму( конт.форма );
Если ( РФ.ТипОбъекта() = "Журнал" ) Тогда
 // * вот оно, щастье
 

  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: метод ПолучитьПеременнуюКонтекста
Ответ #8 - 05. Декабря 2007 :: 06:54
Печать  
(Автору) 1. Разберись в различиях между переменными модуля формы и атрибутами контекста!
2. Прочти мой пост выше
3. Юзай 1С++ Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
sergling
Junior Member
**
Отсутствует



Сообщений: 24
Зарегистрирован: 05. Июля 2007
Пол: Мужской
Re: метод ПолучитьПеременнуюКонтекста
Ответ #9 - 08. Декабря 2007 :: 07:44
Печать  
кстати, а кто-нить пробовал получать переменную типа "Таблица" из контекста формы документа? У меня почему-то получается взять только если таблица лежит во внешнем файле, а если описана в документе, то приходит пустая таблица
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: метод ПолучитьПеременнуюКонтекста
Ответ #10 - 08. Декабря 2007 :: 07:56
Печать  
Непонятно, в чем у тебя проблема Печаль
Дай более точное и полное описание, тогда сможем помочь !
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
sergling
Junior Member
**
Отсутствует



Сообщений: 24
Зарегистрирован: 05. Июля 2007
Пол: Мужской
Re: метод ПолучитьПеременнуюКонтекста
Ответ #11 - 08. Декабря 2007 :: 11:07
Печать  
я извиняюсь, возможно это пустое обсуждение. т.к. я выяснил что используемая версия ВК formex у меня довольно старая, последнюю попробую в понедельник, но в любом случае отпишусь.
Вызываю процедуру печати документа, таблица пишется в переменную таб, таб глобальная для модуля формы документа. Забираю ее после вызова процедуры также через ВК. Тип ее "таблица", но вот она пустая таблица. Если же в процедуре печати сделать Таб.ИсходнаяФорма(Файл), (где файл-внешний файл таблицы) тогда все пучком, а если к примеру Таб.ИсходнаяФорма(Таблица) (где таблица - описанная с документом таблица), тогда получаем пустой лист.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: метод ПолучитьПеременнуюКонтекста
Ответ #12 - 08. Декабря 2007 :: 11:12
Печать  
Это баг ФормЕкс, он уже исправлен в сборке 2.0.5.80, но пока эта сборка не выложена Алексеем.
В общем, ждем.
ЗЫ в 1С++ прямой вызов Конт.Печать() не имеет такого бага Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: метод ПолучитьПеременнуюКонтекста
Ответ #13 - 12. Декабря 2007 :: 13:45
Печать  
Юзай сборку Формекс 82
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
sergling
Junior Member
**
Отсутствует



Сообщений: 24
Зарегистрирован: 05. Июля 2007
Пол: Мужской
Re: метод ПолучитьПеременнуюКонтекста
Ответ #14 - 12. Декабря 2007 :: 21:26
Печать  
спасибо, попробую.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать