Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=2279)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Ошибка при установке пометки удаления
Автор: Lefer 10.12.10, 10:01
Доброго времени суток. Возникла проблема следующего рода: Вот код:
Спр = Справочники.Справочник.Выбрать();
Пока Спр.Следующий() Цикл
СпрОбъект = Спр.ПолучитьОбъект();
СпрОбъект.УстановитьПометкуУдаления(Истина,Истина);
СпрОбъект.Удалить();
КонецЦикла;
При выполнении кода возникает ошибка - "Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)!"
У текущего пользователя, под которым выполняется код, стоят полные права. Подскажите, пожалуйста, что не так.
Автор: World1С 10.12.10, 10:16
Спр = Справочники.Справочник.Выбрать();
Пока Спр.Следующий() Цикл
СпрОбъект = Спр.ПолучитьОбъект();
СпрОбъект.УстановитьПометкуУдаления(Истина,Истина);
//СпрОбъект.Удалить();
КонецЦикла;
Закоментируйте строку.
Автор: Lefer 10.12.10, 10:21
Происходит тоже самое.
Усправочника нет подчинения и подчиненных, он иерархический. Иерархия групп и элементов. Тип кода - число....
Автор: Vofka 10.12.10, 10:28
Может так:
СпрОбъект.ПометкаУдаления = Истина
?
Автор: Lefer 10.12.10, 10:35
Цитата(Vofka @ 10.12.10, 11:28)
Может так:
СпрОбъект.ПометкаУдаления = Истина
?
Ничего вообще не произошло)
Обработка перебрала все элементы справочника успешно, но пометка на удаление не установилась.
Автор: World1С 10.12.10, 10:56
Спр = Справочники.Справочник.Выбрать();
Пока Спр.Следующий() Цикл
// совсем забыл, сначало необходимо удалить элементы
Если НЕ ЭтоГруппа() Тогда
СпрОбъект = Спр.ПолучитьОбъект();
СпрОбъект.УстановитьПометкуУдаления(Истина);
//СпрОбъект.Удалить();
КонецЕсли;
КонецЦикла;
Так должно работать
Автор: vatikan 10.12.10, 11:13
Цитата(Lefer @ 10.12.10, 11:01)
Доброго времени суток. Возникла проблема следующего рода: Вот код:
Спр = Справочники.Справочник.Выбрать();
Пока Спр.Следующий() Цикл
СпрОбъект = Спр.ПолучитьОбъект();
СпрОбъект.УстановитьПометкуУдаления(Истина,Истина);
СпрОбъект.Удалить();
КонецЦикла;
При выполнении кода возникает ошибка - "Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)!"
У текущего пользователя, под которым выполняется код, стоят полные права. Подскажите, пожалуйста, что не так.
В какой момент возникает ошибка?
Попробуй
ТЕ сделать то же самое но без СпрОбъект.Удалить();, а потом сделай Операции -> Удаление помеченных объектов
Автор: Lefer 10.12.10, 11:24
Цитата(vatikan @ 10.12.10, 12:13)
В какой момент возникает ошибка?
Попробуй сделать то же самое но без СпрОбъект.Удалить();, а потом сделай Операции -> Удаление помеченных объектов
В этом посте выше уже указан результат таких действий.
World1С, спасибо, помогло. Пометка удаления встала на всех элементах справочника. Но только не на группах само собой разумеется. )
Автор: vatikan 10.12.10, 11:28
Цитата(Lefer @ 10.12.10, 12:24)
В этом посте выше уже указан результат таких действий.
World1С, спасибо, помогло. Пометка удаления встала на всех элементах справочника. Но только не на группах само собой разумеется. )
Елки, да я извиняюсь, не увидел ответы предыдущих ораторов. Сорри.
Автор: Lefer 13.12.10, 16:16
И все же не работает - при количестве элементов (их у меня около 10000) какие-то помечает на удаление, а какие-то нет.
Автор: World1С 14.12.10, 17:03
Элементы справочника которые не пометились на удаление, не используюся в документах?
Автор: Lefer 14.12.10, 19:13
Цитата(World1С @ 14.12.10, 18:03)
Элементы справочника которые не пометились на удаление, не используюся в документах?
Нет, нет, они ещё нигде не используются. Я их создаю и записываю программно из dbf файла - переношу из одной конфы в новую, где только и справочники есть.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua