Имя: Пароль:
1C
 
КД 2.1. Не замещать существующие объекты - не отрабатывает. Почему?
0 PCcomCat
 
15.11.16
16:04
Доброго времени, уважаемые!

Из справки КД:

"Не замещать существующие объекты в приемнике при загрузке, а только создавать новые и заполнять их * - флаг определяет нужно ли выполнять изменение реквизитов объекта в информационной базе приемнике, если объект был успешно найден по уникальному идентификатору или по полям поиска.

*   Не рекомендуется для использования при настройке on-line обмена"


Настройками никак нельзя запретить?
Нужно прописывать вручную ПослеЗагрузки Отказ = Истина?
1 PCcomCat
 
15.11.16
16:25
Прописываю у Справочника
ПриЗагрузке:
Если ОбъектНайден тогда
    НеЗамещатьОбъект = Истина;
КонецЕсли;

ПослеЗагрузки:
Если ОбъектНайден тогда
    Отказ = Истина;
КонецЕсли;    

Всё-равно элемент перезаписывается при обмене по плану обмена.
В глобальных обработчиках нет записи элементов и нет установки этих значений.

Что не так???
2 PCcomCat
 
18.11.16
10:22
Неожиданно...
После отладки выяснилось, что каждый раз не находит объект.
В свойствах стояло искать по внутреннему идентификатору и продолжить поиск по полям поиска.
Элемент справочника замещался, но по отладке этот объект не найден почему-то...
Фиг с ним, что УникальныйИдентификатор не записывался (опять же почему?), так и по полям поиска ОбъектНайден = Ложь, но при этом объект замещает!

Снимаю флаг поиска по внутреннему идентификатору, и ... О чудо! Поля поиска отрабатывают, все возведенные флажки по запрету замены действуют.

Я не допонимаю, в чем же тайна?
3 azt-yur
 
18.11.16
10:32
(0) посмотри темку Конвертация данных. Синхронизация договоров
похоже на твою тему
4 PCcomCat
 
18.11.16
10:35
Ок, спасибо. Почитаю...
5 PCcomCat
 
18.11.16
10:38
Оно:

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

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

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

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

Отказ = Не Объект.ЭтоНовый();
6 PCcomCat
 
18.11.16
10:39
+(5) Только у меня обработчик "Поля поиска" девственно чист!!!!
7 PCcomCat
 
18.11.16
10:41
+(5) А версия конвертации та же...

А я то думаю, сколько лет нормально всё было, а тут то одно, то другое. Уж думала, что сноровку потеряла...

Надо на другую версию уходить...
8 azt-yur
 
18.11.16
10:45
(7) да там и в последнем релизе ошибку не исправили
Так что либо помнить и предохраняться либо можно доработать обработку универсального обмена
9 PCcomCat
 
18.11.16
10:48
(8) Спасибо за информацию!!!