Имя: Пароль:
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
всем спасибо, разобрался. в обработке удаления проведения переключал руками пометку удаления. просто забыл про этот код так как обработку удаления проведения делал раньше чем обработку пометки удаления.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.