Как упростить копирование строки тз в другую тз

1. Scar_rus 04.08.23 14:16 Сейчас в теме
Есть код
Для каждого Строка из Комплектующие Цикл
		КоличествоНом = Строка.Количество;
		СуммаПартий = 0;
		ДостаточноПартий = Ложь;
		Партия = 0;
		
		Отбор = Новый Структура();
		Отбор.Вставить("Номенклатура",Строка.Номенклатура);
		Партии = Серии.НайтиСтроки(Отбор);
				
		Для каждого Партия из Партии Цикл
			Если Партия.Количество >= 0 Тогда
				НовоеКомплект = НовыеКомплектующие.Добавить();
				КомплектДляКопии = Комплектующие.Скопировать(Новый Структура("Номенклатура",Строка.Номенклатура));
				НовоеКомплект.СчетУчетаБУ = КомплектДляКопии[0].СчетУчетаБУ;
				НовоеКомплект.СчетУчетаНУ = КомплектДляКопии[0].СчетУчетаНУ;
				НовоеКомплект.Номенклатура = КомплектДляКопии[0].Номенклатура;
				НовоеКомплект.Коэффициент = КомплектДляКопии[0].Коэффициент;
				НовоеКомплект.ЕдиницаИзмерения = КомплектДляКопии[0].ЕдиницаИзмерения;
				НовоеКомплект.НомерСтроки = КомплектДляКопии[0].НомерСтроки;
				
				Если КоличествоНом - Партия.Количество > 0 Тогда
					НовоеКомплект.Количество =  Партия.Количество;
					НовоеКомплект.СерияНоменклатуры = Партия.СерияНоменклатуры;
					КоличествоНом = КоличествоНом - Партия.Количество;
					СуммаПартий = СуммаПартий + Партия.Количество;
				Иначе
					НовоеКомплект.Количество = КоличествоНом;
					НовоеКомплект.СерияНоменклатуры = Партия.СерияНоменклатуры;
					СуммаПартий = СуммаПартий + Партия.Количество;
					Прервать;
				КонецЕсли;
			Иначе
				Сообщить("Отрицательный остаток по серии " + Партия.СерияНоменклатуры + " номенклатуры " + Строка.Номенклатура)
			КонецЕсли;                      
		КонецЦикла;
		
	КонецЦикла
Показать


Как оптимизировать вот этот кусок кода
НовоеКомплект = НовыеКомплектующие.Добавить();
КомплектДляКопии = Комплектующие.Скопировать(Новый Структура("Номенклатура",Строка.Номенклатура));
НовоеКомплект.СчетУчетаБУ = КомплектДляКопии[0].СчетУчетаБУ;
НовоеКомплект.СчетУчетаНУ = КомплектДляКопии[0].СчетУчетаНУ;
НовоеКомплект.Номенклатура = КомплектДляКопии[0].Номенклатура;
НовоеКомплект.Коэффициент = КомплектДляКопии[0].Коэффициент;
НовоеКомплект.ЕдиницаИзмерения = КомплектДляКопии[0].ЕдиницаИзмерения;
НовоеКомплект.НомерСтроки = КомплектДляКопии[0].НомерСтроки;

так, чтоб разом перенести все колонки в добавляемую строку, а не прописывать это для каждой отдельно
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. newlogin1 04.08.23 14:24 Сейчас в теме
(1)Так ЗаполнитьЗначенияСвойств() же
3. Scar_rus 04.08.23 14:30 Сейчас в теме
НовоеКомплект = НовыеКомплектующие.Добавить();
ЗаполнитьЗначенияСвойств(НовоеКомплект, Комплектующие.Скопировать(Новый Структура("Номенклатура",Строка.Номенклатура)))

Так?
(2)
4. newlogin1 04.08.23 14:33 Сейчас в теме
(3)Не, если вам надо скопировать строки из одной в другую по отбору (по номенклатуре например) то лучше сделать так

Для каждого Ном Из Список Цикл
СтрокиСкопировать = Таблицаисходная.найтистроки(Новый структура("Номенклатура", Ном));
Для каждого НомСкопировать Из СтрокиСкопировать Цикл
ЗаполнитьЗначенияСвойств(ТбалицаНовая.Добавить(), НомСкопировать);
КонецЦикла;
КонецЦикла;


Как то так
5. Scar_rus 04.08.23 14:36 Сейчас в теме
(4)Я четко написал что мне нужно сделать. Мне надо чтоб Строка из Комплектующие копировалась в НовоеКомплект из НовыеКомплектующие, или грубо говоря

Я хочу чтоб было так,

НовоеКомплект = НовыеКомплектующие.Добавить();
КомплектДляКопии = Комплектующие.Скопировать(Новый Структура("Номенклатура",Строка.Номенклатура));
НовоеКомплект = КомплектДляКопии[0];


но только он работало корректно, потому что понятно .что после подобной операции в НовыеКомплектующие будет пустая строка
6. nomad_irk 76 04.08.23 14:48 Сейчас в теме
(5)
НовоеКомплект = НовыеКомплектующие.Добавить();
КомплектДляКопии = Комплектующие.Скопировать(Новый Структура("Номенклатура",Строка.Номенклатура));
ЗаполнитьЗначенияСвойств(НовоеКомплект, КомплектДляКопии[0]);
7. Scar_rus 04.08.23 14:49 Сейчас в теме
8. lmnlmn 69 04.08.23 14:59 Сейчас в теме
(1)
Как оптимизировать вот этот кусок кода

НовоеКомплект = НовыеКомплектующие.Добавить();
ЗаполнитьЗначенияСвойств(НовоеКомплект, Строка);

Если я все правильно понял.
Оставьте свое сообщение

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