Удаление обьектов

  • Автор темы Mashino4ka
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

Mashino4ka

#1
Скажите пожалуйста мне необходимо удалить номенклатурные позиции помеченные на удаление,но некоторые из них учавствовали в различных доках, как их можно удалить если через удаление помеченных обьектов уже никак??
 

vbs

Well-known member
18.02.2007
1 708
1
#2
Удалить-то их физически не проблема, но в тех документах, где они присутствовали, будут дыры (<Объект не найден>). Если этот вариант тебя не смущает - пиши обработку на удаление
 
M

Mashino4ka

#3
Нет не смущает, если не сложно и есть стандартная обработка, то не могли бы написать??
 

vbs

Well-known member
18.02.2007
1 708
1
#4
В цикле проходишь справочник, и если есть пометка на удаление, пишешь, удалить(1), вот и все
 
M

Mashino4ka

#5
В цикле проходишь справочник...а если можно поподробнее..я только начинаю!
 

vbs

Well-known member
18.02.2007
1 708
1
#6
// RefC - тип справочника
Ref = CreateObject("Reference."+RefC);
Ref.SelectItems();
i = 1;
While Ref.GetItem() = 1 do
if Ref.DeleteMark() = 1 then
Ref.Delete(1);
endif;
Status("Обработано "+i+" строк");
i = i + 1;
enddo;
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#7
Удалить-то их физически не проблема, но в тех документах, где они присутствовали, будут дыры (<Объект не найден>).
И этого тоже можно избежать, записав напрямую в базу ссылку на служебный элемент справочника. Например, "Товар удален".
Заодно и итоги по регистрам уменьшатся.
 
M

Mashino4ka

#8
Каким образом это проделать??очень нужно!
 

vbs

Well-known member
18.02.2007
1 708
1
#9
создаешь служебный элемент, потом перед удалением товара проверяешь, в каких документах он живет, и заменяешь на служебный

Еще точнее так :
Проверяешь в документах наличие товара, помеченного на удаление и заменяешь на служебный. Потом - удаление
 
Статус
Закрыто для дальнейших ответов.