Untitled
unknown
plain_text
2 years ago
3.7 kB
7
Indexable
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// ДВИЖЕНИЯ ПО РЕГИСТРУ ОСТАТКИ НОМЕНКЛАТУРЫ
// Получение текущего метода списания и регистратора установки метода списания
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УчетнаяПолитикаСрезПоследних.Регистратор,
| УчетнаяПолитикаСрезПоследних.МетодСписания
|ИЗ
| РегистрСведений.УчетнаяПолитика.СрезПоследних(&ДатаСреза, ) КАК УчетнаяПолитикаСрезПоследних";
Запрос.УстановитьПараметр("ДатаСреза", Дата);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не заполнена учетная политика.";
Сообщение.Сообщить();
Отказ = Истина;
Возврат;
КонецЕсли;
// Если текущий метод списания - по средней, то в качестве партии берем документ установки партии, иначе - текущий документ
Данные = Результат.Выбрать();
Данные.Следующий();
Партия = ?(Данные.МетодСписания = Перечисления.МетодыСписания.ПоСредней, Данные.Регистратор, Ссылка);
// Формирование набора записей регистра на основании сгруппированных строк табличной части
Движения.ОстаткиНоменклатуры.Записывать = Истина;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
| СУММА(ПриходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
| СУММА(ПриходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
|ИЗ
| Документ.ПриходнаяНакладная.СписокНоменклатуры КАК ПриходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| ПриходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Движение = Движения.ОстаткиНоменклатуры.ДобавитьПриход();
Движение.Период = Дата;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Партия = Партия;
Движение.Количество = Выборка.Количество;
Движение.Сумма = Выборка.Сумма;
КонецЦикла;
КонецПроцедуры
Editor is loading...