Решаю задачу по БУ.
В выборке по итогам Количество остаток видит правильно, там 30 единиц. А вот в ВыборкеДетальныеЗаписи.Количество остаток в отладке идет 0, почему, понять не могу.

Вот код:

```1c
    #Область БухгалтерскийУчет

    Движения.Управленческий.Записать();

    Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Управленческий");
    ЭлементБлокировки.УстановитьЗначение("Счет", ПланыСчетов.Управленческий.Товары);
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура, "Номенклатура");
    Блокировка.Заблокировать();

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
    | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК КоличествоВДокументе,
    | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК СуммаВДокументе
    |ПОМЕСТИТЬ ТЧ_Товары
    |ИЗ
    | Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
    |ГДЕ
    | РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
    |
    |ИНДЕКСИРОВАТЬ ПО
    | Номенклатура
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ТЧ_Товары.Номенклатура КАК Номенклатура,
    | ТЧ_Товары.КоличествоВДокументе КАК КоличествоВДокументе,
    | ТЧ_Товары.СуммаВДокументе КАК СуммаВДокументе,
    | ТЧ_Товары.Номенклатура.Представление,
    | ЕСТЬNULL(УправленческийОстатки.КоличествоОстатокДт, 0) КАК КоличествоОстаток,
    | ЕСТЬNULL(УправленческийОстатки.СуммаОстатокДт, 0) КАК СуммаОстаток,
    | УправленческийОстатки.Субконто2 КАК СрокГодности
    |ИЗ
    | ТЧ_Товары КАК ТЧ_Товары
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
    | &МоментВремени,
    | Счет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.Товары),
    | &Субконто,
    | Субконто1 В
    | (ВЫБРАТЬ
    | ТЧ_Товары.Номенклатура
    | ИЗ
    | ТЧ_Товары КАК ТЧ_Товары)) КАК УправленческийОстатки
    | ПО ТЧ_Товары.Номенклатура = УправленческийОстатки.Субконто1
    |
    |УПОРЯДОЧИТЬ ПО
    | УправленческийОстатки.Субконто2
    |ИТОГИ
    | МАКСИМУМ(КоличествоВДокументе),
    | СУММА(КоличествоОстаток),
    | МАКСИМУМ(СуммаОстаток)
    |ПО
    | Номенклатура";

    Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
    Запрос.УстановитьПараметр("Ссылка", Ссылка);

    Субконто = Новый Массив;
    Субконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура);
    Субконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.СрокГодности);

    Запрос.УстановитьПараметр("Субконто", Субконто);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Движения.Управленческий.Записывать = Истина;

    Пока ВыборкаНоменклатура.Следующий() Цикл
    Если ВыборкаНоменклатура.КоличествоВДокументе > ВыборкаНоменклатура.КоличествоОстаток Тогда
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "БУ: По номенклатуре " + ВыборкаНоменклатура.НоменклатураПредставление + " не хватает товара, в количестве " + (ВыборкаНоменклатура.КоличествоВДокументе - ВыборкаНоменклатура.КоличествоОстаток);
    Сообщение.Сообщить();
    Отказ = Истина;
    Продолжить;
    КонецЕсли;

    Если Не Отказ Тогда

    ОсталосьСписать = ВыборкаНоменклатура.КоличествоВДокументе;

    ВыборкаДетальныеЗаписи = ВыборкаНоменклатура.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() И ОсталосьСписать > 0 Цикл
    КСписанию = Мин(ОсталосьСписать, ВыборкаДетальныеЗаписи.КоличествоОстаток);
    СуммаСписания = ?(Ксписанию = ВыборкаДетальныеЗаписи.КоличествоОстаток, ВыборкаДетальныеЗаписи.СуммаОстаток,
    ВыборкаДетальныеЗаписи.СуммаОстаток / ВыборкаДетальныеЗаписи.КоличествоОстаток * КСписанию);

    Движение = Движения.Управленческий.Добавить();
    Движение.СчетДт = ПланыСчетов.Управленческий.ПрибылиУбытки;
    Движение.СчетКт = ПланыСчетов.Управленческий.Товары;
    Движение.Период = Дата;
    Движение.КоличествоКт = КСписанию;
    Движение.Сумма = СуммаСписания;
    Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = ВыборкаДетальныеЗаписи.Номенклатура;
    Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.СрокГодности] = ВыборкаДетальныеЗаписи.СрокГодности;

    ОсталосьСписать = ОсталосьСписать - КСписанию;

    Движение = Движения.Управленческий.Добавить();
    Движение.СчетДт = ПланыСчетов.Управленческий.Покупатели;
    Движение.СчетКт = ПланыСчетов.Управленческий.ПрибылиУбытки;
    Движение.Период = Дата;
    Движение.Сумма = ВыборкаДетальныеЗаписи.СуммаВДокументе;

    КонецЦикла;
    КонецЕсли;
    КонецЦикла;

    #КонецОбласти
```
---
Разобрался. Вот правильный код:
Движения.Управленческий.Записать();

```1c
    Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Управленческий");
    ЭлементБлокировки.УстановитьЗначение("Счет", ПланыСчетов.Управленческий.Товары);
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура, "Номенклатура");
    Блокировка.Заблокировать();

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
    | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК КоличествоВДокументе
    |ПОМЕСТИТЬ ТЧ_Товары
    |ИЗ
    | Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
    |ГДЕ
    | РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
    |
    |ИНДЕКСИРОВАТЬ ПО
    | Номенклатура
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | УправленческийОстатки.Субконто1 КАК Номенклатура,
    | УправленческийОстатки.Субконто2 КАК СрокГодности,
    | УправленческийОстатки.КоличествоОстатокДт КАК КоличествоОстаток
    |ПОМЕСТИТЬ ВТ_Остатки
    |ИЗ
    | РегистрБухгалтерии.Управленческий.Остатки(
    | &МоментВремени,
    | Счет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.Товары),
    | &Субконто,
    | Субконто1 В
    | (ВЫБРАТЬ
    | ТЧ_Товары.Номенклатура
    | ИЗ
    | ТЧ_Товары КАК ТЧ_Товары)) КАК УправленческийОстатки
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    | УправленческийОстатки.Субконто1 КАК Номенклатура,
    | УправленческийОстатки.СуммаОстатокДт КАК СуммаОстаток
    |ПОМЕСТИТЬ ВТ_Себестоимость
    |ИЗ
    | РегистрБухгалтерии.Управленческий.Остатки(
    | &МоментВремени,
    | Счет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.Товары),
    | &Субконто,
    | Субконто1 В
    | (ВЫБРАТЬ
    | ТЧ_Товары.Номенклатура
    | ИЗ
    | ТЧ_Товары КАК ТЧ_Товары)) КАК УправленческийОстатки
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ТЧ_Товары.Номенклатура КАК Номенклатура,
    | ТЧ_Товары.КоличествоВДокументе КАК КоличествоВДокументе,
    | ТЧ_Товары.Номенклатура.Представление,
    | ВТ_Остатки.СрокГодности КАК СрокГодности,
    | ЕСТЬNULL(ВТ_Остатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    | ЕСТЬNULL(ВТ_Себестоимость.СуммаОстаток, 0) КАК СуммаОстаток
    |ИЗ
    | ТЧ_Товары КАК ТЧ_Товары
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
    | ПО ТЧ_Товары.Номенклатура = ВТ_Остатки.Номенклатура
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Себестоимость КАК ВТ_Себестоимость
    | ПО ТЧ_Товары.Номенклатура = ВТ_Себестоимость.Номенклатура
    |
    |УПОРЯДОЧИТЬ ПО
    | СрокГодности
    |ИТОГИ
    | МАКСИМУМ(КоличествоВДокументе),
    | СУММА(КоличествоОстаток),
    | МАКСИМУМ(СуммаОстаток)
    |ПО
    | Номенклатура";

    Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
    Запрос.УстановитьПараметр("Ссылка", Ссылка);

    Субконто = Новый Массив;
    Субконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура);
    Субконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.СрокГодности);

    Запрос.УстановитьПараметр("Субконто", Субконто);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаИтогов = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Движения.Управленческий.Записывать = Истина;

    Пока ВыборкаИтогов.Следующий() Цикл
    Если ВыборкаИтогов.КоличествоВДокументе > ВыборкаИтогов.КоличествоОстаток Тогда
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "БУ: По номенклатуре " + ВыборкаИтогов.НоменклатураПредставление + " не хватает товара, в количестве " + (ВыборкаИтогов.КоличествоВДокументе - ВыборкаИтогов.КоличествоОстаток);
    Сообщение.Сообщить();
    Отказ = Истина;
    Продолжить;
    КонецЕсли;

    Если Не Отказ Тогда

    ОсталосьСписать = ВыборкаИтогов.КоличествоВДокументе;

    Выборка = ВыборкаИтогов.Выбрать();

    Пока Выборка.Следующий() И ОсталосьСписать > 0 Цикл
    КСписанию = Мин(ОсталосьСписать, Выборка.КоличествоОстаток);
    СуммаСписания = ?(Ксписанию = Выборка.КоличествоОстаток, Выборка.СуммаОстаток,
    Выборка.СуммаОстаток / Выборка.КоличествоОстаток * КСписанию);

    Движение = Движения.Управленческий.Добавить();
    Движение.СчетДт = ПланыСчетов.Управленческий.ПрибылиУбытки;
    Движение.СчетКт = ПланыСчетов.Управленческий.Товары;
    Движение.Период = Дата;
    Движение.КоличествоКт = КСписанию;
    Движение.Сумма = СуммаСписания;
    Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = Выборка.Номенклатура;
    Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.СрокГодности] = Выборка.СрокГодности;

    ОсталосьСписать = ОсталосьСписать - КСписанию;

    Движение = Движения.Управленческий.Добавить();
    Движение.СчетДт = ПланыСчетов.Управленческий.Покупатели;
    Движение.СчетКт = ПланыСчетов.Управленческий.ПрибылиУбытки;
    Движение.Период = Дата;
    Движение.Сумма = СуммаПоДокументу;

    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
```

У меня получается сливалась номенклатура с разными сроками годности и не могла посчитать конкретно по сроку остаток.
---
Срок годности в запросе тоже не видит. Смотрел другие решения, там такой же запрос и все тянет.
---
Разобрался. Вот правильный код:
Движения.Управленческий.Записать();

```1c
    Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Управленческий");
    ЭлементБлокировки.УстановитьЗначение("Счет", ПланыСчетов.Управленческий.Товары);
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура, "Номенклатура");
    Блокировка.Заблокировать();

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
    | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК КоличествоВДокументе
    |ПОМЕСТИТЬ ТЧ_Товары
    |ИЗ
    | Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
    |ГДЕ
    | РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
    |
    |ИНДЕКСИРОВАТЬ ПО
    | Номенклатура
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | УправленческийОстатки.Субконто1 КАК Номенклатура,
    | УправленческийОстатки.Субконто2 КАК СрокГодности,
    | УправленческийОстатки.КоличествоОстатокДт КАК КоличествоОстаток
    |ПОМЕСТИТЬ ВТ_Остатки
    |ИЗ
    | РегистрБухгалтерии.Управленческий.Остатки(
    | &МоментВремени,
    | Счет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.Товары),
    | &Субконто,
    | Субконто1 В
    | (ВЫБРАТЬ
    | ТЧ_Товары.Номенклатура
    | ИЗ
    | ТЧ_Товары КАК ТЧ_Товары)) КАК УправленческийОстатки
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    | УправленческийОстатки.Субконто1 КАК Номенклатура,
    | УправленческийОстатки.СуммаОстатокДт КАК СуммаОстаток
    |ПОМЕСТИТЬ ВТ_Себестоимость
    |ИЗ
    | РегистрБухгалтерии.Управленческий.Остатки(
    | &МоментВремени,
    | Счет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.Товары),
    | &Субконто,
    | Субконто1 В
    | (ВЫБРАТЬ
    | ТЧ_Товары.Номенклатура
    | ИЗ
    | ТЧ_Товары КАК ТЧ_Товары)) КАК УправленческийОстатки
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ТЧ_Товары.Номенклатура КАК Номенклатура,
    | ТЧ_Товары.КоличествоВДокументе КАК КоличествоВДокументе,
    | ТЧ_Товары.Номенклатура.Представление,
    | ВТ_Остатки.СрокГодности КАК СрокГодности,
    | ЕСТЬNULL(ВТ_Остатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    | ЕСТЬNULL(ВТ_Себестоимость.СуммаОстаток, 0) КАК СуммаОстаток
    |ИЗ
    | ТЧ_Товары КАК ТЧ_Товары
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
    | ПО ТЧ_Товары.Номенклатура = ВТ_Остатки.Номенклатура
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Себестоимость КАК ВТ_Себестоимость
    | ПО ТЧ_Товары.Номенклатура = ВТ_Себестоимость.Номенклатура
    |
    |УПОРЯДОЧИТЬ ПО
    | СрокГодности
    |ИТОГИ
    | МАКСИМУМ(КоличествоВДокументе),
    | СУММА(КоличествоОстаток),
    | МАКСИМУМ(СуммаОстаток)
    |ПО
    | Номенклатура";

    Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
    Запрос.УстановитьПараметр("Ссылка", Ссылка);

    Субконто = Новый Массив;
    Субконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура);
    Субконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.СрокГодности);

    Запрос.УстановитьПараметр("Субконто", Субконто);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаИтогов = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Движения.Управленческий.Записывать = Истина;

    Пока ВыборкаИтогов.Следующий() Цикл
    Если ВыборкаИтогов.КоличествоВДокументе > ВыборкаИтогов.КоличествоОстаток Тогда
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "БУ: По номенклатуре " + ВыборкаИтогов.НоменклатураПредставление + " не хватает товара, в количестве " + (ВыборкаИтогов.КоличествоВДокументе - ВыборкаИтогов.КоличествоОстаток);
    Сообщение.Сообщить();
    Отказ = Истина;
    Продолжить;
    КонецЕсли;

    Если Не Отказ Тогда

    ОсталосьСписать = ВыборкаИтогов.КоличествоВДокументе;

    Выборка = ВыборкаИтогов.Выбрать();

    Пока Выборка.Следующий() И ОсталосьСписать > 0 Цикл
    КСписанию = Мин(ОсталосьСписать, Выборка.КоличествоОстаток);
    СуммаСписания = ?(Ксписанию = Выборка.КоличествоОстаток, Выборка.СуммаОстаток,
    Выборка.СуммаОстаток / Выборка.КоличествоОстаток * КСписанию);

    Движение = Движения.Управленческий.Добавить();
    Движение.СчетДт = ПланыСчетов.Управленческий.ПрибылиУбытки;
    Движение.СчетКт = ПланыСчетов.Управленческий.Товары;
    Движение.Период = Дата;
    Движение.КоличествоКт = КСписанию;
    Движение.Сумма = СуммаСписания;
    Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = Выборка.Номенклатура;
    Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.СрокГодности] = Выборка.СрокГодности;

    ОсталосьСписать = ОсталосьСписать - КСписанию;

    Движение = Движения.Управленческий.Добавить();
    Движение.СчетДт = ПланыСчетов.Управленческий.Покупатели;
    Движение.СчетКт = ПланыСчетов.Управленческий.ПрибылиУбытки;
    Движение.Период = Дата;
    Движение.Сумма = СуммаПоДокументу;

    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
```

У меня получается сливалась номенклатура с разными сроками годности и не могла посчитать конкретно по сроку остаток.