Календарик или выборка дат

15.05.10

Разработка - Запросы

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

Есть много разных решений для получения в запросе выборки дат за период

для типовых конфигураций возможны решения использующие различные регистры сведений например курсы валют или производственный календарь.

Мой вариант не зависит от конфигурации, он сделан на основе нескольких размещенных здесь и на мисте и оптимизирован по объему кода, и количеству виртуальных таблиц \ вложенных запросов

ВЫБРАТЬ
            0 КАК a
Поместить vt_aa           
            ОБЪЕДИНИТЬ
           
            ВЫБРАТЬ
                1
           
            ОБЪЕДИНИТЬ
           
            ВЫБРАТЬ
                2
           
            ОБЪЕДИНИТЬ
           
            ВЫБРАТЬ
                3
           
            ОБЪЕДИНИТЬ
           
            ВЫБРАТЬ
                4
           
            ОБЪЕДИНИТЬ
           
            ВЫБРАТЬ
                5
           
            ОБЪЕДИНИТЬ
           
            ВЫБРАТЬ
                6
           
            ОБЪЕДИНИТЬ
           
            ВЫБРАТЬ
                7
           
            ОБЪЕДИНИТЬ
           
            ВЫБРАТЬ
                8
           
            ОБЪЕДИНИТЬ
           
            ВЫБРАТЬ
                9
                ;
ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, РазностьДат.НомерДняИзДиапазона) КАК датаПериода
ПОМЕСТИТЬ Даты   
ИЗ
    (ВЫБРАТЬ
        bb.a * 100 + cc.a * 10 + dd.a КАК НомерДняИзДиапазона
    ИЗ
         vt_aa КАК bb           
            ПОЛНОЕ СОЕДИНЕНИЕ vt_aa КАК cc
            ПО (ИСТИНА)
            ПОЛНОЕ СОЕДИНЕНИЕ vt_aa КАК dd
            ПО (ИСТИНА)) КАК РазностьДат
ГДЕ
    РазностьДат.НомерДняИзДиапазона < РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)

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

        bb.a * 100 + cc.a * 10 + dd.a КАК НомерДняИзДиапазона

на    aa.a*1000 +     bb.a * 100 + cc.a * 10 + dd.a КАК НомерДняИзДиапазона

и добавив полное соединение

            ПОЛНОЕ СОЕДИНЕНИЕ vt_aa КАК aa
            ПО (ИСТИНА)

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 8000 руб.

02.09.2020    122348    673    389    

716

Для чего используют конструкцию запроса "ГДЕ ЛОЖЬ" в СКД на примере конфигурации 1С:ERP

Запросы СКД Платформа 1С v8.3 Запросы Система компоновки данных 1С:ERP Управление предприятием 2 Бесплатно (free)

В типовых конфигурациях разработчики компании 1С иногда используют в отчетах, построенных на СКД, такую конструкцию, как "ГДЕ ЛОЖЬ". Такая конструкция говорит о том, что данные в запросе не будут получены совсем. Для чего же нужен тогда запрос?

13.02.2024    5755    KawaNoNeko    23    

23

Набор-объект для СКД по тексту или запросу

Запросы СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    2006    2    Yashazz    0    

29

Запрос 1С copilot

Инструментарий разработчика Запросы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Пишем на человеческом языке, что нам надо, и получаем текст запроса на языке 1С. Используются большие языковые модели (LLM GPT) от OpenAI или Яндекс на выбор.

5 стартмани

15.01.2024    6300    31    mkalimulin    25    

50

PrintWizard: поддержка представлений ЗУП в конструкторе

Инструментарий разработчика Запросы Платформа 1С v8.3 Бесплатно (free)

Одной из интересных задач, стоящих в процессе разработки, была поддержка механизма представлений в ЗУП. Но не просто возможность исполнения запросов с ними. Основная проблема была в том, чтобы с ними было удобно работать, а именно: создавать, модифицировать и отлаживать. Кратко о том, что в итоге получилось...

14.12.2023    1749    vandalsvq    7    

29

Объектная модель запроса "Схема запроса" 2

Запросы Платформа 1С v8.3 Запросы Конфигурации 1cv8 Бесплатно (free)

Далеко уже не новый тип данных "Схема запроса". Статья о том, как использовать его "попроще". Примеры создания текста запроса с нуля и изменение имеющегося запроса.

06.12.2023    5397    user1923546    26    

43

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    16198    skovpin_sa    14    

98
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. alexk-is 6533 15.05.10 10:53 Сейчас в теме
Вот календарик в диапазоне до 2739 лет. http://www.infostart.ru/public/68269/
Работает значительно быстрее.
2. grub 6 15.05.10 17:49 Сейчас в теме
(1) замеры в студию :!: твой слишком громоздкий куча временных таблиц и в зависимости от диапазона дат ( периода ) твой будет выдавать разную скорость, твой смотрел механизмы похожи мне мой больше нравится он проще короче и в нём только одна временная таблица

p.s на практике отчеты с выборкой по дням за период больше года не делаются не читабельно обычно хватает месяца за глаза
5. alexk-is 6533 15.05.10 21:06 Сейчас в теме
(2) Вариант указанный по ссылочке будет стабильно работать от 01.01.0001 по текущую дату ещё 700 лет. В комментариях указаны диапазоны и выбросить "не нужные" таблицы проблем не составляет. Замеры сейчас сделаю.
9. grub 6 15.05.10 22:19 Сейчас в теме
(5) Замеры сделанные в ИР
Время формирования результата - 16 мс
Время формирования результата - 15 мс
Время формирования результата - 0 мс
вот такой разброс для обоих запросов
в iE мой показывает 0,1
ваш 0,1 - 0,3 так что где ваш работает значительно быстрее не вижу
11. alexk-is 6533 16.05.10 08:02 Сейчас в теме
(9) Расклад такой на 1000 повторов для 3х вариантов:
1. Пример запроса из этой публикации
2. Пример запроса из ссылки (1)
3. Пример запроса из ссылки (1) с ограничениями на 2.5 года как в этой публикации

Период 1 месяц
1 - 5,891
2 - 6,172
3 - 3,391

Период 3 месяца
1 - 6,001
2 - 6,720
3 - 3,688

Период 6 месяцев
1 - 6,077
2 - 7,452
3 - 4,094

Период 12 месяц
1 - 6,173
2 - 8,923
3 - 4,938

Отсюда вывод запрос на 2739 лет (вариант 2) работает медленнее всех. Думаю это понятно, т.к. обрабатывается больше связей. Вариант 3 работает быстрее варианта 1, т.к. выполняется отсечение до соединения и меньше математики в результирующем запросе.
3. пользователь 15.05.10 18:44
Сообщение было скрыто модератором.
...
6. grub 6 15.05.10 21:59 Сейчас в теме
(3) на полноценную статью пока нет времени сравнить с решением alexk-is сравним
один из худших. - каковы критерии ?

(4) можно пальцем в типовой где посмотреть ( если это зарплата то я с ней не работаю)
4. пользователь 15.05.10 18:47
Сообщение было скрыто модератором.
...
7. пользователь 15.05.10 22:05
Сообщение было скрыто модератором.
...
8. пользователь 15.05.10 22:06
Сообщение было скрыто модератором.
...
10. grub 6 15.05.10 22:21 Сейчас в теме
(8) для типовой волне нормальное решение, если нужно универсальный внешний запрос то приходится изгалятся
(3) Eugeneer за это пост хочется поставить сразу и + и -
я за критику, но с конкретикой хочется понять по каким критерия оценивается запрос :idea:
12. alexk-is 6533 17.05.10 16:12 Сейчас в теме
(0) Текст запроса в статье можно раскрасить получше.
Оставьте свое сообщение