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