Имя: Пароль:
1C
1C 7.7
v7: formex: Как узнать, в каком контексте находишься?
0 Chai Nic
 
07.02.24
09:25
Есть в формексе глобальная процедура ПослеОткрытия(Конт). Существует ли способ в ней узнать тип контекста? То есть, как отличить, что именно открылось, форма отчета или обработки или журнала документов, например?
1 АЛьФ
 
07.02.24
09:26
ПолныйТипОбъекта()
Синтаксис:
ПолныйТипОбъекта()
Назначение:
Возвращает полный тип объекта, которому принадлежит расширяемая форма.
ПРИМЕР:
ФормаРасш = СоздатьОбъект(''РасширениеФормы'');
ФормаРасш.УстановитьФорму(Форма);
Сообщить(ФормаРасш.ПолныйТипОбъекта());
// выводит строку вида: Справочник.Тестовый.ФормаСписка.ДляВыбора
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ:
(Строка) полный тип объекта, которому принадлежит расширяемая форма.
2 Chai Nic
 
07.02.24
09:41
Спасибо!
3 Злопчинский
 
07.02.24
09:47
Функция глВернутьТипКонтекста(Знач Конт) Экспорт
     ТипКонтекста="ТаблицаЗначенийСписокЗначенийСправочник.ФормаСпискаДокументЖурналОтчет";

     Попытка    А=Конт.КоличествоКолонок();
     Исключение ТипКонтекста=СтрЗаменить(ТипКонтекста,"ТаблицаЗначений","");
     КонецПопытки;

     Попытка    А=Конт.РазмерСписка();
     Исключение ТипКонтекста=СтрЗаменить(ТипКонтекста,"СписокЗначений","");
     КонецПопытки;
    
     Попытка    А=Конт.ТекущийЭлемент();
     Исключение ТипКонтекста=СтрЗаменить(ТипКонтекста,"Справочник","");
     КонецПопытки;
                              
     Попытка    А=Конт.ИерархическийСписок();
     Исключение ТипКонтекста=СтрЗаменить(ТипКонтекста,".ФормаСписка","");
     КонецПопытки;
    
     Попытка    А=Конт.Проведен();
     Исключение ТипКонтекста=СтрЗаменить(ТипКонтекста,"Документ","");
     КонецПопытки;
    
     Попытка    А=Конт.ТекущийДокумент;
     Исключение ТипКонтекста=СтрЗаменить(ТипКонтекста,"Журнал","");
     КонецПопытки;
    
     Попытка    Конт.РасположениеФайла(А,А);
     Исключение ТипКонтекста=СтрЗаменить(ТипКонтекста,"Отчет","");
     КонецПопытки;
    
     Возврат ТипКонтекста;
КонецФункции //глВернутьТипКонтекста()
4 Chai Nic
 
07.02.24
10:02
(3) Тоже неплохо)