Имя: Пароль:
JOB
Обучение
С Распределённой базы в Главную не приходят данные
,
0 Repinovich
 
15.03.23
14:34
В чём суть. С РИБ при проведении документа , если статус износа больше 70%, то эти данные улетают в Главную базу. Всё написал, но когда читает xmlку в главной базе туда не переносятся данные. Вопрос ,  это в xmlке данных нет или Главная база их не записывает?

Для планов обена:
Процедура ВыполнитьОбменЗаписьИЧтение() Экспорт
    
    Каталог = Константы.КаталогОбмена.Получить();    
    Если ПланыОбмена.ГлавныйУзел() <> Неопределено Тогда
        ИмяФайла = Каталог + "Message" + СокрЛП(ПланыОбмена.Отделения.ЭтотУзел().Код) + "_" +  
        СокрЛП(ПланыОбмена.ГлавныйУзел().Код) + ".xml";
        ЗаписьXML = Новый ЗаписьXML;
        ЗаписьXML.ОткрытьФайл(ИмяФайла);  
        ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); ЗаписьСообщения.НачатьЗапись(ЗаписьXML, ПланыОбмена.ГлавныйУзел());
        ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения);
        ЗаписьСообщения.ЗакончитьЗапись();
        ЗаписьXML.Закрыть();  
    КонецЕсли;
    Каталог = Константы.КаталогОбмена.Получить();
    Если ПланыОбмена.ГлавныйУзел() = Неопределено Тогда  
        ВыборкаРегион = ПланыОбмена.Отделения.Выбрать();  
        Пока ВыборкаРегион.Следующий() Цикл  
            Если ВыборкаРегион.Ссылка <> ПланыОбмена.Отделения.ЭтотУзел() Тогда        
                ИмяФайла = Каталог + "Message" + СокрЛП(ВыборкаРегион.Ссылка.Код) + "_" +     СокрЛП(ПланыОбмена.Отделения.ЭтотУзел().Код) + ".xml";
                Если НайтиФайлы(СтрЗаменить(ИмяФайла,"\","/")).Количество() = 0 Тогда Продолжить; КонецЕсли;    
                ЧтениеXML = Новый ЧтениеXML;
                ЧтениеXML.ОткрытьФайл(ИмяФайла);      
                
                ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();  
                ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
                ПланыОбмена.ПрочитатьИзменения(ЧтениеСообщения);
                
                ЧтениеСообщения.ЗакончитьЧтение();
                
                ЧтениеXML.Закрыть();    
                УдалитьФайлы(ИмяФайла)
                
            КонецЕсли;  
        КонецЦикла;    
    КонецЕсли;
КонецПроцедуры

В Документе: Процедура ОбработкаПроведения(Отказ, Режим)
    
    
    Движения.АмортизацияОбъекта.Записывать = Истина;
    Для Каждого ТекСтрокаИзносОбъектов Из ИзносОбъектов Цикл
        
        Движение = Движения.АмортизацияОбъекта.Добавить();
        Движение.Период = Дата;
        Движение.ОбъектИзноса = ТекСтрокаИзносОбъектов.ОбъектИзноса;
        Движение.ПроцентИзноса = ТекСтрокаИзносОбъектов.ПроцентИзноса;
        
        Если ТекСтрокаИзносОбъектов.ПроцентИзноса >= 70 Тогда  
            
            ПланыОбмена.ЗарегистрироватьИзменения(ПланыОбмена.ГлавныйУзел(), ТекСтрокаИзносОбъектов.ОбъектИзноса);
            
        КонецЕсли;
    КонецЦикла;
    
    Движения.Записать();
    
КонецПроцедуры
1 Галахад
 
гуру
15.03.23
15:04
Хм. А глянуть в файл?
2 Repinovich
 
15.03.23
15:10
(1)     <v8msg:Message xmlns:v8msg="http://v8.1c.ru/messages">
<v8msg:Header>
  <v8msg:ExchangePlan>Отделения</v8msg:ExchangePlan>
  <v8msg:To>1</v8msg:To>
  <v8msg:From>2</v8msg:From>
  <v8msg:MessageNo>3</v8msg:MessageNo>
  <v8msg:ReceivedNo>0</v8msg:ReceivedNo>
</v8msg:Header>

<v8msg:Body>
  <v8de:Changes xmlns:v8="http://v8.1c.ru/data" xmlns:v8de="http://v8.1c.ru/dataexchange/2005/02" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <v8de:Signature>88a849c8-e6c8-49c7-b7d2-b8abd5d13e1e</v8de:Signature>
   <v8de:Config xmlns:v8md="http://v8.1c.ru/metadata/2005/08">
    <v8de:Version>216.0</v8de:Version>
    <v8de:Digest1>00000000000000000000000000000000</v8de:Digest1>
    <v8de:Digest2 v2="9fe39a1b83d3e635b7f7d1ddf6905ab8" Extensions="0000000000000000000000000000000000000000">d331b323e5acf0195c2d970bb63c0efe</v8de:Digest2>
   </v8de:Config>
   <v8de:Data>
    <CatalogObject.ОбъектыДорог>
     <Ref>594c4098-c18e-11ed-9752-5cb9017bf71c</Ref>
     <DeletionMark>false</DeletionMark>
     <Code>000000002</Code>
     <Description>Химкинское шоссе</Description>
     <Ответственный>594c4094-c18e-11ed-9752-5cb9017bf71c</Ответственный>
     <Регион>594c4096-c18e-11ed-9752-5cb9017bf71c</Регион>
    </CatalogObject.ОбъектыДорог>
   </v8de:Data>
  </v8de:Changes>
</v8msg:Body>
</v8msg:Message>
3 Repinovich
 
15.03.23
16:06
Так получается в файле что-то не так? Вроде тут пишется что объект есть. (1)
4 Serg_1960
 
15.03.23
16:20
(0) [ворчу] Некорректно так писать без проверки наличия главного узла, да и ОбработкаПроведения() - это "не то" место, где регистрируются изменения. Смотрите где в Вашей конфигурации регистрация изменений происходит (скорее всего в подписках на события) - там и решайте вопрос регистрации... И Вы забыли упомянуть, входит ли этот объект в план обмена и разрешена ли его регистрация.
5 Serg_1960
 
15.03.23
16:28
PS: Наличие объекта в сообщении обмена ещё не панацея - изменение объекта может быть отвергнуто в главном узле по той или иной причине.
6 Repinovich
 
15.03.23
16:34
(4) объект включен в состав плана, авторегистрация выключена
7 Serg_1960
 
15.03.23
16:39
А почему автор решил, что ОбъектИзноса не мигрирует? Этот объект возможно мигрирует, но он не изменяется и потому "визуально" сложно понять что он изменился :))
8 Repinovich
 
15.03.23
16:42
(7)  А смотрите в xml файле есть MessageNo , и после того как жму кнопку там на +1 становится больше, это значит что он его не принял?
9 Serg_1960
 
15.03.23
16:45
(8) Это ничего не значит в контексте вопроса темы. На главном узле в журнале можно посмотреть изменяется ли этот объект во время обмена или нет.
10 Serg_1960
 
15.03.23
16:52
MessageNo - это номер сообщения, отправленного эти узлом по этому плану обмена (ReceivedNo - номер полученного сообщения)
11 Repinovich
 
15.03.23
17:31
(9) Визуально сразу никак не посмотреть (найти в конфигурации)? Надо его как-то выгружать, почитал не понял как это делается