Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

ОбменДанными. Получить тип метаданных

ОбменДанными. Получить тип метаданных
Я
   Slon747
 
22.12.20 - 13:33
При записи набора регистра сведений выполняется регистрация изменений в плане обмена (отдельной процедурой с помощью передачи параметра ОбменДанными).
Как из этой процедуры получить тип метаданных?
Т.е. можно ли как-то считать параметр ОбменДанными и понять, что это за регистр?
   ДенисЧ
 
1 - 22.12.20 - 13:36
ОбменДанными это не регистр...
   Slon747
 
2 - 22.12.20 - 13:43
(1) Спасибо. Я знаю.
Можно ли по атрибуту объекта ОбменДанными получить тип метаданных объекта?
   ДенисЧ
 
3 - 22.12.20 - 13:46
Если Метаданные.РегистрНакопления.ТипВсеСсылки().СодержитТип(ТипЗнч(входящийПараметр))...
   acht
 
4 - 22.12.20 - 13:56
(2) >  по атрибуту объекта ОбменДанными
По какому именно?
   Slon747
 
5 - 22.12.20 - 13:59
(3) Еще раз.
Из модуля регистра сведений вызывается процедура из общего модуля ЗарегистрироватьИзменения(ОбменДанными).
Здесь ОбменДанными - атрибут объекта.
Процедура ЗарегистрироватьИзменения(ОбменДанными)

    Для каждого ПланОбмена Из ПланыОбмена Цикл
        
        ИмяПланаОбмена = СокрЛП(ПланОбмена.ПустаяСсылка().Метаданные().Имя);

        МассивУзлов = ПолучитьМассивУзлов();//здесь получаем массив узлов плана обмена

        
        Для каждого Узел Из МассивУзлов Цикл

            Попытка
                ОбменДанными.Получатели.Добавить(Узел);
            Исключение
            КонецПопытки; 

        КонецЦикла;
                                                                 
    КонецЦикла;


В данном случае если у плана обмена нет в составе данного типа метаданных, то возникает ошибка.
Как избавиться от обработки ошибки (Попытка-Исключение)?
Т.е. как из процедуры ЗарегистрироватьИзменения() по параметру ОбменДанными понять, что это регистр сведений "МойРегистр" и не выполнять никаких действий?
   ДенисЧ
 
6 - 22.12.20 - 14:00
НаборУзлов (NodeSet)
Содержит (Contains)
Синтаксис:
Содержит(<Узел>)
Параметры:
<Узел> (обязательный)
Тип: ПланОбменаСсылка.<Имя плана обмена>.
Ссылка на узел плана обмена, который надо проверить на вхождение в набор узлов.
Возвращаемое значение:
Тип: Булево.
Истина - узел входит в набор узлов; Ложь - в противном случае.
Описание:
Определяет, входит ли указанный узел плана обмена в набор узлов.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Пример:
Узел = ПланыОбмена.ПО1.НайтиПоКоду("Маг11");
Если Об.ОбменДанными.Получатели.Содержит(Узел) Тогда
    // Некоторые действия


КонецЕсли;
Использование в версии:
Доступен, начиная с версии 8.0.
     Методическая информация
   Slon747
 
7 - 22.12.20 - 14:04
(6)
Процедура общего модуля вызывается из десятков разных мест.
Хотелось бы именно в ней предусмотреть ситуацию, когда данный объект не может быть зарегистрирован в плане обмена.
Но план обмена известен, а тип регистрируемых данных - нет.
   ДенисЧ
 
8 - 22.12.20 - 14:07
(7) ОбъектМетаданных: ПланОбмена (MetadataObject: ExchangePlan)
Состав (Content)
Использование:
Только чтение.
Описание:
Тип: СоставПланаОбмена.
Коллекция объектов метаданных, входящих в состав плана обмена.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.1.
     Методическая информация
   Slon747
 
9 - 22.12.20 - 14:13
(8) Ну вот из (5) я знаю Узел и получаю его состав. Знаю, что регистра сведений "МойРегистр" нет в его составе.
Но как мне узнать, что ОбменДанными пришел именно из регистра "МойРегистр"?
   RomanYS
 
10 - 22.12.20 - 14:25
(9) По ОбменДанными уже не узнаешь не объект ни его метаданные. В этой процедуре уже ничего не сделаешь, смотри точки её вызова.
   Slon747
 
11 - 22.12.20 - 14:37
(10) Жаль. Спасибо.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.