Добрый день. Подскажите пожалуйста. У меня есть справочник ЗначенияХарактеристик, также есть справочник Характеристики (который в свою очередь является владельцем справочника ЗначенияХарактеристик). Сделал обработку, с помощью которой я могу выбрать характеристику и удалить (пометить на удаление) её и её значения (пометить на удаление в справочнике ЗначенияХарактеристик и также очистить записи по нужным регистрам). Появилась нужда доработать обработку таким способом, чтобы можно было выбрать характеристику и удалить (пометить) только её значения, а саму характеристику не трогать. Раньше удалял (помечал) характеристики таким способом:
Теперь, когда пытаюсь удалить (пометить) значения характеристики с помощью похожей конструкции:
Элемент значения характеристик помечается, но связь между ним и характеристикой всё же остаётся, так как при повторном добавлении через обработку такого же значения той же характеристики, значение не добавляется, так как в базе он есть, но он помечен и в этом загвоздка. Пробовал так:
В таком случае пометок вообще нет.
УдаляемаяХарактеристика = Выборка.Характеристика.ПолучитьОбъект();
УдаляемаяХарактеристика.УстановитьПометкуУдаления(Истина, Истина);
УдаляемаяХарактеристика.Записать();
Теперь, когда пытаюсь удалить (пометить) значения характеристики с помощью похожей конструкции:
УдаляемоеЗначение = Выборка.Значение.ПолучитьОбъект();
УдаляемоеЗначение.УстановитьПометкуУдаления(Истина);
УдаляемоеЗначение.Записать();
Элемент значения характеристик помечается, но связь между ним и характеристикой всё же остаётся, так как при повторном добавлении через обработку такого же значения той же характеристики, значение не добавляется, так как в базе он есть, но он помечен и в этом загвоздка. Пробовал так:
УдаляемаяХарактеристика = Выборка.Характеристика.ПолучитьОбъект();
УдаляемаяХарактеристика.УстановитьПометкуУдаления(Ложь, Истина);
УдаляемаяХарактеристика.Записать();
В таком случае пометок вообще нет.
По теме из базы знаний
- Подсистема ViewValues (просмотр "табличных" объектов). Версии для 1С:Предприятие-8.x и для 1С:Предприятие-7.7
- Обработка ObjectsCleaner ("Поиск ссылок и удаление объектов") для 1С:Предприятие-7.7
- Перенос номенклатуры в характеристики и редактирование дополнительных реквизитов номенклатуры и характеристик в УТ 11, КА 2, ERP 2
- Удаление неиспользуемых дополнительных реквизитов и сведений (БСП 3.1.7.61)
- Анализ отчета о сравнении
Найденные решения
(6) Спасибо большое за ответ. Пришёл к тому, что достаточно просто почистить РС на основании которого заполняются данные характеристик в форме элемента характеристики, а значения характеристик (в справочнике) нисколько не мешают, поэтому и помечать их на удаление нет смысла. Но в моём случае с помощью метода
можно было бы правильно пометить на удаление элементы.
УдаляемоеЗначение = Выборка.Значение.ПолучитьОбъект();
УдаляемоеЗначение.УстановитьПометкуУдаления(Истина);
можно было бы правильно пометить на удаление элементы.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Вот я об этом же. Как мне пометить на удаление значение справочника ЗначенияХарактеристик, при этом не трогая характеристику саму?
Почитав синтаксис, я подумал что с помощью такой конструкции получится, но нет.
Почитав синтаксис, я подумал что с помощью такой конструкции получится, но нет.
УдаляемаяХарактеристика = Выборка.Характеристика.ПолучитьОбъект();
УдаляемаяХарактеристика.УстановитьПометкуУдаления(Ложь, Истина);
УдаляемаяХарактеристика.Записать();
(4) Владельцем значений характеристик является справочник Характеристики. Когда я применяю метод (по синтаксису) первый параметр отвечает за пометку самого объекта (характеристики), а второй параметр за пометку его подчиненного элемента (то есть значения характеристики). Поэтому этот метод отлично справляется с задачей удаление характеристик и их значений. Но мне нужно теперь разработать функционал, с помощью которого смогу удалять только значения характеристик, саму характеристику оставляю без изменений. То есть вариант с логичнее всего. Но он не работает. Видимо я ещё что то не знаю.
УстановитьПометкуУдаления
УдаляемаяХарактеристика.УстановитьПометкуУдаления(Ложь, Истина);
(5) если не привязываться к УстановитьПометкуУдаления
получаем характеристики и значения, дальше обрабатываем только значения, помечая их на удаление
можно через выборку запроса, можно через цикл, можно через простую выборку справочника
смысл в том что, получив Характеристику, можно получить все элементы подчиненного справочника ЗначенияХарактеристики и пометить их на удаление
например, как-то так
получаем характеристики и значения, дальше обрабатываем только значения, помечая их на удаление
можно через выборку запроса, можно через цикл, можно через простую выборку справочника
смысл в том что, получив Характеристику, можно получить все элементы подчиненного справочника ЗначенияХарактеристики и пометить их на удаление
например, как-то так
Выборка_1 = Справочники.Характеристики.Выбрать();
Пока Выборка_1.Следующий() Цикл
Выборка_2 = Справочники.ЗначенияХарактеристик.Выбрать(, Выборка_1.Ссылка);
Пока Выборка_2.Следующий() Цикл
Объект = Выборка_2.Ссылка.ПолучитьОбъект();
Объект.ПометкаУдаления = Истина;
Объект.Записать();
КонецЦикла;
КонецЦикла;
Показать
(6) Спасибо большое за ответ. Пришёл к тому, что достаточно просто почистить РС на основании которого заполняются данные характеристик в форме элемента характеристики, а значения характеристик (в справочнике) нисколько не мешают, поэтому и помечать их на удаление нет смысла. Но в моём случае с помощью метода
можно было бы правильно пометить на удаление элементы.
УдаляемоеЗначение = Выборка.Значение.ПолучитьОбъект();
УдаляемоеЗначение.УстановитьПометкуУдаления(Истина);
можно было бы правильно пометить на удаление элементы.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот