Как организовать односторонний обмен данными в РИБ?

1. WKBAPKA 215 11.10.09 20:56 Сейчас в теме
Есть переферийная база, мне нужно сделать так, что бы она принимала изменения от центральной базы, а обратно посылала только уведомление о получении данных.
Взял большую красивую книжку и написал как в ней написано. Т.е. создал только заголовок с помощью метода ЗаписатьОбъявлениеXML()

в итоге пишет мне ошибку: Ошибка формата представления данных! :evil:

пробывал через событие ПриОтправкеДанныхГлавному(), так это событие не вызывается...
помогите, как можно реализовать такой обмен?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. I_G_O_R 69 11.10.09 21:21 Сейчас в теме
(1) мысль правильная, пишишь неправильно:
надо было НЕ ЗаписатьОбъявлениеXML(), а что типа этого:
	ЗаписьXML = Новый ЗаписьXML();
	ЗаписьXML.ОткрытьФайл(ИмяФайла);
	ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
	ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Узел);
	
	//А это не надо!!!
	//Выборка = ПланыОбмена.ВыбратьИзменения(Узел, ЗаписьСообщения.НомерСообщения);
	//Пока Выборка.Следующий() Цикл
	//	
	//	Данные = Выборка.Получить();
	//	ЗаписатьXML(ЗаписьXML, Данные);
	//	
	//КонецЦикла;
	
	ЗаписьСообщения.ЗакончитьЗапись();
Показать
3. I_G_O_R 69 11.10.09 21:24 Сейчас в теме
(1) хотя правильнее вообще тогда не регистрировать изменения, смотри свойство "Авторегистрация"
4. I_G_O_R 69 11.10.09 21:28 Сейчас в теме
(1) имелось ввиде заголовок не просто XML, а заголовок сообщения, там в заголовке еще номера сообщений присутствуют,

как третий вариант: удалять регистрацию перед формированием файла выгрузки
5. WKBAPKA 215 11.10.09 23:51 Сейчас в теме
дело в том, что писал так как написано в книге... спасибо... попробую счаз по другому
6. WKBAPKA 215 12.10.09 00:16 Сейчас в теме
нет, не работает так, пишет такую же ошибку... просто капец какой то
7. WKBAPKA 215 12.10.09 00:18 Сейчас в теме
вот что в файле:

<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>7</v8msg:MessageNo>
<v8msg:ReceivedNo>9</v8msg:ReceivedNo>
</v8msg:Header>
<v8msg:Body/>
</v8msg:Message>
8. WKBAPKA 215 12.10.09 00:18 Сейчас в теме
<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>7</v8msg:MessageNo>
		<v8msg:ReceivedNo>9</v8msg:ReceivedNo>
	</v8msg:Header>
	<v8msg:Body/>
</v8msg:Message>


Показать
9. I_G_O_R 69 12.10.09 00:49 Сейчас в теме
(8) кажется все правильно

тогда делаем так: на диске ИТС, а также в УТ и БП есть обработка "РегистрацияИзмененийДляОбмена", удаляем все изменения, выгружаем через контекстное меню плана обмена в итоге должны получить такой (за исключением номеров сообщений) файл как и в (8)


ага, пока писал сам попробовал вот что получилось:

<v8msg:Message xmlns:v8msg="http://v8.1c.ru/messages">
	<v8msg:Header>
		<v8msg:ExchangePlan>Полный</v8msg:ExchangePlan>
		<v8msg:To>002</v8msg:To>
		<v8msg:From>001</v8msg:From>
		<v8msg:MessageNo>2</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>5d066455-924c-4fbe-9c9b-73b516a6c94d</v8de:Signature>
			<v8de:Config xmlns:v8md="http://v8.1c.ru/metadata/2005/08">
				<v8de:Version>106.0</v8de:Version>
				<v8de:Digest1>00000000000000000000000000000000</v8de:Digest1>
				<v8de:Digest2>57b1dc3deddc0d02b1b3131d81a822d2</v8de:Digest2>
			</v8de:Config>
			<v8de:Nodes>
				<v8de:Node>
					<v8de:DeletionMark>false</v8de:DeletionMark>
					<v8de:Code>001</v8de:Code>
					<v8de:Description/>
				</v8de:Node>
				<v8de:Node>
					<v8de:DeletionMark>false</v8de:DeletionMark>
					<v8de:Code>002</v8de:Code>
					<v8de:Description>свав</v8de:Description>
				</v8de:Node>
			</v8de:Nodes>
			<v8de:Data/>
		</v8de:Changes>
	</v8msg:Body>
</v8msg:Message>
Показать
10. I_G_O_R 69 12.10.09 00:52 Сейчас в теме
опачки косяк на сайте нашел вот так писать нельзя:
(8)
,
получается: (8)
RafaelRS; +1 Ответить
11. I_G_O_R 69 12.10.09 01:05 Сейчас в теме
ну значит вывод такой: надо либо
а) удалять регистрацию перед формированием сообщения примерно так
ПланыОбмена.УдалитьРегистрациюИзменений(НашУзел)


б) нерегистрировать изменения, что более правильно, но гораздо трудоемкее чем способ а)
12. I_G_O_R 69 12.10.09 01:38 Сейчас в теме
кстати события ПриОтправкеДанныхГлавному и ПриОтправкеДанныхПодчиненному вызываются если выгрузить через контекстное меню или способом:
	ЗаписьXML = Новый ЗаписьXML(); 
	ЗаписьXML.ОткрытьФайл(ИмяФайла); 
	ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); 
	ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Узел);
	
	// без это строчки в РИБе нельзя оказывается
	ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения);
	
	ЗаписьСообщения.ЗакончитьЗапись();
Показать
13. WKBAPKA 215 12.10.09 10:00 Сейчас в теме
2(12): не вызывается... я помещал эти обработчики событий в модуль плана обмена
14. WKBAPKA 215 12.10.09 10:01 Сейчас в теме
прийдется пробывать через удаление регистрации
15. WKBAPKA 215 12.10.09 10:02 Сейчас в теме
кстати, пример брал с книги "Професиональная разработка в системе 1С:Предприятие"
16. I_G_O_R 69 12.10.09 11:42 Сейчас в теме
а ты лови оба события, я тоже сначала в главной базе не мог поймать событие ПриОтправкеДанныхГлавному, а потом допер что в главной базе будет событие ПриОтправкеДанныхПодчиненному, ведь в переферийной базе неудобно работать, там конфигурацию изменять нельзя.
17. WKBAPKA 215 13.10.09 13:23 Сейчас в теме
вообщем получилось только после вызова метода
ПланыОбмена.УдалитьРегистрациюИзменений(НашУзел)
перед записью сообщения.

как написано в большой красной, красивой и достаточно дорогой книге: НЕ РАБОТАЕТ!!!
18. I_G_O_R 69 13.10.09 22:04 Сейчас в теме
(17) это решение не хуже чем то, что ты предложил, все равно изменения удалять надо
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот