|
Вопрос знатокам КД, ПКС ПометкаУдаления | ☑ | ||
---|---|---|---|---|
0
ProDeveloper
09.11.12
✎
11:23
|
Вопрос такой - есть правила обмена, писались на КД 2.1.6.4, есть ПКО Контрагенты, никаких обработчиков на ПКО не висит, в ПКС есть ПометкаУдаления в свойствах ПКС стоит птица "Не замещать значения свойства у существующих объектов в приемнике", поведение обмена меня удивило:
1 вариант - В источнике Контрагент помечен на удаление, в приемнике не помечен на удаление, обмен отработал как надо, необходимые реквизиты в приемнике записались, пометка удаления была не тронута. 2 вариант (более интересный) - В источнике Контрагент не помечен на удаление, в приемнике помечен на удаление, после обмена, необходимые реквизиты в приемнике записались, но пометка на удаление почему то в приемнике была снята. Игрался птицей "Объекты, выгруженные по ссылке, загружать без пометки удаления" на странице загрузки в обработке V8Exchan - Универсальный обмен данными в формате XML 2.1.6 не помогло, попытки сделать через обработчик "ПослеЗагрузки" в ПКО Контрагенты также не увенчались успехом.
Возникает ошибка - "Ошибка при вызове метода контекста (УстановитьПометкуУдаления): Операция не может быть выполнена, так как данные объекта модифицированы!" Кто-нибудь сталкивался с такой проблемой? |
|||
1
ProDeveloper
09.11.12
✎
11:33
|
up
|
|||
2
Йохохо
09.11.12
✎
11:33
|
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
УстановитьПометкуУдаления (SetDeletionMark) Синтаксис: УстановитьПометкуУдаления(<ПометкаУдаления>) Параметры: <ПометкаУдаления> (обязательный) Тип: Булево. Признак установки / снятие пометки на удаление. Истина - пометка будет установлена; Ложь - пометка будет снята. Описание: Устанавливает/снимет пометку на удаление документа. Документ при этом не удаляется из базы данных. Окончательное удаление помеченных документов происходит при удалении помеченных объектов. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Применение метода влечет инициирование события ПередЗаписью, т.к. происходит сохранение измененного свойства ПометкаУдаления. Если документ проведен, применение метода приводит к отмене проведения. Если объект модифицирован, то выполнение метода вызывает исключение. |
|||
3
ProDeveloper
09.11.12
✎
11:36
|
(2) норм копипаст из СП, молодец)
|
|||
4
mikecool
09.11.12
✎
11:38
|
"Возникает ошибка - "Ошибка при вызове метода контекста (УстановитьПометкуУдаления): Операция не может быть выполнена, так как данные объекта модифицированы!" " - попробуй Записать() перед установкой пометки
|
|||
5
ProDeveloper
09.11.12
✎
11:39
|
Кто нить разбирался с странным поведением птицы в свойствах ПКС "Не замещать значения свойства у существующих объектов в приемнике", и почему в варианте №1 она отрабатывает как надо, а в варианте № 2 такое странное поведение.
|
|||
6
Йохохо
09.11.12
✎
11:44
|
(5) потому, что у 1с трепетное отношение к этому булеану
|
|||
7
ProDeveloper
09.11.12
✎
11:44
|
(4) Я в курсе) Потому что объект модифицирован, если перед программной установкой пометки удаления в обработчике "ПослеЗаписи" попробовать модифицированный Объект.Записать(), потом установить пометку удаления из ссылки, то ошибок не возникает, но и результат все тот же, снимается пометка)
|
|||
8
ProDeveloper
09.11.12
✎
11:46
|
Пробовал так же в обработчиках ПКС ПометкаУдаления играться с НеЗамещать = Истина; (эквивалент птицы "Не замещать значения свойства у существующих объектов в приемнике") Тоже толку 0
|
|||
9
ProDeveloper
09.11.12
✎
11:53
|
Сперва я думал что просто птица не работает, может релиз КД 2.1.6.4 глюкавый, стал проверять. В варианте № 1 все работает должным образом, что подтверждает работоспособность птицы "Не замещать значения свойства у существующих объектов в приемнике" в свойствах ПКС, и действительно в источнике объект помечен на удаление в приемнике после обмена записались необходимые реквизиты и пометка удаления при этом осталась не тронутой, в приемнике Контрагент не помечен на удаление.
Почему в варианте №2 он её трогает не пойму. |
|||
10
ProDeveloper
09.11.12
✎
12:05
|
Выжимка из XML выгруженная по данным правилам.
Из xml отчетливо видно
почему происходит замещение в варианте № 2, а в варианте № 1 все нормально, для меня загадка. |
|||
11
Йохохо
09.11.12
✎
12:14
|
не приходила мысль, что дело не в кд?
|
|||
12
ProDeveloper
09.11.12
✎
12:14
|
Вылечить удалось в обработчике "ПослеЗаписи" ПКО Контрагенты
Но поведение птицы в свойствах ПКС "Не замещать значения свойства у существующих объектов в приемнике" недюже удивило. |
|||
13
Йохохо
09.11.12
✎
12:15
|
про это написано в (2) и (6)
|
|||
14
ProDeveloper
09.11.12
✎
12:16
|
(13) почему птица в ПКС работает как-то с переменным успехом?
|
|||
15
Йохохо
09.11.12
✎
12:16
|
(12) ну да, пятница же, добавь третью, контрольную запись
|
|||
16
Йохохо
09.11.12
✎
12:17
|
хотя третий раз за тебя кд запишет, оставь так
|
|||
17
ProDeveloper
09.11.12
✎
12:21
|
Ответ блин так и не найден, почему так себя ведет КД, ведь по идее никакого кода не надо - должно хватать птицы. И почему в варианте №1 птицы хватает а в №2 её не хватает.
|
|||
18
acsent
09.11.12
✎
12:23
|
Что ты в итоге хочешь?
|
|||
19
ProDeveloper
09.11.12
✎
12:36
|
(18) хотелось услышать вразумительный ответ почему не работает птица в варианте №2 и снимается пометка удаления
|
|||
20
Йохохо
09.11.12
✎
13:47
|
(19) а если в 0.2 так
Объект.ОбменДанными = Истина; Объект.Записать(...); ОбъектМодифицирован = Ложь; В форме записывать только измененные объекты = V это же ты прочитал? "Если объект модифицирован, то выполнение метода вызывает исключение." |
|||
21
ProDeveloper
09.11.12
✎
14:15
|
(20) уффф, ты можешь ответить почему в варианте № 2 без какого либо кода в обработчиках ПКО, когда стоит птица в ПКС у ПометкаУдаления - "Не замещать значения свойства у существующих объектов в приемнике" она все таки замещается
|
|||
22
ProDeveloper
09.11.12
✎
14:16
|
и те же самые правила обмена не замещают пометку удаления в варианте № 1
|
|||
23
Йохохо
09.11.12
✎
15:01
|
(21) не тестил, грешу на обработчики записи, т.к. запись изменений помеченного объекта
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |