Как удалить все элементы справочника?
Для удаления всех элементов справочника можно использовать объект «СправочникВыборка.», с помощью которого осуществлять обход и удаление всех элементов справочника. При этом следует учитывать, что если справочник иерархический, то выборка должна быть также иерархической, так как при удалении элемента удаляются и все его подчиненные элементы. Например:
Выборка = Справочники.Номенклатура.ВыбратьИерархически();
Пока Выборка.Следующий() Цикл
Выборка.Удалить();
КонецЦикла;
Более подробная информация содержится в разделе «Особенности использования динамических выборок (выборки данных с помощью метода Выбрать …)» диска информационно-технологического сопровождения (ИТС).
Как удалить все элементы справочника?
Для удаления всех элементов справочника можно использовать объект СправочникВыборка. , с помощью которого осуществлять обход и удаление всех элементов справочника.
При этом следует учитывать, что если справочник иерархический, то выборка должна быть также иерархической, так как при удалении элемента удаляются и все его подчиненные элементы.
Выборка = Справочники.Номенклатура.ВыбратьИерархически(); Пока Выборка.Следующий() Цикл
ОбъектСправочника = Выборка.ПолучитьОбъект(); ОбъектСправочника.Удалить();
КонецЦикла;
Более подробная информация содержится в разделе Особенности использования динамических выборок (выборки данных с помощью метода Выбрать . ) информационно-технологического сопровождения (ИТС).
Как программно удалить элемент справочника 1с
Врорде юы глупость, но таки не встречался. Документы удаляются через проведение, а как удалить элемент справочника? оО
(0) *Вроде бы
«Документы удаляются через проведение»
век живи, век учись.
(0) » Документы удаляются через проведение» — это пять!
По сути, элементы справочника удаляются тоже через проведение. Но их надо дольше проводить 🙂
Жмакнул, по незнанию, кнопку «ОК» в документе с 200 строк в ТЧ — ХРЯСТЬ — он и удалился!
а элементы справочника удаляются через создание
Ну ладно, раскрыли меня, пьян 🙁 Через запись возможно проведение и отмена проведения, удалить возможно после получитьобъект по ссылке. Но это не рещает проблемы с удалением элементов справочника.
Единственное что-то похожее — пометка удаления, но не робит. Как-то так:
Запрос = Новый Запрос;
Запрос.Текст ;
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
Элемент = РезультатЗапроса.Ссылка.ПолучитьОбъект();
Элемент.ПометкаУдаления = Истина;
КонецЦикла;
(8) Гы. а записывать элемент после пометки удаления кто будет?
+(9) И вообще-то, у справочников есть метод Удалить(), который производит удаление объекта из базы. СП украли?
как получить ид в 8ке?
cast id as nvarchar
(0) Лёша, а где это может пригодиться?
(0) Удаление элементов справочника программно, во-первых, пишется с двумя «м», а, во-вторых, осуществляется методом СправочникОбъект::Удалить().
Кроме того, есть мнение, что, если Вы не имеете ответа на этот вопрос, то лучше Вам удалением не заниматься
(2) так это же 8-ка.
Отано че! Поперло 🙂 Но всеравно это пометка на удаление. Есть возможность удалить безвозвратно?
СправочникОбъект. (CatalogObject.)
Удалить (Delete)
Синтаксис:
Удалить()
Описание:
Удаляет элемент справочника из базы данных.
Важно! В отличие от метода УстановитьПометкуУдаления, данный производит непосредственное удаление элемента справочника без возможности восстановления и без проверки ссылочной целостности. Использовать данный метод нужно крайне осмотрительно.
Пример:
Объект.Удалить();
Запрос = Новый Запрос;
Запрос.Текст ;
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
Элемент = РезультатЗапроса.Ссылка.ПолучитьОбъект();
Элемент.Удалить();
//Элемент.ПометкаУдаления = Истина;
//Элемент.Записать();
КонецЦикла;
->>> : Неопознанный оператор
Удалить>
(13) тебе жалко справочник шоле?
+(13) кроме того, есть мнение, что без Контроля проверки ссылкок на удаляемый объект просто катастрофически не стоит этим заниматься.
(15) прпробуй format c: \Q
Ну как где это может пригодиться 🙂 Пустая база в которую из семерки перенес справочник контрагентов, ибо больше ничего из семерки туда брать не следует. Кроме всего прочего задал соответствие по коду. Около 30 элементов не перенеслось, говорит код не уникален. CF только 20 версии БП, лень заного обновлять до 24.7, решил быстренько удалить все и попал в просак
(19) ну дык есть ГрупповаяОбработка Справочников и Документов. Выбери, поставь на удаление, проведи Контроль, Удалить. Всё очень корректно удалится.
Перечитал ветку (особенно (7), (8), (15) ). ICWiner в дупель пьяный, как в клавиатуру пальцами попадает още не понятно
Удаление элемента справочника

Внимание. Непосредственное удаление справочника ведет к нарушению целостности данных. Например если удалить Контрагента по которому были сделаны документы, то в этих документах будет пустая ссылка.
Поэтому — лучше на удаляемые объекты ставить пометку на удаление, а непосредственное удаление делать встроенной функцией:
в 1С 7.7 или 8.1 — Меню-Операции — Удаление помеченных объектов.
в 1С 8.2 — Меню — Все функции. — Стандартные — Удаление помеченных объектов.
Код 1C v 8.2 УП
&НаКлиенте
Процедура ПоКнопкеУдалитьКонтрагента(Команда)
Режим = РежимДиалогаВопрос.ДаНетОтмена;
Ответ = Вопрос("Удалить непосредственно? Да - удалить, Нет - пометка удаления",Режим, 0);
Если Ответ = КодВозвратаДиалога.Да Тогда
УдалитьКонтрагента(Элементы.СписокКонтрагентов.ТекущаяСтрока, Ложь);
ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда
УдалитьКонтрагента(Элементы.СписокКонтрагентов.ТекущаяСтрока, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УдалитьКонтрагента(УдаляемыйКонтрагент, ПометкаНаУдаление)
Если ПометкаНаУдаление = Истина Тогда
УдаляемыйКонтрагент.ПолучитьОбъект().УстановитьПометкуУдаления(Истина, Истина);
Иначе
УдаляемыйКонтрагент.ПолучитьОбъект().Удалить();
КонецЕсли;
КонецПроцедуры
Код 1C v 8.х
СпрСотр = Справочники.Сотрудники;
СпрСотр.Удалить(); //непосредственное удаление
СпрСотр.УстановитьПометкуУдаления (Истина); //пометка на удаление
СпрСотр.УстановитьПометкуУдаления (Ложь); //снять пометку на удаление
//можно проверить, помечен ли элемент на удаление
//есть свойство ПометкаУдаления, оно имеет тип Булево - Истина или Ложь
Пометка = СпрСотр.ПометкаУдаления; //обратите внимание: это свойство
Если Пометка = Истина Тогда
. //элемент помечен на удаление
КонецЕсли;
спр=СоздатьОбъект("Справочник.Материалы");
// далее необходимо найти элемент и
// Удалить элемент справочника, на который установлена переменная спр, можно так:
спр.Удалить(1); //собственно удаление элемента
// Установить пометку на удаление элемента справочника можно так:
спр.Удалить(0); //пометка элемента на удаление
// впоследствии можно снять установленную пометку удаления
спр.СнятьПометкуУдаления();
Разместил: E_Migachev Версии: | 7.x | 8.x | 8.2 УП | Дата: 23.08.2009 Прочитано: 84714

Возможно, вас также заинтересует
Похожие FAQ
Cклонения по падежам 6
НаКлиенте Процедура Команда1(Команда) ФИО = » Иванов Иван Иванович» ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) Результат = » » ; Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Cообщение: «Не удалось удалить чеки ККМ!» 2
Пользователь с правами Администратор ККМ проводит Закрытие кассовой смены (Z). Выходит сообщение: » Не удалось удалить чеки ККМ!» ФР печатает Z -отчет, но Отчет о рознчничных продажах не формируется. Необходимо дать роли Администратор ККМ прав Выбор запросом элементов справочника и Загрузка в Документ 0
Запрос = СоздатьОбъект(» Запрос» ); ТекстЗапроса = » // Вывести все помеченные на удаление элементы справочника 0
Запрос=новый Запрос; Запрос.Текст=» |ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ПометкаУдаления = ИСТИНА |» ; Результат = Запрос.Выполнить(); Результат = Результат.Выбрать(); Пока Ре Посмотреть все результаты поиска похожих
Еще в этой же категории
Создание и запись нового элемента справочника 18
НаКлиенте Процедура ПоКнопкеНовыйКонтрагент(Команда) // Вставить содержимое обработчика. Перем НовыйКонтрагент; НовыйКонтрагент = Новый Структура(» Наименование, ПолноеНаименование, ИНН» ); НовыйКонтрагент.Наименование = » РиК ООО» ; НовыйКон Как для Выбора Элемента Справочника Открыть Форму Выбора с нужной Открытой Группой? 9
Порядок действий такой: 1. В поле ввода » Номенклатура» добавь событие ПриНачалеВыбора. 2. Установи в них СтандартнаяОбработка = Ложь; 3. Получи форму выбора нужного справочника 4. Установи отбор по родителю 5. Открой форму для выбора Теп Перебрать, выбрать элементы справочника 8
Выборка = Справочники.Сотрудники.Выбрать(); //или Выборка = Справочники.Сотрудники.ВыбратьИерархически(); Пока выборка.Следующий() = 1 Цикл . //действия с очередным элементом . Сообщить(» Сотрудник » + выборка.Наименование); КонецЦикла; / Перебрать, выбрать элементы подчиненного справочника 8
Перебор элементов справочника принадлежащих элементу другого справочника, т.е когда один справочник подчинен другому справочнику. // Получить выборку по указанному контрагенту. Выборка = Справочники.КонтактныеЛица.Выбрать( , Контрагент); Пока Вы Как программно открыть и выбрать элемент справочника, выбор элемента справочника? 8
Просто открыть: // Получить форму выбора справочника как подчиненную форме документа ФормаСписка = Справочники.Номенклатура.ПолучитьФормуСписка( , ЭтаФорма); // Открыть полученную форму ФормаСписка.Открыть(); Открыть для выбора элемента: Ф Посмотреть все в категории Справочники