Процедура ОбработкаЗаполнения(ДанныеЗаполнения

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