Имя: Пароль:
1C
1С v8
Параметр ОбменДанными
0 Мандалай
 
06.11.16
17:35
Добрый вечер.
Как проверить есть ли у объекта параметр ОбменДанными?
1 RomanYS
 
06.11.16
17:36
(0) по типу, или попыткой
2 Мандалай
 
06.11.16
17:40
По типу - это типа:

Если ТипСправочник = Тип("Справочник.Контрагенты") Тогда

КонецЕслИ;
или как то иначе?
Попыткой банально.
3 Lexey_
 
06.11.16
17:52
(0)
Структура = Новый Структура("ОбменДанными");
ЗаполнитьЗначенияСвойств(Структура, ПроверяемыйОбъект);
ЕстьСвойство = Структура.ОбменДанными <> Неопределено;
4 Cyberhawk
 
06.11.16
18:12
(2) Нет, это метод Содержит() у всех менеджеров объектов метаданных
5 RomanYS
 
06.11.16
19:27
(3) тоже можно)
(4) у менеджеров только типВсеССЫЛКИ(), а у ссылок как раз нет ОбменДанными

(2) Например,
МассивНужныхТипов.Найти(ТипЗнч(ТвойОбъект)) <> Неопределено

или
ТипСтр = ""+ТипЗнч(ТвойОбъект);
ЕстьОбменДаными = (Найти(ТипСтр, "Объект")+Найти(ТипСтр, "Набор") > 0);
6 Cyberhawk
 
06.11.16
20:32
(5) А, ну ладно, не у менеджера, а у корневых объектов МД ("Справочники", "Документы", "ПВХ"). А то, что ты предлагаешь, работать будет не всегда.
Единственный (как пока видится) универсальный способ указан в (3).
7 RomanYS
 
06.11.16
22:08
(6) с метаданными вообще непонятно: они одинаковые у объекта и ссылки, а ОбменДанными есть только у первого.

В каком случае не сработает(5) (кроме констант, структур и т.п.)?
8 Cyberhawk
 
06.11.16
23:37
(7) ПланОбменаОбъект
9 RomanYS
 
07.11.16
09:22
(8)  разве не
Найти(ТипСтр, "Объект") >0 ?
10 h-sp
 
07.11.16
09:31
(9) Справочник.ОбъектыСтроительстваСсылка
11 Cyberhawk
 
07.11.16
09:31
(9) Ты что-то не так понял в своем коде, походу
12 Мандалай
 
07.11.16
15:11
Благодарю.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан