[РЕШЕНО] Удаление элементов справочника в цикле даёт ошибку

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем alexiy281, 26 авг 2014.

  1. TopicStarter Overlay
    alexiy281
    Offline

    alexiy281 Опытный в 1С

    Регистрация:
    31 окт 2012
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Зравствуйте, решил удалить все элементы справочника в цикле:

    &НаСервереБезКонтекста
    Процедура УдалитьКвартирыНаСервере()

    спрКвар = Справочники.Квартиры.Выбрать();
    Пока спрКвар.Следующий() Цикл
    сообщить(СокрЛП(спрКвар.Наименование));
    спрКвар.ПолучитьОбъект().Удалить();
    КонецЦикла;

    КонецПроцедуры

    удаляет несколько записей и выдаёт ошибку:

    {Обработка.ЗагрузкаВыгрузкаDBF.Форма.Загрузка.Форма(68)}: Ошибка при вызове метода контекста (Удалить)
    спрКвар.ПолучитьОбъект().Удалить();
    по причине:
    Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)!

    Повторяю заново - снова удаляет несколько записей и снова та же ошибка и так постоянно
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.990
    Симпатии:
    399
    Баллы:
    104
    Удаляйте в попытке.
  3. Thelearning
    Offline

    Thelearning Профессионал в 1С Команда форума

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Удаляйте обратным проходом. Т.е. получите таблицу ссылок, а потом начиная с последнего удаляйте.
  4. TopicStarter Overlay
    alexiy281
    Offline

    alexiy281 Опытный в 1С

    Регистрация:
    31 окт 2012
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    это что значит? - "В ПОПЫТКЕ" ?
    --- Объединение сообщений, 26 авг 2014 ---
    ну я то щас попробую это через запрос реализовать. а вообще что это - из за чего такая ошибка? сию причину скажет кто-нибудь?
  5. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.990
    Симпатии:
    399
    Баллы:
    104
    Код:
    Попытка
    спрКвар.ПолучитьОбъект().Удалить();
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;
    --- Объединение сообщений, 26 авг 2014 ---
    Элементы в таблицы сдвигаются.
  6. Thelearning
    Offline

    Thelearning Профессионал в 1С Команда форума

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Вот поэтому я и говорю удалять с последнего элемента, чтобы сдвига не происходило.
    alexiy281 нравится это.
  7. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.990
    Симпатии:
    399
    Баллы:
    104
    Ну да. + Удалять всегда в попытке. Да и вообще подобные вещи в попытке делайте.
    alexiy281 нравится это.
  8. TopicStarter Overlay
    alexiy281
    Offline

    alexiy281 Опытный в 1С

    Регистрация:
    31 окт 2012
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Спасибо большое)

Поделиться этой страницей