![]() |
|
ОбменДанными. Получить тип метаданных | ☑ | ||
---|---|---|---|---|
0
Slon747
22.12.20
✎
13:33
|
При записи набора регистра сведений выполняется регистрация изменений в плане обмена (отдельной процедурой с помощью передачи параметра ОбменДанными).
Как из этой процедуры получить тип метаданных? Т.е. можно ли как-то считать параметр ОбменДанными и понять, что это за регистр? |
|||
1
ДенисЧ
22.12.20
✎
13:36
|
ОбменДанными это не регистр...
|
|||
2
Slon747
22.12.20
✎
13:43
|
(1) Спасибо. Я знаю.
Можно ли по атрибуту объекта ОбменДанными получить тип метаданных объекта? |
|||
3
ДенисЧ
22.12.20
✎
13:46
|
Если Метаданные.РегистрНакопления.ТипВсеСсылки().СодержитТип(ТипЗнч(входящийПараметр))...
|
|||
4
acht
22.12.20
✎
13:56
|
(2) > по атрибуту объекта ОбменДанными
По какому именно? |
|||
5
Slon747
22.12.20
✎
13:59
|
(3) Еще раз.
Из модуля регистра сведений вызывается процедура из общего модуля ЗарегистрироватьИзменения(ОбменДанными). Здесь ОбменДанными - атрибут объекта. Процедура ЗарегистрироватьИзменения(ОбменДанными) Для каждого ПланОбмена Из ПланыОбмена Цикл ИмяПланаОбмена = СокрЛП(ПланОбмена.ПустаяСсылка().Метаданные().Имя); МассивУзлов = ПолучитьМассивУзлов(); //здесь получаем массив узлов плана обмена Для каждого Узел Из МассивУзлов Цикл Попытка ОбменДанными.Получатели.Добавить(Узел); Исключение КонецПопытки; КонецЦикла; КонецЦикла; В данном случае если у плана обмена нет в составе данного типа метаданных, то возникает ошибка. Как избавиться от обработки ошибки (Попытка-Исключение)? Т.е. как из процедуры ЗарегистрироватьИзменения() по параметру ОбменДанными понять, что это регистр сведений "МойРегистр" и не выполнять никаких действий? |
|||
6
ДенисЧ
22.12.20
✎
14:00
|
НаборУзлов (NodeSet)
Содержит (Contains) Синтаксис: Содержит(<Узел>) Параметры: <Узел> (обязательный) Тип: ПланОбменаСсылка.<Имя плана обмена>. Ссылка на узел плана обмена, который надо проверить на вхождение в набор узлов. Возвращаемое значение: Тип: Булево. Истина - узел входит в набор узлов; Ложь - в противном случае. Описание: Определяет, входит ли указанный узел плана обмена в набор узлов. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер. Пример: Узел = ПланыОбмена.ПО1.НайтиПоКоду("Маг11"); Если Об.ОбменДанными.Получатели.Содержит(Узел) Тогда // Некоторые действия КонецЕсли; Использование в версии: Доступен, начиная с версии 8.0. Методическая информация |
|||
7
Slon747
22.12.20
✎
14:04
|
(6)
Процедура общего модуля вызывается из десятков разных мест. Хотелось бы именно в ней предусмотреть ситуацию, когда данный объект не может быть зарегистрирован в плане обмена. Но план обмена известен, а тип регистрируемых данных - нет. |
|||
8
ДенисЧ
22.12.20
✎
14:07
|
(7) ОбъектМетаданных: ПланОбмена (MetadataObject: ExchangePlan)
Состав (Content) Использование: Только чтение. Описание: Тип: СоставПланаОбмена. Коллекция объектов метаданных, входящих в состав плана обмена. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер. Использование в версии: Доступен, начиная с версии 8.1. Методическая информация |
|||
9
Slon747
22.12.20
✎
14:13
|
(8) Ну вот из (5) я знаю Узел и получаю его состав. Знаю, что регистра сведений "МойРегистр" нет в его составе.
Но как мне узнать, что ОбменДанными пришел именно из регистра "МойРегистр"? |
|||
10
RomanYS
22.12.20
✎
14:25
|
(9) По ОбменДанными уже не узнаешь не объект ни его метаданные. В этой процедуре уже ничего не сделаешь, смотри точки её вызова.
|
|||
11
Slon747
22.12.20
✎
14:37
|
(10) Жаль. Спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |