Проверка строки на наличие в ТЗ

1. M_A_D 184 05.10.20 12:36 Сейчас в теме
Пишу простенькую корзину для справочника номенклатуры. точнее уже написал и вс работает хорошо, за исключением одного момента, который бесит ЛИЧНО МЕНЯ)

Я делаю добавление в ТЗ по текущей строке и если я добавляю один товар дважды, то строки не суммируются)
А хотелось бы делать проверку и если есть совпадение то суммировать количества)

Писал нечто такое:

Для Каждого Строка из Корзина.Выгрузить() цикл	
		Если Строка.Номенклатура = Элементы.СписокРасширенныйПоискНоменклатура.ТекущаяСтрока тогда
			Строка.Количество = Строка.Количество+1;
		иначе
			ТоварВКорзину = Корзина.Добавить();
			ТоварВКорзину.Номенклатура = Элементы.СписокРасширенныйПоискНоменклатура.ТекущаяСтрока;
			ТоварВКорзину.Количество = 1;
		КонецЕсли;
	КонецЦикла;


Показать

Но не работает... Таблица пустая, и товар новый не добавляется.
По теме из базы знаний
Найденные решения
2. ong1990 4 05.10.20 12:44 Сейчас в теме
     
        СтруктураОтбора = Новый Структура;
	СтруктураОтбора.Вставить("номенклатура", Номенклатура);
	найденныеСтроки = ТЗ.НайтиСтроки(СтруктураОтбора)
	
	Если найденныеСтроки.Количество()<> 0 Тогда 
		
	КонецЕсли;	
5. ong1990 4 05.10.20 13:02 Сейчас в теме
(4) Если предполагается, что у тебя может быть только одна строка с АНАЛОГИЧНЫМ товаром (Номенклатура будет уникальна в данной Таблице Значений), то например вот так:
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("номенклатура", Номенклатура);
найденныеСтроки = Корзина.НайтиСтроки(СтруктураОтбора)
	
Если найденныеСтроки.Количество()<> 0 Тогда 
		
       найденныеСтроки[0].Колиечество = найденныеСтроки[0].Колиечество + 1; 
		
КонецЕсли;	
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ong1990 4 05.10.20 12:44 Сейчас в теме
     
        СтруктураОтбора = Новый Структура;
	СтруктураОтбора.Вставить("номенклатура", Номенклатура);
	найденныеСтроки = ТЗ.НайтиСтроки(СтруктураОтбора)
	
	Если найденныеСтроки.Количество()<> 0 Тогда 
		
	КонецЕсли;	
3. ong1990 4 05.10.20 12:45 Сейчас в теме
Изменяешь количество уже в найденной строке. Почитай внимательно синтаксис помощник
Прикрепленные файлы:
4. M_A_D 184 05.10.20 12:57 Сейчас в теме
(3) а вот изменить количество в найденой строке не понял как)))
5. ong1990 4 05.10.20 13:02 Сейчас в теме
(4) Если предполагается, что у тебя может быть только одна строка с АНАЛОГИЧНЫМ товаром (Номенклатура будет уникальна в данной Таблице Значений), то например вот так:
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("номенклатура", Номенклатура);
найденныеСтроки = Корзина.НайтиСтроки(СтруктураОтбора)
	
Если найденныеСтроки.Количество()<> 0 Тогда 
		
       найденныеСтроки[0].Колиечество = найденныеСтроки[0].Колиечество + 1; 
		
КонецЕсли;	
Показать
6. ong1990 4 05.10.20 13:04 Сейчас в теме
(4)внимательно прочти Синтаксис помощник! там написано, что метод НайтиСтроки() возвращает МАССИВ строк!!!! прочти как работать с Массивом
7. M_A_D 184 05.10.20 13:05 Сейчас в теме
(6)Спасибо большое!
В качестве здесь и сейчас поможет отлично, а по массиву почитаю!
8. ong1990 4 05.10.20 13:06 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот