Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
3.7 kB
1
Indexable
Never
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
	
	// ДВИЖЕНИЯ ПО РЕГИСТРУ ОСТАТКИ НОМЕНКЛАТУРЫ

	// Получение текущего метода списания и регистратора установки метода списания
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	УчетнаяПолитикаСрезПоследних.Регистратор,
	|	УчетнаяПолитикаСрезПоследних.МетодСписания
	|ИЗ
	|	РегистрСведений.УчетнаяПолитика.СрезПоследних(&ДатаСреза, ) КАК УчетнаяПолитикаСрезПоследних";
	
	Запрос.УстановитьПараметр("ДатаСреза", Дата);
	Результат = Запрос.Выполнить();
	
	Если Результат.Пустой() Тогда
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Не заполнена учетная политика.";
		Сообщение.Сообщить();
		
		Отказ = Истина;
		Возврат;
	КонецЕсли;
	
	// Если текущий метод списания - по средней, то в качестве партии берем документ установки партии, иначе - текущий документ
	Данные = Результат.Выбрать();
	Данные.Следующий();
	Партия = ?(Данные.МетодСписания = Перечисления.МетодыСписания.ПоСредней, Данные.Регистратор, Ссылка);
	
	// Формирование набора записей регистра на основании сгруппированных строк табличной части
	Движения.ОстаткиНоменклатуры.Записывать = Истина;	
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	 "ВЫБРАТЬ
	 |	ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
	 |	СУММА(ПриходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
	 |	СУММА(ПриходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
	 |ИЗ
	 |	Документ.ПриходнаяНакладная.СписокНоменклатуры КАК ПриходнаяНакладнаяСписокНоменклатуры
	 |ГДЕ
	 |	ПриходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
	 |
	 |СГРУППИРОВАТЬ ПО
	 |	ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура";
	
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
		Движение = Движения.ОстаткиНоменклатуры.ДобавитьПриход();
		Движение.Период = Дата;
		Движение.Номенклатура = Выборка.Номенклатура;
		Движение.Партия = Партия;
		Движение.Количество = Выборка.Количество;
		Движение.Сумма = Выборка.Сумма;
	КонецЦикла;
	
КонецПроцедуры