Имя: Пароль:
1C
1С v8
Подписка на событие при пометке удаления документа
0 Oz11
 
20.06.12
10:52
приветствую. есть задача по сопряжению документов (в одну сторону). при действиях с одним документом (проведение, отмена проведения, пометка удаления, снятие пометки) со спаренным документом должно происходить то же самое. при проведении / отмене проведения все красиво. при пометке удаления / снятии пометки что-то туговато. туговато если происходит установка пометки удаления на проведенный документ. на сопряженном документе происходит ошибка мол нельзя пометить проведенный документ. делаю так:

   Результат = НайтиДокументыОприходованияТоваров(Источник.Ссылка);
   Если НЕ Результат.Пустой() Тогда
       Выборка = Результат.Выбрать();
       Пока Выборка.Следующий() Цикл
           Объект = Выборка.Ссылка.ПолучитьОбъект();
           Если Источник.ПометкаУдаления И Источник.Проведен Тогда
               // возможно пытаются пометить на удаление проведенный документ, в таком случае нужно его сначала распровести
               Попытка
                   Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
               Исключение
                   Сообщить(ОписаниеОшибки());
               КонецПопытки;
           КонецЕсли;
           Объект.ПометкаУдаления = Источник.ПометкаУдаления;
           Попытка
               Объект.Записать(РежимЗаписиДокумента.Запись);
               Сообщить("Документ "+Объект+" был перезаписан.");
           Исключение
               Сообщить(ОписаниеОшибки());
           КонецПопытки;
       КонецЦикла;
   КонецЕсли;
ошибки нет, но сопряженный документ не помечен на удаление, а просто распроведен. что я делаю не так?
1 Maxus43
 
20.06.12
10:59
Если Источник.ПометкаУдаления И Источник.Проведен Тогда

это реально вобще?
2 Avalone2010
 
20.06.12
11:02
Используй
ДокументОбъект.<Имя документа>.УстановитьПометкуУдаления
3 Oz11
 
20.06.12
11:17
(1) такое можно увидеть в обработке перед записью когда проведенный документ помечают на удаление.
4 Oz11
 
20.06.12
11:19
всем спасибо, разобрался. в обработке удаления проведения переключал руками пометку удаления. просто забыл про этот код так как обработку удаления проведения делал раньше чем обработку пометки удаления.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн