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

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

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

Оффлайн alexs-safin

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

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

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


Оффлайн Kironten

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

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

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

Оффлайн pavl_vs

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

Оффлайн Luzer1C

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

Оффлайн Тём

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

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

Оффлайн Luzer1C

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


Теги:
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
99 Сообщений
Dethmontt Dethmontt
74 Сообщений
alex0402
64 Сообщений
MuI_I_Ika MuI_I_Ika
56 Сообщений
wise wise
47 Сообщений
Сергей Федоров Сергей Федоров
41 Сообщений
ilyay ilyay
40 Сообщений
ilnur75
22 Сообщений
videomause
22 Сообщений
BuhRust
22 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal