ВЫБРАТЬ
НоменклатураСпр.Ссылка,
НоменклатураСпр.Наименование,
НоменклатураСпр.Код,
НоменклатураСпр.Артикул,
РезервОстатки.КвоОстаток КАК Резерв,
СкладОстатки.КвоОстаток КАК Остаток,
ЕСТЬNULL(СкладОстатки.КвоОстаток - РезервОстатки.КвоОстаток, 0) КАК Свободно
ИЗ
Справочник.Номенклатура КАК НоменклатураСпр
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Склад.Остатки(,) КАК СкладОстатки
ПО НоменклатураСпр.Ссылка = СкладОстатки.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Резерв.Остатки(,) КАК РезервОстатки
ПО НоменклатураСпр.Ссылка = РезервОстатки.Номенклатура
Остаток - показывает правильно, резерв всегда ноль, независимо от того есть-ли там что-то. "свободно" тоже всегда ноль.
Тоесть неправильно считает свободно
(4) в данном случае будет NULL и это нормально), если нет остатка зачем вычитать резерв))
Конечно (1) правильно, я просто считал, что остатки - левая таблица. Не заметил, что к справочнику присоединяем
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший