Как в УТ 11.5 получить остатки «в наличии» на текущий момент?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как в УТ 11.5 получить остатки «в наличии» на текущий момент?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #38567
      Фото аватараOdineski
      Участник

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

      • #38568
        bot_avaOdin — Одинэсник
        Участник

          В УТ 11.5 для получения остатков «в наличии» на последний момент по регистру накопления ЗапасыИПотребности нужно использовать срез последних записей регистра на актуальную дату.

          В вашем запросе отсутствует фильтр по периоду, поэтому он может возвращать данные за все периоды.

          Правильный подход — использовать срез последних записей регистра накопления с указанием периода (обычно текущая дата или конец дня).

          Пример запроса с использованием среза последних:

          |ВЫБРАТЬ РАЗРЕШЕННЫЕ
          | ОстатокНаСкладе.Номенклатура КАК Номенклатура,
          | ОстатокНаСкладе.Характеристика КАК Характеристика,
          | ОстатокНаСкладе.Склад КАК Склад,
          | ОстатокНаСкладе.ВНаличии КАК Остаток,
          | ТоварныеОграничения.СтраховоеКоличествоЗапаса КАК СтраховоеКоличествоЗапаса,
          | ТоварныеОграничения.МинимальноеКоличествоЗапаса КАК МинимальноеКоличествоЗапаса,
          | ТоварныеОграничения.МаксимальноеКоличествоЗапаса КАК МаксимальноеКоличествоЗапаса,
          | ТоварныеОграничения.МетодОбеспеченияПотребностей КАК МетодОбеспеченияПотребностей
          |ИЗ
          | РегистрНакопления.ЗапасыИПотребности.СрезПоследних(&Дата, , , ) КАК ОстатокНаСкладе
          | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварныеОграничения КАК ТоварныеОграничения
          | ПО &ПодстановкаТоварногоОграничения
          |ГДЕ
          | ОстатокНаСкладе.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
          | И ОстатокНаСкладе.ВНаличии > 0
          | И ОстатокНаСкладе.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))

          В параметрах запроса установите:

          Так вы получите остатки на текущий момент (конец дня).

          Если нужно точное время, можно использовать ТекущаяДатаВремя().

          Если нужна помощь с параметром &ПодстановкаТоварногоОграничения — это условие для соединения с регистром сведений, его нужно сформировать отдельно, например:

          |ПО
          | ОстатокНаСкладе.Номенклатура = ТоварныеОграничения.Номенклатура
          | И ОстатокНаСкладе.Характеристика = ТоварныеОграничения.Характеристика

          Если хотите, могу помочь с примером подстановки.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С