Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы.
Добрый день. Подскажите пожалуйста. У меня есть справочник ЗначенияХарактеристик, также есть справочник Характеристики (который в свою очередь является владельцем справочника ЗначенияХарактеристик). Сделал обработку, с помощью которой я могу выбрать характеристику и удалить (пометить на удаление) её и её значения (пометить на удаление в справочнике ЗначенияХарактеристик и также очистить записи по нужным регистрам). Появилась нужда доработать обработку таким способом, чтобы можно было выбрать характеристику и удалить (пометить) только её значения, а саму характеристику не трогать. Раньше удалял (помечал) характеристики таким способом:
УдаляемаяХарактеристика = Выборка.Характеристика.ПолучитьОбъект();
УдаляемаяХарактеристика.УстановитьПометкуУдаления(Истина, Истина);
УдаляемаяХарактеристика.Записать();
УдаляемоеЗначение = Выборка.Значение.ПолучитьОбъект();
УдаляемоеЗначение.УстановитьПометкуУдаления(Истина);
УдаляемоеЗначение.Записать();
УдаляемаяХарактеристика = Выборка.Характеристика.ПолучитьОбъект();
УдаляемаяХарактеристика.УстановитьПометкуУдаления(Ложь, Истина);
УдаляемаяХарактеристика.Записать();
Bon Jovi @ Вчера, 16:06
,
Добрый день! Если правильно понял Вас, то вот такие варианты:
Вариант 1:
// Получить выборку по указанному контрагенту.
Выборка = Справочники.ЗначенияХарактеристики.Выбрать( , Характеристика);
Пока Выборка.Следующий() Цикл
УдаляемоеЗначение = Выборка.Значение.ПолучитьОбъект();
УдаляемоеЗначение.УстановитьПометкуУдаления(Истина);
УдаляемоеЗначение.Записать();
КонецЦикла;
Вариант 2:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ЗначенияХарактеристики.Ссылка
|ИЗ
| Справочник.ЗначенияХарактеристики КАК ЗначенияХарактеристики
|ГДЕ
| ЗначенияХарактеристики.Владелец = &Владелец";
Запрос.УстановитьПараметр("Владелец", Характеристика);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
УдаляемоеЗначение = Выборка.Значение.ПолучитьОбъект();
УдаляемоеЗначение.УстановитьПометкуУдаления(Истина);
УдаляемоеЗначение.Записать();
КонецЦикла;
denis84 @ Сегодня, 8:38
,
Спасибо большое за ответ. Пришёл к тому, что достаточно просто почистить РС на основании которого заполняются данные характеристик в форме элемента характеристики, а значения характеристик (в справочнике) нисколько не мешают, поэтому и помечать их на удаление нет смысла. Но и Вы и я были правы, как удаляются элементы с помощью метода
УстановитьПометкуУдаления
.
// Получить выборку по указанному контрагенту.
Выборка = Справочники.ЗначенияХарактеристики.Выбрать( , Характеристика);
Пока Выборка.Следующий() Цикл
УдаляемоеЗначение = Выборка.ПолучитьОбъект();
УдаляемоеЗначение.УстановитьПометкуУдаления(Истина);
УдаляемоеЗначение.Записать();
КонецЦикла;
denis84 @ Вчера, 11:00
,
Я получаю значения со своего запроса. Просто ваше решение совпало, от части, с моим.
"ВЫБРАТЬ
| мд_ЗначенияХарактеристикНоменклатуры.Номенклатура КАК Номенклатура,
| мд_ЗначенияХарактеристикНоменклатуры.Характеристика КАК Характеристика,
| мд_ЗначенияХарактеристикНоменклатуры.Значение КАК Значение,
| мд_ЗначенияХарактеристикНоменклатуры.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа
|ИЗ
| РегистрСведений.мд_ЗначенияХарактеристикНоменклатуры КАК мд_ЗначенияХарактеристикНоменклатуры
|ГДЕ
| мд_ЗначенияХарактеристикНоменклатуры.Номенклатура.НоменклатурнаяГруппа = &НоменклатурнаяГруппа";
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua