Порядок выгрузки данных. РИБ. #761128


#0 by Nikoss
Есть РИБ. При выгрузке данных (к примеру, документ поступление тмз) в файле обмена идут сначала данные по регистру взаиморасчетов, а потом только данные самого документа. Как можно изменить? Для чего это всё :- Делаю РИБ "по магазину". В момент приему данных в центральном узле необходимо анализировать движения по регистрам и собственно сами документы, для того чтобы зарегистрировать изменения для необходимых подчиненных узлов. Так вот, т.к. документ идет в обмене не в первую очередь, не могу по Регистратору регистра, допустим, накопления, определить для кого регистрировать изменения.
#2 by Лефмихалыч
нужно отказаться от идеи анализировать движения по регистрам при загрузке данных
#3 by Лефмихалыч
регистрируй движения после регистрации документа. То есть в коде регистрации документа отдельно вызывай код регистрации его движений.
#4 by Живой Ископаемый
добавить в регистр реквизит, писать инфу для анализа в этот реквизит, при приеме анализировать его.
#5 by Nikoss
, так откуда их взять? В движениях пусто в момент приема документа. , не хотелось бы типовые регистры изменять.
#6 by Живой Ископаемый
2 Почему? чем он тебе так дорог?
#7 by Nikoss
он сильно не один, это рас, нужно влазить во все типовые движения чтобы заполнять этот реквизит, это два.
#8 by Живой Ископаемый
не надо влазить в типовые. надо добавить подписку на событие призапис набрра записей нужных регистров и анализировать регистратор, из которого и брать нужные значения для заполнения реквизитов.
#9 by Defender aka LINN
Определись уже. В написано ровно наоборот.
#10 by Nikoss
оно может быть и так и сяк. В одном случае сначала идет регистр, потом документ, потом остальные регистры. В другом - сначала документ, потом регистры и т.д.
#11 by hhhh
добавь в реквизиты регистра, то что нужно для регистрации обмена и не парьте нам мозг.
#12 by Nikoss
Какие выходы еще могут быть, кроме добавления реквизита в регистры? Может на момент загрузки формировать массив всех значений, а при полной загрузке уже регистрировать изменения? Но не нашел подходящего события.
#13 by Nikoss
Подскажите, в какой момент регистрируются изменения для подчиненных узлов в момент приема сообщения? Не могу найти. К примеру, регистр, тот же Взаиморасчеты, начиная с процедуры ПриПолученииДанныхОтПодчиненного по F11 прохожу всё до конца в отладке, нигде регистрация не идет, а при окончании приема он уже зарегистрирован.
#14 by Nikoss
+13) Типовой РИБ ПоОрганизации УТ (обыч.прил), авторегистрация регистра запрещена
#15 by Nikoss
Что-то не получает беседы( Всё же еще раз, как такая идея: при загрузке формировать ТЗ (допустим глоб.переменная) со всеми данными для регистрации, потом в процедуре ПриЗаписи плана обмена(процедура полюбому срабатывает т.к. необходимо записать номера сообщений) уже обрабатывать регистрацию?
#16 by Живой Ископаемый
да, делай
#17 by Лефмихалыч
идея - говно
#18 by Лефмихалыч
Автор, рекомендую задуматься, почему у всех всё работает без таких ухищрений, а у тебя - нет. Может ты что-то делаешь или понимаешь не так?
#19 by Serg_1960
Движения документа и сам документ при риб-обмене - автономны и независимы друг от друга; порядок следования данных в сообщении обмена - не определен. Это же классика жанра риб-обмена данными :)   Если хочешь писать "свой" план обмена, то ориентируйся на документ, а не его движения. Повесь подписку на событие "ПередЗаписью" документа и там разбирайся хочешь ты регистрировать или нет этот документ. А вообще, в типовых конфигурациях, регистрация изменений для обмена реализуется на подписках (там где не установлен признак авторегистрации). Если хочешь разобраться с обменами в типовых  - смотри подписки с наименованиями, типа, которые начинаются со слова "Обмен..." или содержит подстроку "...ДляОбмена...".
#20 by aleks_default
Тут два варианта, либо поставить Авторегистрацию для всех выгружаемых объектов и фильтровать в процедуре ПриОтправкеДанныхПордчиненному (ссответсвенно время обмена увеличится), либо как в добавить реквизит(или использовать существующий) для фильтра.
#21 by Nikoss
Обоснуй Может просто никто не разбирался нормально? Или им везло со структурой РИБ баз (читай далее). План обмена свой, но он был сделан по образу плана обмена ПоОрганизации. Т.е. именно так, как ты описываешь - подписки на события, там регистрация и т.д. Вот как работает типовая: Обмен ПоОрганизации РИБ, УТ версия до упр.форм. Центральный узел + 2 узла с одной и той же организацией. В одной подчиненной базе делаю документ, ПКО (к примеру), делаю выгрузку в центр. Структура XML как раз такая же как и в моем случае - несколько регистров, потом сам документ, потом остальные регистры. Не буду описывать, что происходит в момент приема в центре этой XML. Итог следующий - во второй подчиненный узел выгружаются НЕ ВСЕ ДАННЫЕ, т.е. те регистры которые были до документа в XML просто тупо не регистрируются для другого узла. ИТОГО имеем тоже самое, на что наткнулся я в своем обмене. НО это Типовой обмен!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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