Здравствуйте! Подскажите пожалуйста, почему в запрос всегда попадает первая дата 28.12.2024 ????

Текст запроса:

    ВЫБРАТЬ ПЕРВЫЕ 13
      ДанныеПроизводственногоКалендаря.Дата КАК ДатаКалендаря,
      АВТОНОМЕРЗАПИСИ() КАК Номер
    ПОМЕСТИТЬ ВТ_РабочиеДни
    ИЗ
      РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
    ГДЕ
      ДанныеПроизводственногоКалендаря.ВидДня = &ВидДня_РабочийДень
      И ДанныеПроизводственногоКалендаря.Дата >= &ИсходнаяДата
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ ПЕРВЫЕ 13
  ВТ_РабочиеДни.ДатаКалендаря КАК ДатаКалендаря,
     ВТ_РабочиеДни.Номер КАК Номер
    ИЗ
      ВТ_РабочиеДни КАК ВТ_РабочиеДни
    УПОРЯДОЧИТЬ ПО ВТ_РабочиеДни.Номер УБЫВ

Если пойму почему попадает 28.12.2024 то и АВТОНОМЕРЗАПИСИ будет не нужен
---
вы когда из регистра выдергиваете первые 13 записей подразумеваете, что записи лежат в хронологическом порядке дат. Но физически в таблицах регистра это может быть совсем не так. Например, если пользователь руками забивал данные производственного календаря в разброс. Поэтому сначала отбирайте все даты больше или равные исходной, сортируйте по хронологии и затем получайте первые 13.
Но тут возникает вопрос неоптимальности - например вам надо отобрать 13 рабочих дней с 1 июля 2022 года. И тогда в случае, если в регистре заполнены данные на 2023 и 2024 год, то они все попадут в первую выборку, будут отсортированы, а потом будут отобраны первые 13. Сортировать лишние данные - зачем?
Поэтому я бы сделал иначе. Создал ТЗ с датами с некоторым запасом. Например, 30 дней начиная с нужной даты. Передал в запрос и из производственного календаря узнал бы, рабочий или выходной день. Откинул выходные. Отсортировал, а потом получил нужные 13 дней.
"Запас" по датам необходим т.к. будут отобраны первично и выходные, и заранее не известно, сколько этих выходных. Размер запаса определяется исходя из максимального периода нерабочих дней (январь), чтобы гарантированно захватить нужные 13 рабочих дней.
---
28.12.24 - это последний рабочий день этого года

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

Чтобы проверить эту версию, в календаре модифицируете 27.12.24 и запишите его.
---
И ДанныеПроизводственногоКалендаря.Дата >= &ИсходнаяДата
```1c
    И ДанныеПроизводственногоКалендаря.Дата >= &ИсходнаяДата
    УПОРЯДОЧИТЬ ПО ДанныеПроизводственногоКалендаря.Дата
```
---
такие изначальные вопросы с чуть-чуть данными - флуд. А где значения параметров, а где вид или описание, как заполнен регистр?
На что рассчитываете, "проситель"? Что эксперты всё бросят и начнут кучей встречных вопросов спрашивать всё, чего изначально не хватает в описании?

ЗЫ, после чтения всей ветки. Кэш 1С почистите
---
вы когда из регистра выдергиваете первые 13 записей подразумеваете, что записи лежат в хронологическом порядке дат. Но физически в таблицах регистра это может быть совсем не так. Например, если пользователь руками забивал данные производственного календаря в разброс. Поэтому сначала отбирайте все даты больше или равные исходной, сортируйте по хронологии и затем получайте первые 13.
Но тут возникает вопрос неоптимальности - например вам надо отобрать 13 рабочих дней с 1 июля 2022 года. И тогда в случае, если в регистре заполнены данные на 2023 и 2024 год, то они все попадут в первую выборку, будут отсортированы, а потом будут отобраны первые 13. Сортировать лишние данные - зачем?
Поэтому я бы сделал иначе. Создал ТЗ с датами с некоторым запасом. Например, 30 дней начиная с нужной даты. Передал в запрос и из производственного календаря узнал бы, рабочий или выходной день. Откинул выходные. Отсортировал, а потом получил нужные 13 дней.
"Запас" по датам необходим т.к. будут отобраны первично и выходные, и заранее не известно, сколько этих выходных. Размер запаса определяется исходя из максимального периода нерабочих дней (январь), чтобы гарантированно захватить нужные 13 рабочих дней.
---
И ДанныеПроизводственногоКалендаря.Дата >= &ИсходнаяДата
```1c
    И ДанныеПроизводственногоКалендаря.Дата >= &ИсходнаяДата
    УПОРЯДОЧИТЬ ПО ДанныеПроизводственногоКалендаря.Дата
```
---
Потому что календарь заполнен на весь 2024 год. Последний рабочий день в году - 28.12.2024. При сортировке по убыванию он становится первым в списке.
Чего непонятного?
---
запустил у себя. Не попадает 28.12.2024 . проверьте данные производственного календаря

ДатаКалендаря Номер
31.07.2024 0:00:00 13
30.07.2024 0:00:00 12
29.07.2024 0:00:00 11
26.07.2024 0:00:00 10
25.07.2024 0:00:00 9
24.07.2024 0:00:00 8
23.07.2024 0:00:00 7
22.07.2024 0:00:00 6
19.07.2024 0:00:00 5
18.07.2024 0:00:00 4
17.07.2024 0:00:00 3
16.07.2024 0:00:00 2
15.07.2024 0:00:00 1
---
Спасибо
---
Данные заполнены согласно производственному календарю РФ. Заполняется по неделям, заполнен до 31.12.2024
---
тогда можно только &ИсходнаяДата проверять

потом перезагрузить компьютер и сходить 15 минут подышать на воздух
---
Я получаю такие данные, исходная дата указана 15.07.2024
30.07.2024 0:00:00 13
29.07.2024 0:00:00 12
26.07.2024 0:00:00 11
25.07.2024 0:00:00 10
24.07.2024 0:00:00 9
23.07.2024 0:00:00 8
22.07.2024 0:00:00 7
19.07.2024 0:00:00 6
18.07.2024 0:00:00 5
17.07.2024 0:00:00 4
16.07.2024 0:00:00 3
15.07.2024 0:00:00 2
28.12.2024 0:00:00 1
---
28.12.24 - это последний рабочий день этого года

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

Чтобы проверить эту версию, в календаре модифицируете 27.12.24 и запишите его.