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

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

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

+1
Здравствуйте, подскажите пожалуйста, как удалить строку из табличной части?

Код 1C:
  1. &НаКлиенте
  2. Процедура ОбработатьВыполнить()
  3. Объект.Обработан=Истина;
  4. Для Каждого ТекСтрокаДанные из Объект.ДанныеЦикл
     
    Если ТекСтрокаДанные.Группа<> Объект.ВозрастнаяГруппа Тогда//ЗдесьНадо удаоитьтекущуюстроку;
  5.  
  6.  
  7. КонецЕсли;
    КонецЦикла;КонецПроцедуры
Сообщений: 18

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

+1
NamasteByMaetro:

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

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

0
NamasteByMaetro:

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


сразу удалять из коллекции по номеру
В начало страницы 
|
Перейти на форум: