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