Есть ПКО в котором
1. Установлен флаг "Не замещать существующие ...."
2. В одно из полей поиска (в моем случае Наименование) при сохранении пишется не истинное значение реквизита, а в ПКС в обработчике ПриВыгрузке нужное для меня значение
3. В обработчике ПКО ПоляПоиска по переданному значению из п.2 сделан нужный мне поиск объекта.
Проблема:
Все работает, но при этом в базе приемнике значение реквизита заменяется значением из п.2 не смотря на п.1
Решение: В ПКС нужно поставить галку "Не замещать значение свойства....". Хоть и кажется, что п.1 достаточно.
К сожалению выяснилось что проблема шире.
Это касается не только реквизитов поиска но и всех реквизитов.
То есть если вы в ПКО используете самостоятельный поиск объекта в ПоляПоиска, то несмотря на п.1 нужно во всех ПКС поставить "Не замещать значение свойства...."
(4)При чтении свойства в коде смотрят атрибут "НеЗамещать" узла XML не у объекта в целом, а у свойства. Затем изменяют свойство, устанавливают флаг фальсифицированности, а потом уже все равно что у объекта установлено "НеЗамещать"
Ну можно дополнительно в обработчиках событий проверить на записанность объекта и отказаться, если он уже существует.
В событии При загрузке или после загрузки, например.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой