Имя: Пароль:
1C
1С v8
Конвертация данных. Синхронизация договоров
0 Босечка
 
24.08.16
11:19
Пытаюсь синхронизировать договора по полям поиска Владелец и ВидДоговора. Все получается, все находит, но почему-то когда находит, затирает наименование найденного договора. Галка "Не замещать существующие объекты при загрузке и т.д......" включена. В чем дело?
1 Босечка
 
24.08.16
11:29
ап....
2 Босечка
 
24.08.16
12:02
Неужели никто не знает?
3 azt-yur
 
24.08.16
12:12
Этого "Галка "Не замещать существующие объекты при загрузке и т.д......" включена" должно быть достаточно.
Возможно у вас какие-то еще обработчики в ПКО прописаны.
Загружаете Универсальным обменом XML? Может в ней ошибка. Попробуйте поискать другую версию
4 Босечка
 
24.08.16
12:33
Вот ПКО после загрузки:

Орг=Справочники.Организации.НайтиПоРеквизиту("ИНН","5261085375",,);
Объект.Организация=Орг;
Вал=Справочники.Валюты.НайтиПоНаименованию("руб.",истина,,);
Объект.ВалютаВзаиморасчетов=Вал;

Загружаю Универсальным обменом XML. от 10.10.2013
5 hhhh
 
24.08.16
12:36
(0) наименование входит в поля поиска?
6 Босечка
 
24.08.16
12:48
Нет. не входит.
7 hhhh
 
24.08.16
12:55
(6) тогда вот это

Галка "Не замещать существующие объекты при загрузке и т.д......" включена

зачем вы написали?
8 Босечка
 
24.08.16
13:11
Написала затем, что несмотря на эту галку все равно затирает. Эта галка означает, что замещать объекты не будет.
9 Cyberhawk
 
24.08.16
13:16
Скинь мне правила в почту
10 hhhh
 
24.08.16
13:16
(8) эта галка означает, что затирать поля поиска не будет
11 Cyberhawk
 
24.08.16
13:17
(10) Ошибаешься
12 hhhh
 
24.08.16
13:17
(10) + А так как наименование у вас это не поле поиска, то его затрет обязательно, даже не сомневайтесь.
13 azt-yur
 
24.08.16
13:21
(4) в других обработчиках ничего не прописано? Также посмотрите в обработчике самой конвертации.
14 azt-yur
 
24.08.16
13:24
(12) Вы не правы. Из СП:
НеЗамещатьОбъектПриЗагрузке - Булево. По умолчанию  - определяется в правилах обмена, но может быть изменено. Если для данного параметра установить значение Истина, то объект идентифицированный при загрузке (т.е. найденный в информационной базе приемнике по значению синхронизирующих полей) не будет изменен/замещен.
15 hhhh
 
24.08.16
13:24
(11) да, перепутал галку
16 Босечка
 
24.08.16
13:28
(9) Скинула.
17 Cyberhawk
 
24.08.16
13:35
(15) А с какой галкой ты перепутал? Вроде нет отдельной галки, которая не трогала бы поля поиска - есть просто галка в любом ПКС "Не замещать значение _свойства_ у _существующих_ объектов в приемнике" - и она должна действовать на ПКС, которые являются полями поиска, равно как и на ПКС, которые полями поиска не являются...
18 Cyberhawk
 
24.08.16
13:38
(16) У тебя выгрузка только документов идет. При выгрузке какого вида документов твои договора "обновляются" (наименование становится новым)?
19 Cyberhawk
 
24.08.16
13:42
Посмотрел правила. Ничего криминального нет. В обработке загрузки отключи галочку "Оптимизированная запись объектов" и проверь еще раз. Если не поможет - советую отладить загрузку.
20 Босечка
 
24.08.16
13:45
(18) Да "обновляютя". А мне этого не надо.
21 azt-yur
 
24.08.16
13:46
нашел на партнерском форуме https://partners.v8.1c.ru/forum/message/1398442#m_1398442
Возможно ситуация ТС:

Конвертация данных 2.1.7.1.

Некорректно работает флажок "Не замещать существующие объекты...".

Некорректная работа флажка заключается в следующем: Если объект найден по полям поиска, и при этом определен обработчик "Поля поиска" (даже если код закомментирован полностью), то все свойства найденного объекта заменяются. При этом также игнорируется флажок "Не замещать значения свойств объекта" у ПКС.

Если же объект найден по GUID, или же по полям поиска, но при этом обработчик "Поля поиска" девственно чист, все ОК.
Ситуацию можно поправить кодом в обработчике "После загрузки":

Отказ = Не Объект.ЭтоНовый();
22 Босечка
 
24.08.16
13:49
Спасибо, попробую.
23 Босечка
 
24.08.16
13:55
(21)Ура! Все сработало!!!!! БОЛЬШОЕ СПАСИБО!!!!!
24 azt-yur
 
24.08.16
14:02
(23) пожалуйста )
А ошибка между прочем на форуме висит с 2013 года.
Еще один предложенный на форуме вариант решения с доработкой обработки Универсальный обмен:

Ошибка сохраняется и в версии 2.1.8.2.

А всего лишь нужно в строке 6220 добавить код:

Если НЕ НеНужноВыполнятьПоиск Тогда
  
// сам поиск непосредственно
СсылкаНаОбъект = НайтиЭлементПоСвойствамПоиска(ТипОбъекта, ИмяТипаОбъекта, СвойстваПоиска, СтруктураСвойств,
  СтрокаИменСвойствПоиска, ПоискПоДатеНаРавенство);
    
НеНужноВыполнятьПоиск = ЗначениеЗаполнено(СсылкаНаОбъект);

// Нужно добавить строку:
ОбъектНайден = ЗначениеЗаполнено(СсылкаНаОбъект);
25 Cyberhawk
 
24.08.16
14:10
Фигасебе, так и не исправили ребятки. Хозяйке на заметку!
26 Босечка
 
24.08.16
14:17
Спасибо! Буду знать.
AdBlock убивает бесплатный контент. 1Сергей