ОБСУЖДЕНИЕ

Ошибка при удалении строк в ТаблицеЗначений

1 ответов 3,6 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Создаю следующий СписокЗначений:
Код:
	СЗШК = новый СписокЗначений;
СЗШК.Добавить("4602827801011");	
СЗШК.Добавить("0102263300108");

Затем передаю его в процедуру, в кторой опред образом заполняется ТаблицаЗначений - Товары, в которой содержатся Наименование (товара) и Штрихкод. Однако мне нужны только строки, в которых есть данные ШК, т.к. в запрос СписокЗначений запехнуть не удалось, то решил после заполнения ТЗ отсеять лишнее перебором таблицы:
Код:
	Для Сч=0 по СтаршийИндекс Цикл
Если ПустаяСтрока(СЗШК.НайтиПоЗначению(Товары[Сч].Штрихкод))=Истина Тогда
Товары.Удалить(Сч);
КонецЕсли;
КонецЦикла;

Однако при выполнении выдает такую вот ошибку:
Индекс находится за границами массива

Что делаю неправильно???

Вопрос Снят... Сделал перебор не с начало в конец, а из конца в начало (т.к. после удаления строки сдвигаются), тоесть так:
Код:
	СтаршийИндекс = Товары.Количество()-1;
Для Сч=0 по СтаршийИндекс Цикл
Если ПустаяСтрока(СписокЗначШК.НайтиПоЗначению(Товары[СтаршийИндекс-Сч].Штрихкод))=Истина Тогда
Товары.Удалить(СтаршийИндекс-Сч);  			 
КонецЕсли;
КонецЦикла;

Однако тогда появился такой вопрос.... можно ли СписокЗначений как-то в Запрос подставить, типо сразу в Запросе проверять попадает ли выбранный Штрихкод в этот список или нет????????????????
 
Вроде туда не список а структуру подставить можно