Как получить запросом остатки или обороты за каждый день?

Поділитися
Вставка
  • Опубліковано 26 лис 2024
  • Как можно меня отблагодарить: pay.cloudtips....
    В данном видео мы рассмотрим получение запросом остатков на каждый день в периоде, а также получение оборотов на каждый день.
    Запросы такого типа используются при расчете оборачиваемости какого-нибудь показателя (дебиторки, остатков на складе, резервов по заказам и др.), динамики показателей за период.
    Похожая задача с выводом оборотов на каждый день при помощи СКД рассмотрена в видео:
    • Как сделать на СКД отч...
    Добавляйте в закладки мой сайт 1c.alexcode.ru... с полезными материалами по настройке и программированию 1С
    Курс «Разработчик 1С с нуля»
    1c.alexcode.ru/
    Индивидуальное обучение 1С
    1c.alexcode.ru...
    Видео также размещено на моем Дзен-канале «1С с Леоновым»: dzen.ru/video/...

КОМЕНТАРІ • 13

  • @BlitzTheSloth
    @BlitzTheSloth 5 днів тому +1

    автору огромная благодарность за подробное объяснение.
    но есть ремарка: тк подразумевается получение остатков на конец даты, то конец периода следует задавать с временем 23:59:59, иначе в выборку не попадают движения последнего дня.
    также, позволю себе дополнить: в случае когда требуется получить информацию по списку номенклатуры (в тч информацию об отсутствии остатков/движений), а не только по той, что есть в регистре, нужно будет предварительно к таблице с периодами декартово соединить таблицу с номенклатурой. и уже эту таблицу (ДниНоменклатура) соединить с таблицей остатков и оборотов (Остатки) по ДниНоменклатура.Товар = Остатки.Номенклатура и ДниНоменклатура.Период >= Остатки.Период

    • @alexcode_1c
      @alexcode_1c  5 днів тому

      Добрый день! Отличное дополнение к материалу, спасибо!

  • @ka4kovskiy
    @ka4kovskiy 6 місяців тому +1

    Спасибо)) целый день возился с расширением периода в скд, пытался менять его везде)) а потом нашел ваше видео, прям супер. Видел ещё реализацию, которая привязана к 1 году, а здесь на это нет ограничений. Мне нужно было в одном случае выводить остаток, в другом оборот и учитывать каждый месяц.

    • @alexcode_1c
      @alexcode_1c  6 місяців тому +1

      Благодарю за отзыв! Всегда приятно, когда трудился не напрасно, и видео оказалось полезным.

  • @АлексейБеспалов-ф9ф

    Спасибо, очень полезно.

    • @alexcode_1c
      @alexcode_1c  Рік тому

      Люблю причинять людям пользу :)

  • @ssbnn
    @ssbnn 7 місяців тому +2

    Еще пара маленьких придирок:
    1) Все же лучше не просто декартово соединить две таблицы, а соединить с условием на период. К-во строк до группировки будет в 2 раза меньше.
    2) Не надо городить каскадные CASE'ы. Так код короче:
    ВЫБОР
    КОГДА ... ТОГДА ...
    КОГДА ... ТОГДА ...
    ИНАЧЕ ...
    КОНЕЦ

    • @alexcode_1c
      @alexcode_1c  7 місяців тому

      О! Годные замечания! Попробую на досуге оптимизировать.🤝

    • @BlitzTheSloth
      @BlitzTheSloth 5 днів тому

      если соединить с условием на период, то из выборки выпадут дни, в которые по товару не было движений.

  • @user-sl1tw9vg8x
    @user-sl1tw9vg8x Рік тому +1

    а если нужны свободные остатки? т.е. за минусом регистр РезервыТоваров

    • @alexcode_1c
      @alexcode_1c  Рік тому +1

      Подход точно такой же, только исходный запрос получится с левым соединением с таблицей резервов. Я бы сперва во временную таблицу получил свободные остатки с учетом резервов, и уже эту ВТ присоединял бы к таблице дат.

  • @АлексейДмухин
    @АлексейДмухин Рік тому +2

    Мелкая придирка: В получении таблицы чисел не нужно делать "ОБЪЕДИНИТЬ", нужно делать "ОБЪЕДИНИТЬ ВСЕ" - это менее затратная операция, в выборке используются и так уникальные значения.

    • @alexcode_1c
      @alexcode_1c  Рік тому +1

      Справедливо! Объединить еще дополнительно выполняет операцию группировки, а объединить все - не выполняет. И т.к. у нас уникальные числа, то действительно целесообразнее использовать "Объединить все"