Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Как определить тип контекста? (http://forums.kuban.ru/f1040/kak_opredelit-_tip_konteksta-5287428.html)

Gorr 17.01.2014 17:40

Как определить тип контекста?
 
Возникла мысль написания некоего универсального кода в глобальном модуле для инициализации объектов конфигурации. Из объектов производится вызов из процедуры ВводНового в форме глВыполнитьИнициализациюОбъекта(Контекст)
Как проверить принадлежность объекта к справочникам?
ТипЗначенияСтр(Конт) возвращает некий "ГрупповойКонтекст", ТипЗначения(Конт) значения 100. Каким еще образом можно определить что за объект перед нами?

smaharbA 17.01.2014 17:55

77 ?
попытка исключение свойственных методов

Gorr 17.01.2014 17:58

может красивее можно как-то через метаданные как в 8ке?

smaharbA 17.01.2014 18:28

нет(ути)

oxo 17.01.2014 22:23

[quote=Gorr;33755485]может красивее можно[/quote]можно.. курим интенсивно, много и отсюда: [url]http://www.1cpp.ru/index.php/VeryBeginning[/url]

VZ 17.01.2014 23:22

0-Gorr > [em]"ТипЗначенияСтр(Конт) возвращает некий "ГрупповойКонтекст", ТипЗначения(Конт) значения 100. Каким еще образом можно определить что за объект перед нами?[/em]"
Вообще-то, это форма. Если этот самый контекст попробовать запросить из агрегатного объекта, созданного методом СоздатьОбъект(), то получим 12 для документа, 11 для справочника и т.д. И можно к этому контексту применить метод Вид() для уточнения.
Для формы можно спросить заголовок ;) Он точно будет.

smaharbA 18.01.2014 05:36

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


Текущее время: 05:11. Часовой пояс GMT +3.