0
Nutsa12
31.10.12
✎
13:45
|
Здравствуйте. Помогите пожалуйста создать запрос в документе возврат товара. В регистре есть измерения: фирма, товар, контрагент. Ресурсы: ОстатокТовара, ЦенаТовара.
Сейчас у меня так:
/ ********************
//
Процедура ОбработкаПроведения()
Перем Запрос, ТекстЗапроса,НомСтр,ВыбТовар,ВыбКол;
СЗВозврат = СоздатьОбъект("СписокЗначений");
ВыгрузитьТабличнуюЧасть(СЗВозврат, "Товар");
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ДатаДок по ДатаДок;
|Фирма = Регистр.ОстатокТовара.Фирма;
|Товар = Регистр.ОстатокТовара.Товар;
|Контрагент = Регистр.ОстатокТовара.Контрагент;
|ОстатокТовара = Регистр.ОстатокТовара.ОстатокТовара;
|ЦенаТовара = Регистр.ОстатокТовара.ЦенаТовара;
|Функция ОстатокТовараКонОст = КонОст(ОстатокТовара);
|Группировка Контрагент Без Групп;
|Группировка Товар без групп;
|Условие(Товар в СЗВозврат);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
ТЗВозврат = СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(ТЗВозврат);
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
НомСтр = 0;
Если ТЗВозврат.НайтиЗначение(Товар,НомСтр, "Товар") =1 Тогда
ТЗВозврат.ПолучитьСтрокуПоНомеру(НомСтр);
ВыбКол=ТЗВозврат.ОстатокТовараКонОст;
Если ВыбКол <= Количество Тогда
Сообщить(Шаблон("Контрагент [Контрагент] покупал [ВыбКол], а возвращает [Количество]"));
СтатусВозврата(0);
КонецЕсли;
КонецЕсли;
КонецЦикла;
ВыбратьСтроки();
Пока ПолучитьСтроку()>0 Цикл
Если Количество > 0 Тогда
Регистр.ОстатокТовара.Контрагент = Контрагент;
Регистр.ОстатокТовара.Товар = Товар;
Регистр.ОстатокТовара.ОстатокТовара = Количество;
Регистр.ОстатокТовара.ЦенаТовара = ЦенаТовара;
Регистр.ОстатокТовара.ДвижениеПриходВыполнить();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
И при выводе сообщения выводится общий остаток товара. Как сделать чтобы на одного клиента. Я такая понимаю надо группировку добавить?
|
|