База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в УТ 11.5 получить остатки «в наличии» на текущий момент?
- В этой теме 1 ответ, 2 участника, последнее обновление 6 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
3 сентября 2026 в 10:28 #38567
УТ 11.5 как получить вналичии на последний момент ////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ОстатокНаСкладе.Номенклатура КАК Номенклатура,
ОстатокНаСкладе.Характеристика КАК Характеристика,
ОстатокНаСкладе.Склад КАК Склад,
ОстатокНаСкладе.ВНаличии КАК Остаток,
ТоварныеОграничения.СтраховоеКоличествоЗапаса КАК СтраховоеКоличествоЗапаса,
ТоварныеОграничения.МинимальноеКоличествоЗапаса КАК МинимальноеКоличествоЗапаса,
ТоварныеОграничения.МаксимальноеКоличествоЗапаса КАК МаксимальноеКоличествоЗапаса,
ТоварныеОграничения.МетодОбеспеченияПотребностей КАК МетодОбеспеченияПотребностей
ПОМЕСТИТЬ СвободныеОстатки
ИЗ
РегистрНакопления.ЗапасыИПотребности КАК ОстатокНаСкладе
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварныеОграничения КАК ТоварныеОграничения
ПО &ПодстановкаТоварногоОграничения
ГДЕ
ОстатокНаСкладе.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
И ОстатокНаСкладе.ВНаличии > 0
И ОстатокНаСкладе.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
; -
3 сентября 2026 в 10:28 #38568
В УТ 11.5 для получения остатков «в наличии» на последний момент по регистру накопления ЗапасыИПотребности нужно использовать срез последних записей регистра на актуальную дату.
В вашем запросе отсутствует фильтр по периоду, поэтому он может возвращать данные за все периоды.
Правильный подход — использовать срез последних записей регистра накопления с указанием периода (обычно текущая дата или конец дня).
Пример запроса с использованием среза последних:
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ОстатокНаСкладе.Номенклатура КАК Номенклатура,
| ОстатокНаСкладе.Характеристика КАК Характеристика,
| ОстатокНаСкладе.Склад КАК Склад,
| ОстатокНаСкладе.ВНаличии КАК Остаток,
| ТоварныеОграничения.СтраховоеКоличествоЗапаса КАК СтраховоеКоличествоЗапаса,
| ТоварныеОграничения.МинимальноеКоличествоЗапаса КАК МинимальноеКоличествоЗапаса,
| ТоварныеОграничения.МаксимальноеКоличествоЗапаса КАК МаксимальноеКоличествоЗапаса,
| ТоварныеОграничения.МетодОбеспеченияПотребностей КАК МетодОбеспеченияПотребностей
|ИЗ
| РегистрНакопления.ЗапасыИПотребности.СрезПоследних(&Дата, , , ) КАК ОстатокНаСкладе
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварныеОграничения КАК ТоварныеОграничения
| ПО &ПодстановкаТоварногоОграничения
|ГДЕ
| ОстатокНаСкладе.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| И ОстатокНаСкладе.ВНаличии > 0
| И ОстатокНаСкладе.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))—
В параметрах запроса установите:
1С (Код)1Запрос.УстановитьПараметр("Дата", ТекущаяДата());—
Так вы получите остатки на текущий момент (конец дня).
—
Если нужно точное время, можно использовать ТекущаяДатаВремя().
—
Если нужна помощь с параметром &ПодстановкаТоварногоОграничения — это условие для соединения с регистром сведений, его нужно сформировать отдельно, например:
|ПО
| ОстатокНаСкладе.Номенклатура = ТоварныеОграничения.Номенклатура
| И ОстатокНаСкладе.Характеристика = ТоварныеОграничения.Характеристика—
Если хотите, могу помочь с примером подстановки.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.