|
План обмена. Ручное формирование файла выгрузки. | ☑ | ||
|---|---|---|---|---|
|
0
ShadowXXX
09.03.07
✎
08:10
|
Делаю выгрузку следующим образом:
УзелПолучатель=Константы.ПланОбменаТекущейИБ.Получить(); ФайлXML=Новый ЗаписьXML; ФайлXML.ОткрытьФайл(ФайлОбмена); ФайлXML.ЗаписатьОбъявлениеXML(); ЗаписьСообщения=ПланыОбмена.СоздатьЗаписьСообщения(); ЗаписьСообщения.НачатьЗапись(ФайлXML,УзелПолучатель); Выборка=ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель,ЗаписьСообщения.НомерСообщения); МассивСВыгруженнымиЭлементами=Новый Массив(); Пока (Выборка.Следующий()) Цикл Объект=Выборка.Получить(); Выгружать=1; ...Проверка необходимости выгрузки Если (Выгружать) Тогда ЗаписатьXML(ФайлXML,Объект); МассивСВыгруженнымиЭлементами.Добавить(Объект); КоличествоВыгруженных=КоличествоВыгруженных+1; Иначе ПланыОбмена.УдалитьРегистрациюИзменений(Узлы.Ссылка,Объект); КонецЕсли; КонецЦикла; НомерОтправленногоСообщения=ЗаписьСообщения.НомерСообщения; ЗаписьСообщения.ЗакончитьЗапись(); ФайлXML.Закрыть(); После выгрузки получаю следующий файл: <?xml version="1.0" ?> - <v8msg:Message xmlns:v8msg="http://v8.1c.ru/messages"> - <v8msg:Header> <v8msg:ExchangePlan>Управленческий_Финансовый</v8msg:ExchangePlan> <v8msg:To>ФИН</v8msg:To> <v8msg:From>УПР</v8msg:From> <v8msg:MessageNo>4</v8msg:MessageNo> <v8msg:ReceivedNo>0</v8msg:ReceivedNo> </v8msg:Header> <v8msg:Body /> </v8msg:Message> Если же использовать функцию для полной выгрузки (или выгрузить стандартным образом нажав кнопку в плане обмена), то получаю файл следующего содержания: - <v8msg:Message xmlns:v8msg="http://v8.1c.ru/messages"> - <v8msg:Header> <v8msg:ExchangePlan>Управленческий_Финансовый</v8msg:ExchangePlan> <v8msg:To>ФИН</v8msg:To> <v8msg:From>УПР</v8msg:From> <v8msg:MessageNo>3</v8msg:MessageNo> <v8msg:ReceivedNo>0</v8msg:ReceivedNo> </v8msg:Header> - <v8msg:Body> - <v8de:Changes xmlns:v8de="http://v8.1c.ru/dataexchange/2005/02" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v8="http://v8.1c.ru/data"> <v8de:Signature>2426be57-a28b-4a7e-bef5-22eaf1d0a9f0</v8de:Signature> - <v8de:Config xmlns:v8md="http://v8.1c.ru/metadata/2005/08"> <v8de:Version>6.0</v8de:Version> <v8de:Digest1>00000000000000000000000000000000</v8de:Digest1> <v8de:Digest2>08e350541a80b82e14abb659ea42ad06</v8de:Digest2> </v8de:Config> - <v8de:Nodes> - <v8de:Node> <v8de:DeletionMark>false</v8de:DeletionMark> <v8de:Code>УПР</v8de:Code> <v8de:Description>Управленческая база</v8de:Description> </v8de:Node> - <v8de:Node> <v8de:DeletionMark>false</v8de:DeletionMark> <v8de:Code>ФИН</v8de:Code> <v8de:Description>Финансовая база</v8de:Description> </v8de:Node> </v8de:Nodes> <v8de:Data /> </v8de:Changes> </v8msg:Body> </v8msg:Message> Вопрос: почему при моей выгрузке отсутствует секции Changes Signature Config и т.д. Так же если были изменения в конфигурации они не запишутся в файл при использовании моей выгрузки. |
|||
|
1
ТелепатБот
гуру
09.03.07
✎
08:10
|
||||
|
2
ShadowXXX
09.03.07
✎
10:17
|
Неужели никто не знает в чём проблема???
|
|||
|
3
Звездочёт
09.03.07
✎
10:28
|
(2) все ещё спят .)
|
|||
|
4
Neco
09.03.07
✎
10:34
|
Так надо, так задумано
|
|||
|
5
Циник
09.03.07
✎
10:35
|
Если попробовать думать логически, то Changes, Signature, Config разделы для синхронизации конфигураций в УРБД. Ты же делая "ВыбратьИзменения" выбираешь только измененные данных, а не изменения в метаданных. И в файл пишешь только их, соответственно в твоем файле нет секций по синхронизации конфигурации.
|
|||
|
6
Звездочёт
09.03.07
✎
10:37
|
(0) а план обмена у тебя, вообще, распределенный?
|
|||
|
7
ShadowXXX
09.03.07
✎
10:38
|
(5)
Я так полагаю ВыбратьИзменения должно выбирать все изменения, да же если они были в конфигурации. Причём в примере сформированных файлов которые я привёл вообще нет изменений. Т.е. это файлы пустышки. (6) Да |
|||
|
8
Циник
09.03.07
✎
10:41
|
(7) значит ты неправильно предполагаешь.
|
|||
|
9
ShadowXXX
09.03.07
✎
10:42
|
(8)
И как быть? Есть ли какое-то решение? |
|||
|
10
Циник
09.03.07
✎
10:48
|
Ну у нас например работает так.
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Ссылка); ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения, КоличествоЭлементов); ЗаписьСообщения.ЗакончитьЗапись(); А дальше в процедурах ПриОтправкеДанныхГлавному, ПриОтправкеДанныхПодчиненному, ПриПолученииДанныхОтГлавного, ПриПолученииДанныхОтПодчиненного уже обрабатываешь конкретный элемент данных и используя параметры ОтправкаЭлемента/ПолучениеЭлемента определеяшь нужно ли его получать/отправлять. |
|||
|
11
ShadowXXX
09.03.07
✎
10:54
|
(10) думаю что поможет.
|
|||
|
12
SilentMan
09.03.07
✎
11:09
|
Ручная запись изменений из плана обмена с галкой РБД никогда не поместит в файл изменения метаданных. Это можно сделать только через (10).
|
|||
|
13
Vozhd
09.03.07
✎
11:13
|
(0) 5 Баллов!!!
Выгружать=1; Если (Выгружать) Тогда |
|||
|
14
coder1cv8
09.03.07
✎
11:13
|
(10) +1 и у нас так...
|
|||
|
15
ShadowXXX
09.03.07
✎
11:28
|
(13) Если внимательно присмотреться
то между Выгружать=1; и Если (Выгружать) Тогда Есть ...Проверка необходимости выгрузки где собственно и проверяется выгружать али нет!!! (14) Делаю так же получается. |
|||
|
16
ShadowXXX
09.03.07
✎
14:08
|
(10)
Получилось. Только возникла проблема №2. Информация об изменении конфигурации выгружается, но как её удалить из плана обмена после успешной загрузки? |
|||
|
17
ShadowXXX
09.03.07
✎
14:50
|
Итак.
Что бы изменения в конфигурации главного узла постоянно не выгружались, необходимо из подчинённой ИБ получить ответ о удачном обновлении. |
|||
|
18
SilentMan
09.03.07
✎
14:58
|
(17) В доку заглянул? :)
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |