|
v8: Блокировка изменения реквизитов при самостоятельном поиске объекта в ПоляПоиска. КД2
| ☑ |
0
simol
23.08.13
✎
11:51
|
Нашел интересную ситуацию в КД2.
Есть ПКО в котором
1. Установлен флаг "Не замещать существующие ...."
2. В одно из полей поиска (в моем случае Наименование) при сохранении пишется не истинное значение реквизита, а в ПКС в обработчике ПриВыгрузке нужное для меня значение
3. В обработчике ПКО ПоляПоиска по переданному значению из п.2 сделан нужный мне поиск объекта.
Проблема:
Все работает, но при этом в базе приемнике значение реквизита заменяется значением из п.2 не смотря на п.1
Решение: В ПКС нужно поставить галку "Не замещать значение свойства....". Хоть и кажется, что п.1 достаточно.
|
|
1
simol
23.08.13
✎
11:58
|
К сожалению выяснилось что проблема шире.
Это касается не только реквизитов поиска но и всех реквизитов.
То есть если вы в ПКО используете самостоятельный поиск объекта в ПоляПоиска, то несмотря на п.1 нужно во всех ПКС поставить "Не замещать значение свойства...."
|
|
2
Naumov
23.08.13
✎
12:05
|
Версия обработки обмена последняя? В старых релизах была ошибка, которую долго не признавали, но потом пофиксили.
|
|
3
simol
23.08.13
✎
12:19
|
(2) последняя на сегодня 2.1.8.1
|
|
4
Naumov
23.08.13
✎
12:21
|
тогда флаг "не заменять существующие" не может не срабатывать.
|
|
5
simol
23.08.13
✎
12:23
|
(4)тоже так думал, но факт опробован руками. И чтобы другие не наступили на эти грабли описал ситуацию и хочу продублировать в 1С
|
|
6
simol
23.08.13
✎
12:25
|
(4)При чтении свойства в коде смотрят атрибут "НеЗамещать" узла XML не у объекта в целом, а у свойства. Затем изменяют свойство, устанавливают флаг фальсифицированности, а потом уже все равно что у объекта установлено "НеЗамещать"
|
|
7
simol
23.08.13
✎
12:26
|
фальсифицированности=модифицированности объекта
|
|
8
Naumov
23.08.13
✎
12:29
|
Ну можно дополнительно в обработчиках событий проверить на записанность объекта и отказаться, если он уже существует.
В событии При загрузке или после загрузки, например.
|
|