Внимание!!! Непосредственное удаление справочника ведет к нарушению целостности данных. Например если удалить Контрагента по которому были сделаны документы, то в этих документах будет пустая ссылка.
Поэтому — лучше на удаляемые объекты ставить пометку на удаление, а непосредственное удаление делать встроенной функцией:
в 1С 7.7 или 8.1 — Меню-Операции — Удаление помеченных объектов.
в 1С 8.2 — Меню — Все функции… — Стандартные — Удаление помеченных объектов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
&НаКлиенте Процедура ПоКнопкеУдалитьКонтрагента(Команда) Режим = РежимДиалогаВопрос.ДаНетОтмена; Ответ = Вопрос("Удалить непосредственно? Да - удалить, Нет - пометка удаления",Режим, 0); Если Ответ = КодВозвратаДиалога.Да Тогда УдалитьКонтрагента(Элементы.СписокКонтрагентов.ТекущаяСтрока, Ложь); ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда УдалитьКонтрагента(Элементы.СписокКонтрагентов.ТекущаяСтрока, Истина); КонецЕсли; КонецПроцедуры &НаСервере Процедура УдалитьКонтрагента(УдаляемыйКонтрагент, ПометкаНаУдаление) Если ПометкаНаУдаление = Истина Тогда УдаляемыйКонтрагент.ПолучитьОбъект().УстановитьПометкуУдаления(Истина, Истина); Иначе УдаляемыйКонтрагент.ПолучитьОбъект().Удалить(); КонецЕсли; КонецПроцедуры |
1 2 3 4 5 6 7 8 9 10 11 12 |
СпрСотр = Справочники.Сотрудники; СпрСотр.Удалить(); //непосредственное удаление СпрСотр.УстановитьПометкуУдаления (Истина); //пометка на удаление СпрСотр.УстановитьПометкуУдаления (Ложь); //снять пометку на удаление //можно проверить, помечен ли элемент на удаление //есть свойство ПометкаУдаления, оно имеет тип Булево - Истина или Ложь Пометка = СпрСотр.ПометкаУдаления; //обратите внимание: это свойство Если Пометка = Истина Тогда .....//элемент помечен на удаление КонецЕсли; |
1 2 3 4 5 6 7 8 9 |
спр=СоздатьОбъект("Справочник.Материалы"); // далее необходимо найти элемент и // Удалить элемент справочника, на который установлена переменная спр, можно так: спр.Удалить(1); //собственно удаление элемента // Установить пометку на удаление элемента справочника можно так: спр.Удалить(0); //пометка элемента на удаление // впоследствии можно снять установленную пометку удаления спр.СнятьПометкуУдаления(); |