Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Обмен XML: при обмене задваиваются предопределенные элементы... как побороть?

Обмен XML: при обмене задваиваются предопределенные элементы... как побороть?
Я
   dave2000
 
09.11.16 - 16:21
Есть обмен между мобильным приложением и центральной базой, используется стандартный механизм обмена через ЧтениеXML()/ЗаписьXML(). Структура данных справочников в обеих базах одинакова, как и должно быть. В одном из справочников есть предопределенные элементы, они тоже для идентичности добавлены в обе базы. Но теперь, когда данные справочника одной базы зарегистрировать в плане обмена, предопределенные элементы не накладываются друг на друга, а задваиваются (появляются такие же копии с кружочком в иконке). Что я неправильно делаю? Как побороть?
 
 
   Мойдодыр
 
1 - 09.11.16 - 16:22
не переноси предопределенные или назначь им одинаковый гуид
   kossmatiy
 
2 - 09.11.16 - 16:23
(0) поиск по гуид отключи
   dave2000
 
3 - 09.11.16 - 16:24
Думал в одной из баз предопределенные элементы удалить, чтобы они автоматом перенеслись из другой базы, но тогда везде перестаёт работать код, где используется прямое обращение к предопределенным элементам (в конфигураторе то они не заданы).
   dave2000
 
4 - 09.11.16 - 16:27
(2) Можно подробнее, как? Я не использую обработку "универсальный обмен данными", где есть эта галочка, я использую стандартные механизмы ЗаписьXML, а потом ЧтениеXML и затем запись объекта.
   Мойдодыр
 
5 - 09.11.16 - 16:28
удали, потом сразу зарегестрируй и переноси
   Fragster
 
6 - 09.11.16 - 16:28
(4) плохо :)
   Fragster
 
7 - 09.11.16 - 16:29
можно посмотреть, как сделано в "Выгрузка и загрузка данных XML.epf" с ИТС
   Мойдодыр
 
8 - 09.11.16 - 16:31
(7) Задвоит предеопределенные легко данная обработка
   EugeniaK
 
9 - 09.11.16 - 16:33
(8) Нет. Там специальная обработка предопределенных. Она их не задваивает.
   EugeniaK
 
10 - 09.11.16 - 16:34
(4) В тех, что задвоились, оставь вариант с одним и тем же гуидом в обеих базах. Второй элемент удали с заменой на новый.
 
 Рекламное место пустует
   kossmatiy
 
11 - 09.11.16 - 16:35
После переноса (задвоения) отвяжи признак предопределенности у ненужных эл-тов и не используй их более. Ну и ссылки с ними все замени на новые.
   kossmatiy
 
12 - 09.11.16 - 16:37
(9) Раньше кстати задваивала легко. Может что то изменилось теперь или я какую то галку прогледел?
   kossmatiy
 
13 - 09.11.16 - 16:39
(11) Конфа кстати не озвучена. В типовых сейчас есть обработка "Поиск и замена дублей". Прекрасно справляется с заменой в таких случаях.
   dave2000
 
14 - 09.11.16 - 16:48
(7) (9) (12)
В модуле обработки есть процедурки
- ВыгрузитьТаблицуПредопределенных(ЗаписьXML)
- ЗагрузитьТаблицуПредопределенных(ЧтениеXML)

используются в процедурах ВыполнитьВыгрузку() и ВыполнитьЗагрузку(). Сейчас поковыряю, может это оно. 

(13) Обе конфы самописные.
   dave2000
 
15 - 09.11.16 - 17:19
Нашел правильное решение! Внизу статьи: http://its.1c.ua/db/metod8dev#content:5367:hdoc

В базе-получателе для справочника нужно установить свойство "Обновление предопределенных данных" = "Не обновлять автоматически" (вместо "Авто"), тогда элементы справочника не будут создаваться сразу. А уже при загрузке данных из источника предопределенные элементы создадутся с ГУИДами базы источника и в дальнейшем будут нормально накладываться.

А метод (14) тоже правильный, но он скорее подходит для независимых баз, где не хотелось бы изменять метаданные.

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