Имя: Пароль:
1C
1C 7.7
v7: Как определить видимость колонки из контекста
0 sinisterfrag
 
31.07.12
14:19
По открытии обработки получаю контекст документа.
Необходимо проверить видимость колонок документа чтобы скрытые колонки не печатать. Как определить видимость колонки из контекста пишу конт.форма выдает ошибку
1 palpetrovich
 
31.07.12
14:20
контекст документа != контекст формы
2 viktor_vv
 
31.07.12
14:23
Покажи как передаешь и что именно.
3 Ёпрст
 
31.07.12
14:23
Конт.Форма.Колонка.Видимость()
4 palpetrovich
 
31.07.12
14:26
(3) документ не открыт - нет формы, значит нет и контектса, я неправ?
5 viktor_vv
 
31.07.12
14:28
(4) Так не понятно, что он передает.
"По открытии обработки получаю контекст документа." Может из открытого дока открывает обработку и передает туда контекст.
6 Ёпрст
 
31.07.12
14:29
(4) есть 2 контекста - контекст открытой формы и контекст модуля документа доступный при его проведении.
Если автор грит, что есть контекст  - следовательно, форма по определению открыта.
7 palpetrovich
 
31.07.12
14:33
(5)(6) ну ежели так, то да :)
8 palpetrovich
 
31.07.12
14:49
хе, попробовал.  Проба(Контекст); и из формы и из модуля дока:

Сообщить("КоличествоВидимость "+Конт.Форма.Количество.Видимость());
{Обработка.Балбалба.Форма.Модуль(24)}: Поле агрегатного объекта не обнаружено (Форма)

так что не все так просто ;)
9 Ёпрст
 
31.07.12
14:51
(8) конт- это что у тебя ?
10 palpetrovich
 
31.07.12
14:53
+(8) соврал где-то, в глобальном можуле
Процедура Проба(Конт) Экспорт
   Сообщить("КоличествоВидимость "+Конт.Форма.Количество.Видимость());
КонецПроцедуры    
отрабатывает нормально. Где-то я ошибся при передаче в обработку
11 Ёпрст
 
31.07.12
14:54
+
сообщить(ТипЗначения(Конт)) = ?
12 palpetrovich
 
31.07.12
14:57
(11) да все из формы - норм
13 palpetrovich
 
31.07.12
15:03
(11) кста, забавно
Процедура Проба(Конт) Экспорт
   ТипЗначенияКонт = ТипЗначения(Конт);
   Сообщить("ТипЗначенияКонт " + ТипЗначенияКонт);    
   Если ТипЗначенияКонт=100 Тогда
       Сообщить("  КоличествоВидимость "+Конт.Форма.Количество.Видимость());  
   Иначе
       Сообщить("фигвам");
   КонецЕсли;
КонецПроцедуры    
результат из формы
ТипЗначенияКонт 100
КоличествоВидимость 1
результат из модуля дока
ТипЗначенияКонт 100
Сообщить("  КоличествоВидимость "+Конт.Форма.Количество.Видимость());  
{Глобальный модуль(10942)}: Поле агрегатного объекта не обнаружено (Форма)
14 Ёпрст
 
31.07.12
15:31
(13) из модуля документа или из модуля формы ?
Если первое - то так и должно быть.
15 Ёпрст
 
31.07.12
15:31
ибо это программный контекст модуля документа, а не контекст открытой формы
16 palpetrovich
 
31.07.12
15:36
(14) ну дык, я-ж написал откуда какой результат ;)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.