Имя: Пароль:
1C
 
пометка на удаление справочника при пометке документа
0 falselight
 
28.09.16
06:43
Нужно находить и помечать на удаление
элемент справочника, при пометке на удаление документа.
В какой процедуре это правильно сделать?
Я сделал вот так, так как не нащел другой процедуры:

Процедура СписокПередУстановкойПометкиУдаления(Элемент, Отказ)
    ЭлементСпр = Справочники.А_ИерархияЗаказов.НайтиПоНаименованию(СокрЛП(Элемент.ТекущаяСтрока.Номер),Истина);
    Если ЭлементСпр <> Справочники.А_ИерархияЗаказов.ПустаяСсылка() Тогда
        ЭлементСпр.ПолучитьОбъект().ПометкаУдаления=Истина;
    КонецЕсли;
КонецПроцедуры
1 falselight
 
28.09.16
06:48
(0+) но это как то криво, и срабатывает когда ещё не установили непосредственно пометку на удаление
2 Лиза777
 
28.09.16
07:07
Так а почему ты в процедуру "перед пометкой" пишешь? Сделай после пометки
3 falselight
 
28.09.16
07:07
точнее так

Процедура СписокПередУстановкойПометкиУдаления(Элемент, Отказ)
    ЭлементСпр = Справочники.А_ИерархияЗаказов.НайтиПоНаименованию(СокрЛП(Элемент.ТекущаяСтрока.Номер),Истина);
    Если ЭлементСпр <> Справочники.А_ИерархияЗаказов.ПустаяСсылка() Тогда
        ЭлементСпр.ПолучитьОбъект().УстановитьПометкуУдаления(Истина);
    КонецЕсли;
КонецПроцедуры
4 falselight
 
28.09.16
07:07
(2) а где такая процедура?
дело в том что я не увидел других процедур
5 Рэйв
 
28.09.16
07:10
В модуле документа в ПередЗаписью()

Если ПометкаУдаления Тогда
   //---тут помечай элемент спр
Иначе
   //тут снимай пометку  элемента
КонецЕсли;

правда нафига это надо - непонятно
6 Лиза777
 
28.09.16
07:11
лучше в ПриЗаписи(). И проверять тут если стоит пометка на удаление, то и свою процедуру сюда пихай
7 falselight
 
28.09.16
07:15
(5)(6) а это будет срабатывать когда ставится пометка на удаление или снимается?
Это же будет при записи документа выполняться!
8 Лиза777
 
28.09.16
07:16
(7) когда сняли или поставили пометку на удаление происходит запись документа (чтобы зафиксировать тот факт, что он помечен на удаление).
9 falselight
 
28.09.16
07:16
(7) а ну да в ПриЗаписи, срабатывает когда ставишь пометку на удаление
10 falselight
 
28.09.16
07:16
(8) ясно
11 Рэйв
 
28.09.16
07:16
(7)Это будет срабатывать при любой записи документа.как считаешь , установка пометки записывает документ?
12 falselight
 
28.09.16
07:23
А если документ будут перезаписывать? Постоянно будет это срабатывать.
13 falselight
 
28.09.16
07:26
так сделал в процедуре ПриЗаписи

    Если ПометкаУдаления Тогда
        ЭлементСпр = Справочники.А_ИерархияЗаказов.НайтиПоНаименованию(СокрЛП(Номер),Истина);
        Если ЭлементСпр <> Справочники.А_ИерархияЗаказов.ПустаяСсылка() Тогда
            ЭлементСпр.ПолучитьОбъект().УстановитьПометкуУдаления(Истина);
        КонецЕсли;
    Иначе
        ЭлементСпр = Справочники.А_ИерархияЗаказов.НайтиПоНаименованию(СокрЛП(Номер),Истина);
        Если ЭлементСпр <> Справочники.А_ИерархияЗаказов.ПустаяСсылка() Тогда
            ЭлементСпр.ПолучитьОбъект().УстановитьПометкуУдаления(Ложь);
        КонецЕсли;
    КонецЕсли;
14 CMblCL
 
28.09.16
07:50
(13) Вам, что, за строчки кода доплачивают?

ЭлементСпр = Справочники.А_ИерархияЗаказов.НайтиПоНаименованию(СокрЛП(Номер),Истина);
Если ЭлементСпр <> Справочники.А_ИерархияЗаказов.ПустаяСсылка() Тогда
      ЭлементСпр.ПолучитьОбъект().УстановитьПометкуУдаления(ПометкаУдаления);
КонецЕсли;
15 Serg_1960
 
28.09.16
09:13
Вообще-то, перед пометкой на удаление, неплохо бы проверить отметку - может быть объект уже помечен на удаление.

PS: Элемент.ТекущаяСтрока.Номер - это попахивает бредом. "Номер" - это номер строки, он не может быть полем для связи - любая сортировка списка и всё, "алес, капут".