Если документ создан новым или путем копирования то данная процедура работает как надо.
При выборе номенклатуры он подставляет ЦенаИзготовителя в поле СтоимостьОбеда
Если же надо пере добрать номенклатуру из-за изменившийся ЦенаИзготовителя и пересчитать для всех в списке она не работает(

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

    СтоимостьОбедаПриИзменении();
    КонецПроцедуры
```
---
Спасибо за подсказку со временем надо приводить обе даты к одному знаменателю или дату самого документа на конец дня. И еще вопрос в запросе есть данные которые по сути не нужны увеличивают они время обработки запроса или не критично?

```1c
    // Вставить содержимое обработчика.
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ПартииТМЦРегламентныеОстатки.Номенклатура,
    | ПартииТМЦРегламентныеОстатки.МестоХранения,
    | ПартииТМЦРегламентныеОстатки.МОЛ,
    | ПартииТМЦРегламентныеОстатки.ВидНоменклатуры,
    | ПартииТМЦРегламентныеОстатки.ДокументПоступления,
    | ПартииТМЦРегламентныеОстатки.Серия,
    | ПартииТМЦРегламентныеОстатки.ЦенаИзготовителя,
    | ПартииТМЦРегламентныеОстатки.ХарактеристикаНоменклатуры,
    | ПартииТМЦРегламентныеОстатки.КоличествоОстаток,
    | ПартииТМЦРегламентныеОстатки.СуммаОстаток
    |ИЗ
    | РегистрНакопления.ПартииТМЦРегламентные.Остатки КАК ПартииТМЦРегламентныеОстатки
    |ГДЕ
    | ПартииТМЦРегламентныеОстатки.МестоХранения = &МестоХранения
    | И ПартииТМЦРегламентныеОстатки.Номенклатура = &Номенклатура
    | И КонецПЕРИОДА(ПартииТМЦРегламентныеОстатки.ДокументПоступления.Дата, ДЕНЬ) = &Дата" ;
    Запрос.УстановитьПараметр("Дата",КонецДня(Дата));
    Запрос.УстановитьПараметр("МестоХранения", МестоХранения);
    Запрос.УстановитьПараметр("Номенклатура", НоменкОбед);
    Итог = Запрос.Выполнить().Выбрать();
    Пока Итог.Следующий() Цикл
    СтоимостьОбеда = Итог.ЦенаИзготовителя;
    КонецЦикла;
    СтоимостьОбедаПриИзменении();
```
---
| И НАЧАЛОПЕРИОДА(ПартииТМЦРегламентныеОстатки.ДокументПоступления.Дата, ДЕНЬ) = &Дата" ;
Вот тут точно неправильно. Записанный документ будет иметь дату отличную от начало дня. Созданный но еще не записанный как раз дата начала дня.
---
Я и конецдня использовал один черт не работает Даже делал время ДокументПоступления и Ведомости одинаковое ни фурычыт (((
---
Запрос.УстановитьПараметр("Дата",НачалоДня(Дата));
---
Хотя вру использовал эту строку И ПартииТМЦРегламентныеОстатки.ДокументПоступления.Дата = &Дата" ; записал оба документа на 12:00:00 и сработало!!!
Буду бодаться с датами
---
Проведенный документ делает движения, которые так же учитываются запросом. Поэтому, необходимо брать остатки в регистре на момент до совершения документом движений. Смотрите в сторону использования не даты в параметре, а МоментаВремени и Границы. Например: Новый Граница(ДокументСсылка.МоментВремени(),ВидГраницы.Исключая)
---
Документ не проведен! только записан да и какая разница Сам запрос в консоле запроса все находит
---
поставь точку останова да проверь, что у тебя там в запрос засылается...
думаю параметры, не те какие нужно.
Тут в самом коде нет никаких подвохов или ошибок, как говорится, ломаться нечему.
---
Вот что выводит Итог в итоге он пролетает и все но почему это все работает при создании или копировании как только документ записан все не выбирает(
Итог
МестоХранения Ошибка чтения значения
Номенклатура Ошибка чтения значения
ЦенаИзготовителя Ошибка чтения значения
---
А вот как при создании нового Что касается сомого запроса то я уже и так и сяк его ломал все ни как
---
ты параметры запроса смотри, а не то, что запрос выдает в конце.
---
Параметры он все нормально берет.
---
Спасибо за подсказку со временем надо приводить обе даты к одному знаменателю или дату самого документа на конец дня. И еще вопрос в запросе есть данные которые по сути не нужны увеличивают они время обработки запроса или не критично?

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