8.х Удалить строку табличной части документа выбранную запросом

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Neon_tmn, 12 ноя 2010.

  1. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте, выбираю из табличной части документа запросом строку.
    получаю Результат = Запрос.Выполнить().Выбрать();

    в "Результат" у меня хранятся строки табличной части.
    А как мне удалить эти полученные запросом строки?
    То что было найдено получается, но как то не красиво.
    У меня в строках хранятся сотрудники.
    Удаляю так.

    Пока Результат.Следующий() Цикл
    СтруктураДляПоиска = Новый Структура("Сотрудник", Результат.Сотрудникк);
    ТабличнаяЧастьДок = Док.ОтработанноеВремя;
    МассивПустыхСтрок = ТабличнаяЧастьДок.НайтиСтроки(СтруктураДляПоиска);
    Для каждого Строка Из МассивПустыхСтрок Цикл
    ТабличнаяЧастьДок.Удалить(Строка);
    КонецЦикла;
    КонецЦикла;

    Все работает так и в общем-то не так уж и долго. Но не красиво, думаю можно как-то проще, а то выбирать запросом, а потом опять выбирать с помощью НайтиСтроки();
    Лишние действия только, мне кажется.
    Мне в общем-то надо удалить все что выбирается запросом
  2. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    В запрос включите НомерСроки, сортировка в порядке убывания,
    Код:
    ТабличнаяЧастьДок.Удалить(ТабличнаяЧастьДок[Результат.НомерСроки-1]);
    
    
    Есть еще более элегантный вариант:
    Запросом выбираете не то, что надо удалить, а то, что надо оставить, очищаете ТЧ, и загружаете в нее выгрузку из результата. Так даже перебор результата не понадобится.

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