Как сделать движение по одному регистру 2 раза?

1. zoeh 31 26.09.24 08:48 Сейчас в теме
	Пока Выборка.Следующий() Цикл
		Если Выборка.КоличествоОстаток<0 Тогда
			Продолжить;
		КонецЕсли;
		// регистр ПартииТоваровНаСкладах Приход
		
		Движения.ПартииТоваровНаСкладах.Записывать = Истина;
		Движения.ПартииТоваровНаСкладах.Очистить();
		Движение = Движения.ПартииТоваровНаСкладах.Добавить();
		Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
		Движение.Период = Дата;
		Движение.Номенклатура = Аппарат;
		Движение.Склад = Склад;
		Движение.СерияНоменклатуры = Выборка.СерияНоменклатуры;
		ЗапомненнаяСерия = Выборка.СерияНоменклатуры;
		
		Если Выборка.КоличествоОстаток <= Кол Тогда
			СписываемоеКоличество = Выборка.КоличествоОстаток
			
		Иначе
			СписываемоеКоличество = Кол;
		КонецЕсли;
		Движение.Количество = СписываемоеКоличество;
		Кол=Кол - СписываемоеКоличество;
		
		
		Стоимость = Выборка.СтоимостьОстаток/Выборка.КоличествоОстаток;
		Движение.Стоимость = Стоимость*СписываемоеКоличество;
		Удорожание = Удорожание+Стоимость;
		Если Кол <=0 Тогда
			Прервать;
		КонецЕсли;
	КонецЦикла;
*****************************
	Движение = Движения.ПартииТоваровНаСкладах.Добавить();
	Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
	Движение.Период = Дата;
	Движение.Номенклатура = Аппарат;
	Движение.Склад = Склад;
	Движение.СерияНоменклатуры = ЗапомненнаяСерия;
	Движение.Количество = Количество;
	Движение.Стоимость = Удорожание;

Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2033930 26.09.24 09:24 Сейчас в теме
Пока Выборка.Следующий() Цикл
        // ...
        Движения.ПартииТоваровНаСкладах.Очистить();
        Движение = Движения.ПартииТоваровНаСкладах.Добавить();
Прям кипятком!
5. zoeh 31 26.09.24 11:21 Сейчас в теме
(2) а ля конструктор движений!!!

ну эти строчки я конечно переместил за цикл
Движения.ПартииТоваровНаСкладах.Записывать = Истина;
Движения.ПартииТоваровНаСкладах.Очистить();
3. user-z99999 70 26.09.24 10:46 Сейчас в теме
Эту строку вообще не использовать, например.
Движения.ПартииТоваровНаСкладах.Записывать = Истина;


Движения.ПартииТоваровНаСкладах.Записать();

Движения.ПартииТоваровНаСкладах.Записать();

Бывает можно так написать
Движения.ПартииТоваровНаСкладах.Записать(Истина); // это по-умолчанию, замещать
Движения.ПартииТоваровНаСкладах.Записать(Ложь); // не замещать существующие
4. VZyryanov 26.09.24 11:08 Сейчас в теме
Уберите из тела цикла Очистить:

    Движения.ПартииТоваровНаСкладах.Записывать = Истина;
    Движения.ПартииТоваровНаСкладах.Очистить();

    Пока Выборка.Следующий() Цикл
        Если Выборка.КоличествоОстаток<0 Тогда
            Продолжить;
        КонецЕсли;
        // регистр ПартииТоваровНаСкладах Приход
        
        Движение = Движения.ПартииТоваровНаСкладах.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;

Показать
Оставьте свое сообщение

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