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

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

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

Оффлайн alexs-safin

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

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

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


Оффлайн Kironten

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

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

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

Оффлайн pavl_vs

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

Оффлайн Luzer1C

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

Оффлайн Тём

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

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

Оффлайн Luzer1C

  • ****
  • Сообщений: 452
  • РЕПУТАЦИЯ: 54
  • КПД: 12%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
Любой способ хорош. Только нужно правильно его использовать.
Халамбалам.


Теги:
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
186 Сообщений
alex0402
72 Сообщений
AIFrame AIFrame
70 Сообщений
alexandr_ll
43 Сообщений
oleg-x
39 Сообщений
BuhRust
20 Сообщений
pavl_vs
19 Сообщений
Sandi Sandi
13 Сообщений
Sheriff
13 Сообщений
sertak sertak
12 Сообщений

* Кто онлайн

  • Точка Гостей: 119
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal