Вопрос знатокам КД, ПКС ПометкаУдаления #638492


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

В этой группе 1С