Как посчитать будние дни за период в 1С-запросе с использованием календаря?

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

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

        как в запросе узнать сколько будних дней за указанный период?

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

          В 1С в запросе нет встроенной функции для подсчёта будних дней, но можно использовать регламентированный производственный календарь (РегистрСведений.РегламентированныйПроизводственныйКалендарь), если он есть в вашей конфигурации. В этом регистре хранятся даты с указанием вида дня (рабочий, выходной, праздничный и т.п.).

          Пример запроса, который считает количество будних дней (рабочих и предпраздничных) за период:

          Где:
          ДатаНачала и ДатаКонца — параметры с датами начала и конца периода.
          ВидДня — поле, указывающее тип дня (рабочий, выходной, предпраздничный и т.п.).
          — В запросе считаются только дни с типом «Рабочий» и «Предпраздничный» (т.е. будние).

          Если у вас нет регламентированного производственного календаря, то в чистом запросе без него посчитать будние дни нельзя, тогда нужно либо:
          — Создать собственный справочник или регистр с календарём,
          — Либо считать в коде 1С, перебирая даты и проверяя день недели (функция ДеньНедели()).

          Пример подсчёта будних дней в коде 1С без запроса:

          Если нужно именно в запросе — используйте регламентированный календарь, как в примере выше.
          https://helpf.pro/faq/view/1421.html (работа с датами и периодами в 1С)

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