Имя: Пароль:
1C
1С v8
Непосредственное удаление объекта при обмене
0 Антиквар
 
13.04.12
11:38
Всем привет!
Непосредственно удаляю элемент справочника в базе-источнике. В базе-приемнике в процедуре ПередУдалением() ставлю Отказ, если это "НЕ ОбменДанными.Загрузка"
Т.е. мне нужно, чтобы в базе-приемнике невозможно было удалить объект даже программно, только через обмен.
Но почему-то в процедуре ПередУдалением() всегда
ОбменДанными.Загрузка = Ложь, хотя непосредственное удаление пришло сюда с обменом.
Я что-то не учел, или так и должно быть? Удаление, пришедшее с обменом не хранит в себе признак загрузки при обмене?
Как тогда можно определить источник, откуда удаляем объект? С обменом это пришло или нет.
1 Антиквар
 
13.04.12
12:27
может тут нужно как-то через "УдалениеОбъекта" действовать?
не пойму как
2 Лефмихалыч
 
13.04.12
12:29
(1) именно через удалениеОбъекта и нужно. Признак ОбменДанными.Загрузка в базе не хранится и с обменом не приходит
3 Антиквар
 
13.04.12
12:44
(2) Но ведь в процедурах ПриЗаписи(), ПередЗаписью() признак "ОбменДанными.Загрузка" есть. Он автоматически ставится, когда обмен идет. А здесь непонятно, почему признак отсутствует ?

>> именно через удалениеОбъекта и нужно

а как, не подскажете?
Я могу через УдалениеОбъекта удалить по ссылке. Но как определить, что это удаление пришло с обменом? Ведь иначе мне нужно сделать Отказ=Истина
4 Агент Инфостарта
 
13.04.12
13:27
(3) Через штатные дополнительные свойства объекта, не?
5 Антиквар
 
13.04.12
13:39
(4) а что за дополнительные свойства объекта?
ЭтотОбъект.ОбменДанными.Загрузка показывает Ложь, и мне это непонятно.
А какие ещё свойства могут свидетельствовать о загрузке по обмену?
6 Антиквар
 
13.04.12
16:17
Нашел причину:
в обработке ОбменДаннымиXML почему-то при физическом удалении не ставится ОбменДанными.Загрузка = Истина
Причем эта строка заремлена. Почему 1С от этого отказалась непонятно, но я разремил, и у меня заработало.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн