HelpF.pro

Удаление элемента справочника

Внимание!!! Непосредственное удаление справочника ведет к нарушению целостности данных. Например если удалить Контрагента по которому были сделаны документы, то в этих документах будет пустая ссылка.
Поэтому - лучше на удаляемые объекты ставить пометку на удаление, а непосредственное удаление делать встроенной функцией:
в 1С 7.7 или 8.1 - Меню-Операции - Удаление помеченных объектов.
в 1С 8.2 - Меню - Все функции... - Стандартные - Удаление помеченных объектов.
Код 1C v 8.2 УП
 &НаКлиенте
Процедура ПоКнопкеУдалитьКонтрагента(Команда)

Режим = РежимДиалогаВопрос.ДаНетОтмена;
Ответ = Вопрос("Удалить непосредственно? Да - удалить, Нет - пометка удаления",Режим, 0);

Если Ответ = КодВозвратаДиалога.Да Тогда
УдалитьКонтрагента(Элементы.СписокКонтрагентов.ТекущаяСтрока, Ложь);
ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда
УдалитьКонтрагента(Элементы.СписокКонтрагентов.ТекущаяСтрока, Истина);
КонецЕсли;

КонецПроцедуры

&НаСервере
Процедура УдалитьКонтрагента(УдаляемыйКонтрагент, ПометкаНаУдаление)

Если ПометкаНаУдаление = Истина Тогда
УдаляемыйКонтрагент.ПолучитьОбъект().УстановитьПометкуУдаления(Истина, Истина);
Иначе
УдаляемыйКонтрагент.ПолучитьОбъект().Удалить();
КонецЕсли;

КонецПроцедуры



Код 1C v 8.х
 СпрСотр = Справочники.Сотрудники;
СпрСотр.Удалить(); //непосредственное удаление

СпрСотр.УстановитьПометкуУдаления (Истина); //пометка на удаление
СпрСотр.УстановитьПометкуУдаления (Ложь); //снять пометку на удаление

//можно проверить, помечен ли элемент на удаление
//есть свойство ПометкаУдаления, оно имеет тип Булево - Истина или Ложь
Пометка = СпрСотр.ПометкаУдаления; //обратите внимание: это свойство
Если Пометка = Истина Тогда
.....//элемент помечен на удаление
КонецЕсли;


Код 1C v 7.x
  спр=СоздатьОбъект("Справочник.Материалы");
// далее необходимо найти элемент и
// Удалить элемент справочника, на который установлена переменная спр, можно так:
спр.Удалить(1); //собственно удаление элемента

// Установить пометку на удаление элемента справочника можно так:
спр.Удалить(0); //пометка элемента на удаление
// впоследствии можно снять установленную пометку удаления
спр.СнятьПометкуУдаления();

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq8/view/302.html