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

  • Автор темы Guest
  • Дата начала
G

Guest

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

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

puh14

Well-known member
11.07.2008
1 412
0
#2
Вроде туда не список а структуру подставить можно