Денис, спасибо за совет. На самом деле полный текст выглядит так:
Процедура ОбработкаПроведения(Отказ, Режим)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ВложенныйЗапрос.Номенклатура КАК Номенклатура,
| Константы.МаксПроцентПрибыли,
| СУММА(ЕСТЬNULL(ВложенныйЗапрос.КоличествоОстаток, 0)) КАК Остатки,
| ЕСТЬNULL(ВложенныйЗапрос.Количество, 1) КАК КоличествоВДок
|ИЗ
| Константы КАК Константы,
| (ВЫБРАТЬ
| РасходнаяТовары.Номенклатура КАК Номенклатура,
| СУММА(РасходнаяТовары.Количество) КАК Количество,
| ПартииТоваровОстатки.Партия КАК Партия,
| ПартииТоваровОстатки.КоличествоОстаток КАК КоличествоОстаток,
| Константы.МаксПроцентПрибыли КАК МаксПроцентПрибыли
| ИЗ
| Константы КАК Константы,
| Документ.Расходная.Товары КАК РасходнаяТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваров.Остатки КАК ПартииТоваровОстатки
| ПО РасходнаяТовары.Номенклатура = ПартииТоваровОстатки.Номенклатура
| ГДЕ
| РасходнаяТовары.Ссылка = &Ссылка
| И ПартииТоваровОстатки.СтоимостьОстаток * (1 + Константы.МаксПроцентПрибыли / 100) <= РасходнаяТовары.Цена
|
| СГРУППИРОВАТЬ ПО
| РасходнаяТовары.Номенклатура,
| ПартииТоваровОстатки.Партия,
| ПартииТоваровОстатки.КоличествоОстаток,
| Константы.МаксПроцентПрибыли) КАК ВложенныйЗапрос
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваров.Остатки(
| &МоментВремени,
| Номенклатура В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| РасходнаяТовары.Номенклатура
| ИЗ
| Документ.Расходная.Товары КАК РасходнаяТовары
| ГДЕ
| РасходнаяТовары.Ссылка = &Ссылка)) КАК ПартииТоваровОстатки
| ПО ВложенныйЗапрос.Номенклатура = ПартииТоваровОстатки.Номенклатура
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Номенклатура,
| Константы.МаксПроцентПрибыли,
| ЕСТЬNULL(ВложенныйЗапрос.Количество, 1)";
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если выборка.КоличествоВДок>Выборка.Остатки Тогда
Сообщить("Не Хватает "+Выборка.Номенклатура+" есть "+Выборка.Остатки+" из затребованных "+выборка.КоличествоВДок);
Отказ=Истина;
КонецЕсли;
КонецЦикла;
Если Отказ Тогда
Возврат;
КонецЕсли;
То был вложенный запрос где я выбираю партии, стоимость которых проходит по условию ПартииТоваровОстатки.СтоимостьОстаток * (1 + Константы.МаксПроцентПрибыли / 100) <= РасходнаяТовары.Цена. А вообще весь вышеприведённый запрос мне необходим для получения полного количества остатка товаров во всех партиях, которые удовлетворяют этому условию. Но вот только если я выбираю наименование товара, который не был ни разу оприходован или устанавливаю Цену в Расходной по которой вообще остатков в партиях нет, то вместо значения полей запроса содержат "ошибка чтения значение" без типа. В итоге расходная проводится( Пробовал использовать ЕстьNull(), но ничего тоже не вышло(