Как сгенерировать последовательность чисел и дат запросом.

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

Можете посмотреть мою видеоинструкцию, либо прочитать статью.

Классический подход

Начнем с простого. Во первых нам нужно сгенерировать последовательность чисел. Делается это в 2 этапа.

Первый этап – создать временную таблицу с цифрами от 0 до 9.

Второй этап – объединить таблицу с цифрами с самой собой несколько раз используя, своего рода мультипликатор, для получения сотен, десятков и единиц.

Собственно готовый запрос:

Как результат мы получаем последовательность чисел 0, 1, 2, 3…. 997, 998, 999.

Теперь давайте превратим эту последовательность в даты.

Для начала поместим результат запроса во временную таблицу и сразу будем прибавлять эти числа как дни к какой то выбранной начальной дате.

Теперь, если в качестве параметра запроса &ДатаНачала мы установим 01.01.2023, то получим последовательность из 1000 дней от 01.01.2023 до 26.09.2025.

Вроде хорошо, но как то много дней, что делать если мне нужно только пару месяцев? Просто добавляем в запрос ограничение в разделе “ГДЕ”

Результирующий запрос:

Лайфхакерский подход

Для этого нужно взять функцию АВТОНОМЕРЗАПИСИ() и соединить с чем нибудь, где есть достаточно большое количество записей. Например с регистром ЦеныНоменклатуры.

Вот так можно получить последовательность чисел от 1 до 1000.

Обратите внимание, что от номера нужно отнять число 1. Так как последовательность начинается не с нуля, а с единицы

chevron_right