|
КД2: не записывать значение свойства? |
☑ |
0
mikecool
14.08.19
✎
11:48
|
Как не изменять свойство объекта, если в приемнике оно заполнено, а с обменом приходит "пусто"?
|
|
1
gSha
14.08.19
✎
11:51
|
а свойство объекта это что ?
если реквизит , то там есть общее правило не обновлять объект если найден
ну а сели речь именно на реквизиты, то наверное добро пожаловать в события при загрузке и проверки условий на стороне .. думаю там можно легко дать отказ на запись по услови.
|
|
2
mikecool
14.08.19
✎
11:52
|
(1) разве у свойства объекта есть событие ПриЗагрузке?
|
|
3
mikecool
14.08.19
✎
11:53
|
+2 а, дошло
|
|
4
mikecool
14.08.19
✎
11:54
|
и все равно не пойму, как не замещать одно из свойств
|
|
5
mikecool
14.08.19
✎
11:55
|
проще действительно не замещать существующие объекты, чем полностью переопределять заполнение из-за одного реквизита )
|
|
6
gSha
14.08.19
✎
11:59
|
вот какая то ссылка по теме ..
|
|
7
Йохохо
14.08.19
✎
12:11
|
сравнить значение через точку и объект в послезагрузки?
|
|
8
hhhh
14.08.19
✎
12:14
|
(4) как-то так
Если НЕ ЗначениеЗаполнено(Объект.Реквизит1) Тогда
Объект.Реквизит1 = Объект.Ссылка.Реквизит1;
КонецЕсли;
|
|
9
Ёпрст
гуру
14.08.19
✎
12:15
|
(0) там есть галочки, как для объекта, так и для его свойств.
Ничего кодить не надо
|
|
10
Ёпрст
гуру
14.08.19
✎
12:17
|
в ПКС в настройке галка : Не замещать значение свойства у существующих объектов в приёмнике
|
|
11
Ёпрст
гуру
14.08.19
✎
12:17
|
усё
|
|
12
hhhh
14.08.19
✎
12:20
|
(10) у него не просто не замещать, а не замещать, если не заполнено. Таких галок там нет.
|
|
13
Йохохо
14.08.19
✎
12:20
|
(10) это же не то, надо "не очищать"
|
|
14
bort501
27.09.19
✎
00:14
|
Как автор сей ссылки () попробую ответить. Поздновато, но может кому-то пригодится.
Я бы использовал обработчик ПослеЗагрузки.
Код будет примерно таким (за отсутствие ошибок не ручаюсь, главное - принцип):
Если ОбъектНайден Тогда
Если ЗначениеЗаполнено(Ссылка.НашРеквизит) И НЕ ЗначениеЗаполнено(Объект.НашРеквизит) Тогда
Объект.НашРеквизит = Ссылка.НашРеквизит;
КонецЕсли;
КонецЕсли;
То есть, если в базе-приемнике уже есть этот объект, то он помещается в переменную Ссылка. А в переменной Объект - то, что пришло с обменом, но еще не записано в базу. И на данном этапе мы можем подменить пришедшее значение реквизита значением из существующего объекта. Ну и потом все равно записать объект, но уже со старым значением реквизита.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший