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

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

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

Оффлайн alexs-safin

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

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

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

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Оффлайн Kironten

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

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

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

Оффлайн pavl_vs

  • *****
  • Сообщений: 919
  • РЕПУТАЦИЯ: 145
  • КПД: 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
Просмотров: 1260
Последний ответ 20 Авг 2014, 12:22
от has
Работа с табличной частью в документе. Или Работа с ШАПКОЙ документа

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

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

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

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

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

Ответов: 0
Просмотров: 437
Последний ответ 23 Июн 2015, 14:25
от news
Как вывести число прописью по-русски, с указанием сотых в дробной части?

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

Ответов: 1
Просмотров: 8279
Последний ответ 12 Ноя 2009, 16:12
от DDD

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
159 Сообщений
alex0402
61 Сообщений
MuI_I_Ika MuI_I_Ika
45 Сообщений
crow1983
35 Сообщений
LexaK
32 Сообщений
alexandr_ll
32 Сообщений
sertak sertak
27 Сообщений
Vzonder
22 Сообщений
BuhRust
19 Сообщений
дфтын дфтын
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal