Таблица Значений проблема с Циклом

1. SharpBrain 24.01.20 20:09 Сейчас в теме
Есть Таблица Значений в которой есть строки "партии товаров" и колонки одна с которых тоже Таблица Значений в которой есть колонка Сумма ...
Пытаюсь Циклом перебрать значения "сумма" что бы сформировать проводки, а в проводки записывает только последнее значение с Колонки "Сумма"

Например в Колонке "Сумма" в Таблице Значений есть такие показатели
СуммаСписания
1. 350
2. 280
3. 310
А проводку мне делает в регистр только последней суммой дле всех...

Движения.Запчасти.Записывать = Истина;
	Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
		Движение = Движения.Запчасти.Добавить();
		Движение.Организация = Организация;
		Движение.Водитель = Водитель;
		Движение.Номенклатура = ТекСтрокаМатериалы.Номенклатура;
		Движение.Автомобиль = Автомобиль;
		Движение.Количество = ТекСтрокаМатериалы.Количество;
		Движение.Документ     = ЭтотОбъект.Ссылка;
		
		Для Каждого СтрМатериалы Из ТаблицаМатериалов Цикл
			Для каждого Стр Из СтрМатериалы.СписанныеПартииБУ Цикл
				
				СуммаП = Стр.СуммаСписания;
				Движение.Цена = СуммаП;
			КонецЦикла;
					
		КонецЦикла;
	КонецЦикла;
Показать


Помогите правильно оформить Цикл. Спасибо)
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
7. SharpBrain 25.01.20 11:03 Сейчас в теме
Вопрос решил таким способом) Всем спасибо)
Для Каждого СтрМатериалы Из ТаблицаМатериалов Цикл
		
		СуммаП = СтрМатериалы.СписанныеПартииБУ.Итог("СуммаСписания");		
		
		Движения.ЗапчастиПриход.Записывать = Истина;
		Движение = Движения.ЗапчастиПриход.Добавить();
		Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
		Движение.Период = Дата;
		Движение.Организация = Организация;
		
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ТребованиеНакладнаяМатериалы.Количество КАК КоличествоЗапчастей
		|ИЗ
		|	Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
		|ГДЕ
		|	ТребованиеНакладнаяМатериалы.Номенклатура = &Запчасть";
	
	Запрос.УстановитьПараметр("Запчасть", СтрМатериалы.Номенклатура);
	
	РезультатЗапроса = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	КолВоМатериалов = ВыборкаДетальныеЗаписи.КоличествоЗапчастей;	
	КонецЦикла;
	
	
		Движение.Номенклатура = СтрМатериалы.Номенклатура;
		Движение.Количество = КолВоМатериалов;
		Движение.МОЛ = ЭтотОбъект.Водитель;
		Движение.Ссылка = ЭтотОбъект.Ссылка;
		Движение.Цена = СуммаП;
		Движение.Сумма = СуммаП*КолВоМатериалов;
КонецЦикла;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ishelper 24.01.20 20:40 Сейчас в теме
(1)
А проводку мне делает в регистр только последней суммой дле всех...
"Компьютер выполняет ту программу, которую вы написали, а не ту, которую хотели написать" (с) не мой

Если я правильно понял задачу, то код будет таким:
        Для Каждого СтрМатериалы Из ТаблицаМатериалов Цикл
            СуммаП = 0;
            Для каждого Стр Из СтрМатериалы.СписанныеПартииБУ Цикл

                СуммаП = СуммаП + Стр.СуммаСписания;
            КонецЦикла;

            Движение.Цена = СуммаП;
                    
        КонецЦикла;
Показать


А если неправильно понял, то надо СуммаП = 0; и Движение.Цена = СуммаП; выносить еще из одного цикла.
3. SharpBrain 24.01.20 21:33 Сейчас в теме
(2)Сделал так же, ...все то же последнее значение ..не перебирает Циклом ...только последнее
Прикрепленные файлы:
4. SharpBrain 24.01.20 22:01 Сейчас в теме
Когда проверил Цикл через Сообщить(); получил все значения перебора Циклом

 Для Каждого СтрМатериалы Из ТаблицаМатериалов Цикл
			СуммаП = 0;
			Для каждого Партия Из СтрМатериалы.СписанныеПартииБУ Цикл
			СуммаП = СуммаП + Партия.СуммаСписания;	
			сообщить(СуммаП);	
		КонецЦикла
;


А проводку мне дает последнее число
5. HAMAZ 7 25.01.20 07:31 Сейчас в теме
А зачем лишний цикл вообще?
Для Каждого СтрМатериалы Из ТаблицаМатериалов Цикл
            СуммаП = 0;
            СуммаП = СуммаП   + СтрМатериалы.СписанныеПартииБУ.Итог("СуммаСписания");    
            сообщить(СуммаП);    
 КонецЦикла
6. SharpBrain 25.01.20 10:45 Сейчас в теме
(5)Я уже вставлял Цикл для СуммаП в Цикл Проводки...так же и выводил Циклы отдельно...все то же последнее значение...
Для Каждого СтрМатериалы Из ТаблицаМатериалов Цикл
		СуммаП = СтрМатериалы.СписанныеПартииБУ.Итог("СуммаСписания");	
		сообщить(СуммаП);
	КонецЦикла; 
	
	Движения.ЗапчастиПриход.Записывать = Истина;
	Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
		
		Движение = Движения.ЗапчастиПриход.Добавить();
		Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
		Движение.Период = Дата;
		Движение.Организация = Организация;
		Движение.Номенклатура = ТекСтрокаМатериалы.Номенклатура;
		Движение.Количество = ТекСтрокаМатериалы.Количество;
		Движение.МОЛ = ЭтотОбъект.Водитель;
		Движение.Ссылка = ЭтотОбъект.Ссылка;
	
		Движение.Цена = СуммаП;  //

КонецЦикла;
Показать
7. SharpBrain 25.01.20 11:03 Сейчас в теме
Вопрос решил таким способом) Всем спасибо)
Для Каждого СтрМатериалы Из ТаблицаМатериалов Цикл
		
		СуммаП = СтрМатериалы.СписанныеПартииБУ.Итог("СуммаСписания");		
		
		Движения.ЗапчастиПриход.Записывать = Истина;
		Движение = Движения.ЗапчастиПриход.Добавить();
		Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
		Движение.Период = Дата;
		Движение.Организация = Организация;
		
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ТребованиеНакладнаяМатериалы.Количество КАК КоличествоЗапчастей
		|ИЗ
		|	Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
		|ГДЕ
		|	ТребованиеНакладнаяМатериалы.Номенклатура = &Запчасть";
	
	Запрос.УстановитьПараметр("Запчасть", СтрМатериалы.Номенклатура);
	
	РезультатЗапроса = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	КолВоМатериалов = ВыборкаДетальныеЗаписи.КоличествоЗапчастей;	
	КонецЦикла;
	
	
		Движение.Номенклатура = СтрМатериалы.Номенклатура;
		Движение.Количество = КолВоМатериалов;
		Движение.МОЛ = ЭтотОбъект.Водитель;
		Движение.Ссылка = ЭтотОбъект.Ссылка;
		Движение.Цена = СуммаП;
		Движение.Сумма = СуммаП*КолВоМатериалов;
КонецЦикла;
Показать
Оставьте свое сообщение

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