Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

План обмена, синхронизация без правил конвертации, неидентичные конфигурации

План обмена, синхронизация без правил конвертации, неидентичные конфигурации
Я
   lg2marvel
 
24.06.19 - 16:45
Добрый день.
Нужно синхронизировать (на постоянной основе) 2 базы: ЗУП3 и ЗУП3 (сильно допиленный). Создал план обмена, синхронизирую справочники, но дойдя до синхронизации справочника должностей (в ЗУП допиленном добавлены реквизиты) - не загружается. Пишет ошибку:

{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6190)}: Ошибка при вызове метода контекста (ПрочитатьXML)
            Данные = ПрочитатьXML(ЧтениеXML);
по причине:
Ошибка преобразования данных XML: [sfile://C:/Users/karpinskiy/AppData/Local/Temp/Exchange82 {2A29E1EC-52A8-46F2-9F7B-8967FEC6A589}/Message_П2_У1.xml][52,4]

Можно ли это как-то обойти? В приемнике мне не нужно трогать добавленные реквизиты?
 
 
   Beduin
 
1 - 24.06.19 - 16:47
(0) А ты через какую конвертацию отправляешь? 2.0
   lg2marvel
 
2 - 24.06.19 - 16:48
(1) не использую конвертацию
   Fragster
 
3 - 24.06.19 - 16:49
если на значения насрать, то можно через xslt преобразование фигануть и получить валидный xml
   lg2marvel
 
4 - 24.06.19 - 16:50
Модуль менеджера:
Процедура ПриПолученииНастроек(Настройки) Экспорт

    
    Настройки.Алгоритмы.ПриПолученииВариантовНастроекОбмена   = Истина;
    Настройки.Алгоритмы.ПриПолученииОписанияВариантаНастройки = Истина;

КонецПроцедуры

Процедура ПриПолученииВариантовНастроекОбмена(ВариантыНастроекОбмена, ПараметрыКонтекста) Экспорт
    
    ВариантНастройки = ВариантыНастроекОбмена.Добавить();
    ВариантНастройки.ИдентификаторНастройки = "";
    ВариантНастройки.КорреспондентВМоделиСервиса = Ложь;
    ВариантНастройки.КорреспондентВЛокальномРежиме = Истина;
    
КонецПроцедуры

Процедура ПриПолученииОписанияВариантаНастройки(ОписаниеВарианта, ИдентификаторНастройки, ПараметрыКонтекста) Экспорт
    
    КраткаяИнформацияПоОбмену = НСтр("ru = 'Позволяет синхронизировать данные между двумя программами 1С:Библиотека стандартных подсистем.
    |Особенностью данного вида синхронизации данных является отсутствие правил конвертации данных и требование идентичности конфигураций у синхронизирующихся программ.'");
    
    ПодробнаяИнформацияПоОбмену = "http://its.1c.ru/db/bspdoc#content:120:1:IssOgl2_Обмен%2520с%2520БСП%2520(без%2520использования%2520правил%2520обмена)";;
    
    ОписаниеВарианта.КраткаяИнформацияПоОбмену   = КраткаяИнформацияПоОбмену;
    ОписаниеВарианта.ПодробнаяИнформацияПоОбмену = ПодробнаяИнформацияПоОбмену;
    
    ОписаниеВарианта.ИмяКонфигурацииКорреспондента          = Метаданные.Имя;
    ОписаниеВарианта.НаименованиеКонфигурацииКорреспондента = НСтр("ru = '1С:Библиотека стандартных подсистем'");
    ОписаниеВарианта.ИмяФайлаНастроекДляПриемника           = НСтр("ru = 'Настройки синхронизации для БСП (без использования правил)'");
    
    ЗаголовокКоманды = НСтр("ru = '1С:Библиотека стандартных подсистем (без использования правил обмена)'");
    ОписаниеВарианта.ЗаголовокКомандыДляСозданияНовогоОбменаДанными = ЗаголовокКоманды;
    
    // Отборы
    СтруктураТабличнойЧастиОрганизации = Новый Структура;
    СтруктураТабличнойЧастиОрганизации.Вставить("Организация", Новый Массив);
    
    ОписаниеВарианта.Отборы.Вставить("ДатаНачалаВыгрузкиДокументов",    НачалоГода(ТекущаяДатаСеанса()));
    ОписаниеВарианта.Отборы.Вставить("Организации",                     СтруктураТабличнойЧастиОрганизации);
    ОписаниеВарианта.Отборы.Вставить("ИспользоватьОтборПоОрганизациям", Ложь);
    
КонецПроцедуры
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
    
    Результат = Новый Массив;
    Результат.Добавить("РегистрироватьИзменения");
    Возврат Результат;
    
КонецФункции
   lg2marvel
 
5 - 24.06.19 - 16:51
(3) не хотелось бы затирать значения которые уже записаны в приемнике
   Beduin
 
6 - 24.06.19 - 16:53
(5) Он тебе про то, чтобы в xml оставить только реквизиты из приемника
   Йохохо
 
7 - 24.06.19 - 16:53
(6) а он про двусторонний обмен)
   unbred
 
8 - 24.06.19 - 16:57
(2) используй
   bolobol
 
9 - 24.06.19 - 16:57
Я делал при такой ошибке - выгрузку элемента из базы приёмника в тот же формат и сравнивал теги - отсутствующие добавлял, лишние удалял. Дописывал стандартный обмен между идентичными
   lg2marvel
 
10 - 24.06.19 - 16:57
(7) устраивает и односторонний обмен
   bolobol
 
11 - 24.06.19 - 17:00
В версионировании на хранилище значений - есть код при сравнении с прошлой версией, когда конфигурация не совпадает - по-тег-овое чтение/сравнение
   lg2marvel
 
12 - 24.06.19 - 17:01
(9) это хорошо когда один раз сделал синхронизацию и забыл, но нужно синхронизировать ежедневно
   lg2marvel
 
13 - 24.06.19 - 17:03
попробую с использованием правил конвертации
   bolobol
 
14 - 24.06.19 - 17:05
(12) Всё что требует ежедневности - разрабатывается, тестируется, внедряется, запускается и забывается
   bolobol
 
15 - 24.06.19 - 17:06
Я к тому, что - сделайте ежедневную и забудьте.
   lg2marvel
 
16 - 24.06.19 - 17:12
(11) не подскажите где конкретней можно найти этот код?
   bolobol
 
17 - 24.06.19 - 17:16
На платформе без встроенного версионирования, например в БУх3, в конфигураторе "пауза" и вывести отчёт об изменении объекта. Код будет очень рядом.
   Rema Dan
 
18 - 24.06.19 - 17:24
(0) Для корректной сериализации обратно требуется, чтобы полностью совпадали реквизиты передаваемых элементов. Как состав реквизитов, так и порядок реквизитов.
Не проверял, но вроде как при ручной сериализации через "Новый СериализаторXDTO(ФабрикаXDTO)" таких требований нет. Можно попробовать отправку/получение через СериализаторXDTO.ЗаписатьXML(..) и СериализаторXDTO.ПрочитатьXML(..).
   lg2marvel
 
19 - 24.06.19 - 17:29
(17) спасибо, посмотрю
(18) спасибо, буду иметь в виду

Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.