|
Как узнать тип ссылки? | ☑ | ||
---|---|---|---|---|
0
Omskdizel
29.03.17
✎
13:30
|
Доброго дня!
Озадачился заданной задачей малость... Имеется: 1с 8.х, обычное приложение, форма обработки, на форме поле выбора реквизита формы, этот реквизит имеет составной тип "СправочникСсылка" + "ДокументСсылка". Теперь вопрос: Как мне получить тип выбранного в формате к примеру "Документ.ПеремещениеТоваров"? Вторая часть находится легко - это РеквизитФормы.Метаданные().Имя, а вот как понять, документ это или справочник? Или вообще ПВХ? Способ желательно прямой, а не по наличию уникальных свойств метаданных. Ибо ничто не вечно :) |
|||
1
Волшебник
модератор
29.03.17
✎
13:30
|
ТипЗнч(значение)
|
|||
2
Omskdizel
29.03.17
✎
13:32
|
(1) Оно не возвращает строку. Если преобразовать, то вернет к примеру "Перемещение товаров"
|
|||
3
Волшебник
модератор
29.03.17
✎
13:33
|
(2) Его можно сравнивать с Тип, например
Если ТипЗнч(зн) = Тип("СправочникСсылка.Номенклатура") Тогда |
|||
4
Любопытная
29.03.17
✎
13:34
|
ПолноеИмя (FullName)
Синтаксис: ПолноеИмя() Возвращаемое значение: Тип: Строка. Описание: Получает полное имя объекта метаданного. Имя отвечает требованиям, предъявляемым к именам (должно начинаться с буквы, содержать только буквы, цифры или символ "_", может содержать одну точку (не начальный и не конечный символ)). Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Пример: // В конфигурации определены справочники "Банки", "Валюты" и "Товары" // Результатом работы примера: Для каждого Объект Из Метаданные.Справочники Цикл Сообщить(Объект.ПолноеИмя()); КонецЦикла; // будут сообщения: // Справочник.Банки // Справочник.Валюты // Справочник.Товары |
|||
5
Волшебник
модератор
29.03.17
✎
13:34
|
(2) Для точного решения твоей задачи сначала нужно определить тип ссылки - справочник или документ, например,
Если Метаданные.Справочники.ТипВсеСсылки.Содержит(ТипЗнч(зн)) Тогда //справочник Далее получаем имя через зн.Метаданные().Имя и конкатенируем |
|||
6
youalex
29.03.17
✎
13:35
|
Справочники.ТипВсеСсылки().СодержитТип()
Метаданные.Справочники.Содержит() Метаданные.НайтиПоТипу() |
|||
7
Omskdizel
29.03.17
✎
13:35
|
(3) Дак там же может быть видов документов целая куча, неужто только циклом искать? Как-то мне такой способ видится сильно громоздким.
|
|||
8
Волшебник
модератор
29.03.17
✎
13:35
|
(4) или так
|
|||
9
Omskdizel
29.03.17
✎
13:37
|
(4) Спасибо огромное, прям то, что мне надо! Если не для моего случая, то просто можно строку расковырять до точки. Спасип!
|
|||
10
Serginio1
29.03.17
✎
14:20
|
Тип=СериализаторXDTO.XMLТипЗнч(Объект);
Сообщить(Тип.ИмяТипа); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |