Modber Сообщество
профессионалов по 1С

v8: Платформа 8.2: Подскажите как удалить строку из табличной части?

v8: Платформа 8.2: Подскажите как удалить строку из табличной части?
  
Сообщений: 18

+1
Здравствуйте, подскажите пожалуйста, как удалить строку из табличной части? [code=1C]&НаКлиенте Процедура ОбработатьВыполнить() Объект.Обработан=Истина; Для Каждого ТекСтрокаДанные из Объект.Данные Цикл Если ТекСтрокаДанные.Группа<> Объект.ВозрастнаяГруппа Тогда //ЗдесьНадо удаоитьтекущуюстроку; КонецЕсли; КонецЦикла; КонецПроцедуры[/code]
Сообщений: 18

+1
В логике ошибок нет походу ошибки в платформе вот код который работает [code=1C]&НаКлиенте Процедура ОбработатьВыполнить() Объект.Обработан=Истина; БылоСтрок= Объект.Данные.Количество(); Для Счетчик =1 по Объект.Данные.Количество() Цикл НомерСтроки= БылоСтрок-Счетчик; лСтр = Объект.Данные[НомерСтроки]; Если лСтр.Группа = Объект.ВозрастнаяГруппа Тогда Иначе Объект.Данные.Удалить(НомерСтроки); КонецЕсли; КонецЦикла; КонецПроцедуры[/code]
Сообщений: 14

+1
[quote=NamasteByMaetro] В логике ошибок нет походу ошибки в платформе вот код который работает [code=1C]&НаКлиенте Процедура ОбработатьВыполнить() Объект.Обработан=Истина; БылоСтрок= Объект.Данные.Количество(); Для Счетчик =1 по Объект.Данные.Количество() Цикл НомерСтроки= БылоСтрок-Счетчик; лСтр = Объект.Данные[НомерСтроки]; Если лСтр.Группа = Объект.ВозрастнаяГруппа Тогда Иначе Объект.Данные.Удалить(НомерСтроки); КонецЕсли; КонецЦикла; КонецПроцедуры[/code] [/quote] Это не ошибка в платформе, надо было сразу удалять из коллекции по номеру, а не использовать метод строки "Удалить".
Сообщений: 2

-1
При удалении элементов из коллекции лучше всего обходить коллекцию с конца. Например: [code=1C]КК = Объект.Данные.Количество(); Для К = 1 По КК Цикл ТекСтрокаДанные = Объект.Данные[КК-К]; Если ТекСтрокаДанные.Группа <> Объект.ВозрастнаяГруппа Тогда Объект.Данные.Удалить(ТекСтрокаДанные); КонецЕсли; КонецЦикла; [/code]
Редактировалось: 1 раз (Последний: 18 сентября 2014 в 11:12)
Сообщений: 5

0
[quote=NamasteByMaetro] В логике ошибок нет походу ошибки в платформе вот код который работает [code=1C]&НаКлиенте Процедура ОбработатьВыполнить() Объект.Обработан=Истина; БылоСтрок= Объект.Данные.Количество(); Для Счетчик =1 по Объект.Данные.Количество() Цикл НомерСтроки= БылоСтрок-Счетчик; лСтр = Объект.Данные[НомерСтроки]; Если лСтр.Группа = Объект.ВозрастнаяГруппа Тогда Иначе Объект.Данные.Удалить(НомерСтроки); КонецЕсли; КонецЦикла; КонецПроцедуры[/code] [/quote] сразу удалять из коллекции по номеру
В начало страницы 
|
Перейти на форум: