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