ПриПолученииДанныхОтПодчиненного #374137


#0 by Oleg5482
Есть план обмена. Как узнать узел отправителя при выполнении процедуры ПриПолученииДанныхОтПодчиненного?
#1 by Oleg5482
up
#2 by Oleg5482
Up
#3 by Asmody
ЭлементДанных.ОбменДанными.Отправитель дальше в СП
#4 by Oleg5482
всегда возвращает Неопределено
#5 by Oleg5482
Up
#6 by Oleg5482
up
#7 by Immortal
никак. м.б. в 8.1 что и поменялось, в 8.0 точно нельзя было. Выход: связать узел с чем нибудь - подразделения,организации, что угодно для определния узла.
#8 by Oleg5482
Тогда как реализовать мезанизм обмена как в 7.7 только получатель? Просто удалять регистрацию изменений не катит, мне нужно чтобы измененные в переферийке данные при обмене замещались "эталонными" данными и главного узла для этого и выбрана процедура ПриПолученииДанныхОтПодчиненного т.к. там есть флаг ОтправкаНазад какраз то что надо
#9 by Immortal
двусторонний обмен.
#10 by Oleg5482
я так и делаю но мне назачто зацепится ПриПолученииДанныхОтПодчиненного в самих данных ибо это не выборочная миграция по организацимя, может есть возможность узнать отправителя при начале чтения пакета?
#11 by Immortal
обедал=) к изменения от периферии не будут приняты пока ты в периферии не пульнёшь данные от главного узла. То есть приоритет у центра. далее: по поводу определения узла : в случае схемы "звезда"  вопрос решается достаточно просто : чтение производится программно перебором узлов.. т.е. ты знаешь из какого узла данные считываешь. в случае схемы 1->2->3 посложнее, но тут надо определится что именно ты хочешь получить.
#12 by Oleg5482
Ну это ж уловки. А если юзер зарядет выборочно? Например дав команду "Прочитать изменения" где Каким методом я могу получить ссулку на узел с которым в данный момент выполняется обмен?
#13 by Immortal
откуда он зарядит?
#14 by Immortal
из пользовательского режима... что мешает нажатие отработать.
#15 by Oleg5482
Ну это понятно, всеравно это уловки которые не могут исключить неоднозанчности. Считал что д.б. такой глобальный метод с помощью которого можно было бы однозначно определить чей пакет принимается в текущем обмене. Как то странновато что его нет.
#16 by Serg_1960
А что скажет товарищ Сталин, - тьфу, СП: ПараметрыОбменаДанными (DataExchangeParameters) Свойства: Получатели (Recipients) Описание: Объект не может быть создан самостоятельно. Объект данного типа представляет собой значение свойства ОбменДанными объектов, представляющих данные, по которым ведется учет изменений. Отправитель (Sender) Использование: Чтение и запись. Описание: Тип: ПланОбменаСсылка.<Имя плана обмена>, Неопределено. При записи элемента данных после получения элемента данных из сообщения регистрация изменений должна быть выполнена для всех узлов планов обмена, в состав которых входит объект данных, за исключением того узла, из которого получено изменение. Для того, чтобы регистрация изменений для узла-отправителя не выполнялась, необходимо перед записью объекта данных присвоить свойству Отправитель значение ссылки на узел, из которого получено изменение. Вывод: Это не он Вам "подсказывает" отправителя :), - а Вы ему должны указать отправителя перед записью :(
#17 by Serg_1960
СП: ЧтениеСообщенияОбмена (ExchangeMessageReader) Отправитель (Sender) Использование: Только чтение. Описание: Тип: ПланОбменаСсылка.<Имя плана обмена>, Неопределено. Ссылка на узел, являющийся отправителем данного сообщения. Примечание: До обращения к методу НачатьЧтение и после обращения к методу ЗакончитьЧтение или ПрерватьЧтение значением данного свойства будет Неопределено.
#18 by Serg_1960
#19 by Oleg5482
Четние сообщения - это если я инициирую а я ничего не инициирую обмен уже иницирован пользователем. Не подходит. ПараметрыОбменаДанными - под мою задачу не подходит тем более. Мне нужно узнать отправителя в уже текущем обмене, а не указать его.
#20 by Oleg5482
Есть еще варианты?
#21 by Oleg5482
Всё гениальное просто нужно использовать ЭтотОбъект там всегда хранится контекст узла с которым сейчас идет обмен кто бы мог подумать и не нужно никаких шаманских методов перебора! Всем спасибо за помощь.
#22 by Immortal
блин.. ,-)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С