Не, ну до чего же смешно, а?

Функция ОстатокТовара(Товар, ДатаПо, Магазин, ТекДок) Экспорт
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС
|Период с {Константа.ДатаУчетаОстатков} по {ДатаПо};
|ОбрабатыватьДокументы Все;
|Наименование = Документ.ПриходТовара.Наименование;
|Склад = Документ.ПриходТовара.Магазин;
|Кол = Документ.ПриходТовара.Кол;
|Группировка документ;
|Функция Остаток = Сумма(Кол);
|Условие (Склад=Магазин);
|Условие (Наименование=Товар);
|";//}}ЗАПРОС
док = СоздатьОбъект("Документ.КассовыйЧек");
док.ВыбратьДокументы(ДатаПо,ДатаПо);
Расход = 0;
Пока док.ПолучитьДокумент()=1 Цикл
Если (док.Магазин=Магазин) и (док.ТекущийДокумент()<>ТекДок) Тогда
док.ВыбратьСтроки();
Пока док.ПолучитьСтроку()=1 Цикл
Если СокрЛП(док.БарКод)=СокрЛП(Товар.Код) Тогда
Расход = Расход + док.Кол;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
Сообщить("Произошла ошибка при выборке остатков, повторите ввод кол-ва!", "!");
Возврат 0;
КонецЕсли;
Приход = 0;
Пока Запрос.Группировка(1)=1 Цикл
Приход = Приход + Запрос.Остаток;
КонецЦикла;
Возврат Приход - Расход;
КонецФункции