Этот кусок кода как раз и формирует таблицу остатков которая дальше и упаковывается в ХМЛ файл с остатками Rests_*.xml
//|ВЫБРАТЬ РАЗРЕШЕННЫЕ
//| НоменклатураСХарактеристиками.Номенклатура КАК Номенклатура,
//| НоменклатураСХарактеристиками.НоменклатураИдентификатор,
//| НоменклатураСХарактеристиками.Характеристика КАК Характеристика,
//| НоменклатураСХарактеристиками.ХарактеристикаИдентификатор,
//| ТоварыОстатки.Склад КАК Склад,
//| ВЫБОР
//| КОГДА ТоварыОстатки.Склад.Б_Идентификатор = """"
//| ТОГДА ТоварыОстатки.Склад
//| ИНАЧЕ ТоварыОстатки.Склад.Б_Идентификатор
//| КОНЕЦ КАК СкладИдентификатор,
//| ЕСТЬNULL(ТоварыОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ТоварыКПередачеСоСкладовОстатки.КоличествоОстаток, 0) КАК Остаток
//|ПОМЕСТИТЬ ВремОстатки
//|ИЗ
//| ВремНоменклатураСХарактеристиками КАК НоменклатураСХарактеристиками
//| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВремТоварыНаСкладахОстаткиПоСкладам КАК ТоварыОстатки
Прикол в том что если сцепить таблицу "ВремНоменклатураСХарактеристиками" с таблицей "ВремТоварыНаСкладахОстаткиПоСкладам", которая формируется на основании виртуальной таблицы остатков, в нее попадают только не нулевые остатки. Соответственно при внутреннем соединении отсекаются те товары у которых остаток равен 0.
Я же предлагаю, создать дополнительную виртуальную таблицу "ВремНоменклатураСХарактеристикамиСклады" в которой будут содержаться еще и склады по всем товарам, далее через левое соединение прибиваются остатки. В таком случае в обмен попадут нулевые остатки по всем складам участвующим в обмене с сайтом.
//|ВЫБРАТЬ РАЗРЕШЕННЫЕ
//| НоменклатураСХарактеристиками.Номенклатура КАК Номенклатура,
//| НоменклатураСХарактеристиками.НоменклатураИдентификатор,
//| НоменклатураСХарактеристиками.Характеристика КАК Характеристика,
//| НоменклатураСХарактеристиками.ХарактеристикаИдентификатор,
//| ТоварыОстатки.Склад КАК Склад,
//| ВЫБОР
//| КОГДА ТоварыОстатки.Склад.Б_Идентификатор = """"
//| ТОГДА ТоварыОстатки.Склад
//| ИНАЧЕ ТоварыОстатки.Склад.Б_Идентификатор
//| КОНЕЦ КАК СкладИдентификатор,
//| ЕСТЬNULL(ТоварыОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ТоварыКПередачеСоСкладовОстатки.КоличествоОстаток, 0) КАК Остаток
//|ПОМЕСТИТЬ ВремОстатки
//|ИЗ
//| ВремНоменклатураСХарактеристиками КАК НоменклатураСХарактеристиками
//| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВремТоварыНаСкладахОстаткиПоСкладам КАК ТоварыОстатки
Прикол в том что если сцепить таблицу "ВремНоменклатураСХарактеристиками" с таблицей "ВремТоварыНаСкладахОстаткиПоСкладам", которая формируется на основании виртуальной таблицы остатков, в нее попадают только не нулевые остатки. Соответственно при внутреннем соединении отсекаются те товары у которых остаток равен 0.
Я же предлагаю, создать дополнительную виртуальную таблицу "ВремНоменклатураСХарактеристикамиСклады" в которой будут содержаться еще и склады по всем товарам, далее через левое соединение прибиваются остатки. В таком случае в обмен попадут нулевые остатки по всем складам участвующим в обмене с сайтом.