Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
23 Июл 2017, 21:43
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Удаление строк из табличной части  (Прочитано 977 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alexs-safin

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-11-04
  • Сайт: 
  • Профессия: Ученик 1С
Здравствуйте! Подскажите пожалуйста - почему удаляется по половине списка?

Процедура КпТовары1УдалитьИгнорСписок(Кнопка)
Для каждого Наименование ИЗ ИгнорируемыеНаименования Цикл //ТЗ
Если Наименование.Акт = Истина Тогда
ИгнорируемыеНаименования.Удалить(Наименование);
КонецЕсли;
КонецЦикла;

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


Оффлайн Kironten

  • *****
  • Сообщений: 809
  • РЕПУТАЦИЯ: 171
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
Здравствуйте! Подскажите пожалуйста - почему удаляется по половине списка?

Процедура КпТовары1УдалитьИгнорСписок(Кнопка)
Для каждого Наименование ИЗ ИгнорируемыеНаименования Цикл //ТЗ
Если Наименование.Акт = Истина Тогда
ИгнорируемыеНаименования.Удалить(Наименование);
КонецЕсли;
КонецЦикла;

КонецПроцедуры
Насколько я помню, с табличной частью это работает так:
Вы удаляете строку 1, в результате строка с номером 2 перемещается на место строки номер 1. Но поскольку считается, что строка 1 уже обработана в первом шаге цикла, то строка 2 перемещенная в результате удаления на первую позицию - пропускается.
Лучше было бы скопировать ТЧ в массив, полностью очистить ТЧ и потом обрабатывая элементы массива и проводя условия, заполнить ТЧ заново.

Оффлайн pavl_vs

  • *****
  • Сообщений: 1000
  • РЕПУТАЦИЯ: 159
  • КПД: 16%
  • Регистрация: 2011-05-09
  • Сайт: 
  • Профессия: Программист 7.7
alexs-safin, используйте обратный цикл.

Оффлайн Luzer1C

  • ****
  • Сообщений: 411
  • РЕПУТАЦИЯ: 41
  • КПД: 10%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
Используй удаление строк по счетчику:
Сч = 1;
Пока Сч <= ИгнорируемыеНаименования.Количество() Цикл
Если ИгнорируемыеНаименования[Сч - 1].Акт = Истина Тогда
ИгнорируемыеНаименования.Удалить(Сч - 1);
Иначе
Сч = Сч + 1;
КонецЕсли;
КонецЦикла;
На решение такой проблемы даже у Павла Чистова есть отдельное видео.
Помочь мне очень сложно. Но можно.
Помогаю просто так...
Матёрый разработчик УПП + Бит Финанс

Оффлайн Тём

  • *
  • Сообщений: 19
  • РЕПУТАЦИЯ: 2
  • КПД: 11%
  • Регистрация: 2016-06-07
  • Сайт: 
Воспользуйтесь временным массивом. Так значительно удобнее.

Процедура КпТовары1УдалитьИгнорСписок(Кнопка)
    МассивУдаляемыхСтрок = Новый Массив;
    Для каждого Наименование ИЗ ИгнорируемыеНаименования Цикл //ТЗ
        Если Наименование.Акт = Истина Тогда
            МассивУдаляемыхСтрок.Добавить(Наименование);
        КонецЕсли;
    КонецЦикла;
   
    Для Каждого ЭлементМассива Из МассивУдаляемыхСтрок Цикл
        ИгнорируемыеНаименования.Удалить(ЭлементМассива );
    КонецЦикла;
 
КонецПроцедуры

Оффлайн Luzer1C

  • ****
  • Сообщений: 411
  • РЕПУТАЦИЯ: 41
  • КПД: 10%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
Любой способ хорош. Только нужно правильно его использовать.
Помочь мне очень сложно. Но можно.
Помогаю просто так...
Матёрый разработчик УПП + Бит Финанс


Теги:
 

"Уникальность" строки таблиной части документа

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 1569
Последний ответ 20 Авг 2014, 12:22
от has
Работа с табличной частью в документе. Или Работа с ШАПКОЙ документа

Автор gorbach178500Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 2819
Последний ответ 30 Сен 2011, 20:01
от gorbach178500
УТ 11ред. Есть ли возможность указать серии в заказе покупателя?( в табл. части)

Автор tsaboevРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 2766
Последний ответ 02 Июл 2012, 13:11
от totutotam
Применять ПСН относительно доходов, полученных от субаренды части нежилого помещения, нельзя

Автор newsРаздел Новости

Ответов: 0
Просмотров: 557
Последний ответ 23 Июн 2015, 14:25
от news
отчет с анализом данных таб.части и документа + сумма.Расходы из Остатки.Обороты

Автор ilnur75Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 158
Последний ответ 18 Май 2017, 19:12
от ilnur75

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
105 Сообщений
alex0402
93 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
65 Сообщений
ilyay ilyay
49 Сообщений
Golickoff Golickoff
49 Сообщений
AIFrame
47 Сообщений
ab30ru
38 Сообщений
wise wise
34 Сообщений
Амал
30 Сообщений
lansy
22 Сообщений

* Кто онлайн

  • Точка Гостей: 231
  • Точка Скрытых: 0
  • Точка Пользователей: 9
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal