Не могу удалить элементы справочника #291730


#0 by misha122062
Собственно надо удалить все элементы справочника: КонецЦикла; Удаляются 2 группы, после чего получаю сообщение "Операция не может быть выполнена из за несоответствия версии или отсутствия записи базы данных(возможно запись была изменена или удалена)". Как я понял поблема в том, что удаляются и подчиненые элементы, а потом они же выбираются, т.е. конструкция Объект.УстановитьПометкуУдаления(Истина, Ложь); приводит к нормальной пометке удаления, но на удаление без контроля ссылочной целосности это не действует(Объект.Удалить). Возможно не так делаю - в 80 недавно. Прошу ногами не бить, а направить на путь истинный.
#1 by ТелепатБот
#2 by misha122062
приподнииу
#3 by Philix
Привет. Тут надо чуть хитрее - дело в том, что при удалении элемента у тебя слетает выборка. необходимо либо выбрать запросом удаляемые элементы, либо ссылки на них запихать в что-то типа списка значений. Перебирая этот список - удаляем элементы.
#4 by misha122062
понял, тоды 2 вопроса: 1.А почему она слетает - когда групп нет - все работает. Это нормально? 2.Кроме этих 2 путей ничего другого? Я так думаю запросом проще...
#5 by Philix
Кто-ж его знает. Там чего-то математики объясняли лет н-цать тому назад, но в голове не отложилось :) Просто когда из выборки надо удалить данные и продолжить эту выборку перебирать, то ее перебирают с конца к началу или сохраняют ссылки куда-нибудь, для сохранности последующего перебора.
#6 by Бубузяка
Какая задача, очистить справочник? Тогда установи всем пометку удаления, а потом штатно удали объекты. Непосредственное удаление черевато нарушением ссылочной целостнсти ИБ. Судя по вопросам, я не уверен, что ты значешь, что на удаляемые элементы нет сылок.
#7 by misha122062
Ссылок нет. Проблема не решилась. Переписал чрез запрос: Запрос = Новый Запрос; Запрос.Текст = Пометка на удаление работает, но опять не работает физическое удаление - т.е. как тока физически объект удалился, в таблицеЗначений появляется строка "Объект не найден NNN...", т.е. опять цикл сбивается. Интересны мнения еще.
#8 by Грей
А что мешает поставить всем элементам пометку удаления и удалить затем штатными средствами? Или это не одноразовая процедура?
#9 by misha122062
Во первых не одноразовая, во вторых для удаления помеченных объектов нужон монопольный доступ. А его то очень часто нету.
#10 by Бубузяка
Чему удивляешься? В таблце у тебя живет ссылка на объект, объет ты удаляешь физически, а система тебе выдает стандартное представление ссылки на удаленый объет. В базе-то объеты "пропадают"?
#11 by misha122062
да я то не удивляюсь. Понятно что так и должно быть. Интересуют пути обхода проблемы.
#12 by Flipper
...
#13 by Бубузяка
Тогда фигней с непосредственным удалением не занимайся, а устанавливай пометку и пользуйся "УдалитьОбъекты". И вообще, опиши подробнее задачу. Ты хочешь , что бы в форме был список удаленных объетов?
#14 by misha122062
предлагаешь через массив? А в чем смысл и отличие от перебора строк ТЗ? Проблема в следующем - и она не будет зависить - массив или ТЗ. При использовании метода Удалить, удаляется физически группа и ее элементы! Т.е. я перешел к следующей строке(в случае массива - его след. элементу), а там уже нет объекта - т.к. он принадлежал(!) предыдущей удаленной группе. А перебор строк то идет! Просто уже в этой ТЗ(массиве) часть физических ссылок отсутствует. Вот в чем проблема!
#15 by misha122062
Да, нет в форме ТЗ- это я для себя для наглядности разместил(уберу потом) - а так надо очистить справочник или документы N-го типа.
#16 by Flipper
#17 by misha122062
точно это вариант! Я правда пошел по другому пути - проверка существует ли объект.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С