//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
// регистр Остатки Приход
Движения.Остатки.Записывать = Истина;
Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
Движение = Движения.Остатки.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Товар = ТекСтрокаМатериалы.Наименование;
Движение.Склад = Склад;
Движение.Количество = ТекСтрокаМатериалы.Количество;
Движение.Комментарий = Комментарий;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Модуль формы документа «Приходная накладная»
&НаКлиенте
Процедура МатериалыКоличествоПриИзменении(Элемент)
СтрокаТЧ = Элементы.Материалы.ТекущиеДанные;
НаКлиенте.ЗаполнитьСтрокуТабЧасти(СтрокаТЧ);
КонецПроцедуры
&НаКлиенте
Процедура МатериалыНаименованиеПриИзменении(Элемент)
СтрокаТЧ = Элементы.Материалы.ТекущиеДанные;
СтрокаТЧ.Цена = НаСервере.ВыбратьЦенуНоменклатуры(СтрокаТЧ.Наименование, Объект.ТипЦены, Объект.Дата);
НаКлиенте.ЗаполнитьСтрокуТабЧасти(СтрокаТЧ);
КонецПроцедуры
Модуль документа «Расходная накладная»
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ЗапросОстатки=Новый Запрос;
ЗапросОстатки.Текст="ВЫБРАТЬ
| ЕСТЬNULL(ОстаткиОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
| РасходнаяНакладнаяМатериалы.Количество,
|ЕСТЬNULL(ОстаткиОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(РасходнаяНакладнаяМатериалы.Количество, 0) КАК Разница,
| РасходнаяНакладнаяМатериалы.Цена,
| РасходнаяНакладнаяМатериалы.Наименование КАК Товар,
| РасходнаяНакладнаяМатериалы.Сумма
|ИЗ
| Документ.РасходнаяНакладная.Материалы КАК РасходнаяНакладнаяМатериалы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Остатки.Остатки( | &дата,
| Склад = &Склад) КАК ОстаткиОстатки
| ПО РасходнаяНакладнаяМатериалы.Наименование = ОстаткиОстатки.Товар |ГДЕ
| РасходнаяНакладнаяМатериалы.Ссылка = &Ссылка";
ЗапросОстатки.УстановитьПараметр("Ссылка",Ссылка);
ЗапросОстатки.УстановитьПараметр("Склад",Склад);
ЗапросОстатки.УстановитьПараметр("Дата",Ссылка.Дата);
РезультатЗапроса=ЗапросОстатки.Выполнить();
ВыборкаОстатки=РезультатЗапроса.Выбрать();
Пока ВыборкаОстатки.Следующий()Цикл
Если ВыборкаОстатки.Товар.ВидНоменклатуры =
Перечисления.ВидНоменклатуры.Товар И ВыборкаОстатки.Разница < 0 Тогда Сообщить("Недостаточно " + сокрП(ВыборкаОстатки.Товар) + " " + -ВыборкаОстатки.Разница + " шт.");
Отказ=Истина;
КонецЕсли;
КонецЦикла;
Движения.Остатки.Записывать = Истина;
Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
Если ТекСтрокаМатериалы.Наименование.ВидНоменклатуры = Перечисления.ВидНоменклатуры.Товар Тогда
Движение = Движения.Остатки.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Товар = ТекСтрокаМатериалы.Наименование;
Движение.Склад = Склад;
Движение.Количество = ТекСтрокаМатериалы.Количество;
Достарыңызбен бөлісу: |