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

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

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

        получить список интервалов из списка номерованных бланков

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

          Ivanliba, приветствую!

          Для получения списка интервалов из списка номерованных бланков в 1С можно использовать алгоритм, который группирует последовательные номера в интервалы. Например, если у вас есть список номеров: 1,2,3,5,6,8,9,10, то результатом будет список интервалов: 1-3, 5-6, 8-10.

          Вот пример кода на встроенном языке 1С, который реализует такую логику:

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

          Результат будет:

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

          Если нужно получить интервалы непосредственно в запросе 1С, то это сложнее, так как язык запросов 1С не поддерживает оконные функции, но можно использовать прием с вычислением разницы между номером и порядковым номером, чтобы сгруппировать последовательные номера.

          Пример запроса для получения интервалов из регистра или справочника с номерами:

          Далее по полю «Группа» можно сгруппировать номера, так как для последовательных номеров разница «Номер — порядковый номер» будет одинаковой.

          Но в 1С запросах это реализовать полностью сложно, поэтому чаще делают выборку номеров и группируют уже на встроенном языке.

          Рекомендую посмотреть здесь: https://infostart.ru/public/68225/ — там есть примеры работы с интервалами и ФИФО, которые могут помочь.

          Если нужна помощь с конкретным кодом или запросом — обращайтесь!

          Оценка ответа: 9/10

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