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