PDA

Просмотр полной версии : ОстаткиНоменклатурыОстатк и



kris_1
04.08.2012, 18:47
Почему в результате выполнения запроса "ВыборкаНоменклатура.Колич� �ствоОстаток" становится равное нулюИИ хотя на самом деле это не такИИ Помогите разобраться, плииииз!!!!!


Процедура ОбработкаПроведения(Отказ, Режим)

Движения.ОстаткиНоменклат� �ры.Записывать = Истина;

// ОБЕСПЕЧЕНИЕ НЕИЗМЕННОСТИ ДАННЫХ МЕЖДУ РАСЧЕТОМ И ОКОНЧАНИЕМ ПРОВЕДЕНИЯ
Блокировка=Новый БлокировкаДанных;
ЭлементБлокировки=Блокиро� �ка.Добавить("РегистрНакопления.Остатки� �оменклатуры");
ЭлементБлокировки.Режим=Ре жимБлокировкиДанных.Исклю� �ительный;
ЭлементБлокировки.Источни� �Данных=Товары.Выгрузить(,"Номенклатура");
ЭлементБлокировки.Использ� �ватьИзИсточникаДанных("Номенклатура","Номенклатура");
Блокировка.Заблокировать();

//УДАЛЕНИЕ СОБСТВЕННЫХ СТАРЫХ ДВИЖЕНИЙ ПО РЕГИСТРУ ОСТАТКИ НОМЕНКЛАТУРЫ
Движения.ОстаткиНоменклат� �ры.Записать();

//ПОЛУЧЕНИЕ ДАННЫХ ПО ТОВАРАМ
Запрос=Новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
| РасходнаяНакладнаяТовары.� �оменклатура КАК Номенклатура,
| СУММА(РасходнаяНакладнаяТ� �вары.Количество) КАК Количество
|ПОМЕСТИТЬ ТабДок
|ИЗ
| Документ.РасходнаяНакладн� �я.Товары КАК РасходнаяНакладнаяТовары
|ГДЕ
| РасходнаяНакладнаяТовары.� �сылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяТовары.� �оменклатура
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТабДок.Номенклатура КАК Номенклатура,
| ТабДок.Количество КАК Количество,
| ЕСТЬNULL(ОстаткиНоменклатур� �Остатки.СуммаВрубляхОстат ок, 0) КАК СуммаВрубляхОстаток,
| ЕСТЬNULL(ОстаткиНоменклатур� �Остатки.СуммаВВалютеОстат ок, 0) КАК СуммаВВалютеОстаток,
| ЕСТЬNULL(ОстаткиНоменклатур� �Остатки.КоличествоОстаток , 0) КАК КоличествоОстаток
|ИЗ
| ТабДок КАК ТабДок
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Остатки� �оменклатуры.Остатки(
| &Момент,
| Номенклатура В
| (ВЫБРАТЬ
| ТабДок.Номенклатура
| ИЗ
| ТабДок КАК ТабДок)) КАК ОстаткиНоменклатурыОстатк и
| ПО ТабДок.Номенклатура = ОстаткиНоменклатурыОстатк и.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура
|ИТОГИ
| МАКСИМУМ(Количество),
| СУММА(СуммаВрубляхОстаток) ,
| СУММА(СуммаВВалютеОстаток) ,
| СУММА(КоличествоОстаток)
|ПО
| Номенклатура";

Если Режим=РежимПроведенияДоку� �ента.Оперативный Тогда
Запрос.УстановитьПараметр("Момент", Неопределено);
Иначе
Запрос.УстановитьПараметр("Момент", МоментВремени());
КонецЕсли;
Запрос.УстановитьПараметр("Ссылка", Ссылка);

Результат=Запрос.Выполнить ();
ВыборкаНоменклатура=Резул� �тат.Выбрать(ОбходРезульта� �аЗапроса.ПоГруппировкам);
Пока ВыборкаНоменклатура.Следу� �щий() Цикл

//КОНТРОЛЬ ОТРИЦАТЕЛЬНЫХ ОСТАТКОВ СПИСЫВАЕМЫХ ТОВАРОВ
Если ВыборкаНоменклатура.Колич� �ство > ВыборкаНоменклатура.Колич� �ствоОстаток Тогда

Отказ=Истина;
Сообщение=Новый СообщениеПользователю;
Нехватка=ВыборкаНоменклат� �ра.Количество-ВыборкаНоменклатура.Колич� �ствоОстаток;
Сообщение.Текст="В документе №"+Номер+" от "+Дата+" не хватает "+Нехватка+" единиц товара "+ВыборкаНоменклатура.Номен клатура;
Сообщение.Сообщить();

КонецЕсли;
Если Отказ Тогда
Продолжить;
КонецЕсли;
...


т.е. получается, что остатки равны нулю, а это не так, и всегда будет выводиться сообщения, что не хватает товара...(((((( почемуИИИ?

kris_1
04.08.2012, 21:15
Спасибо, ошибка найдена))