Здравствуйте, посмотрел в отладчике (скрин1)какие значения возвращаются с "ВыборкаТовар.КоличествоОстаток" и "ВыборкаТовар.Количество" и оба эти значения число. с чем может быть связана тогда эта ошибка (Строка с ошибкой находится после 3 запроса)?

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