v7. Задачка по программированию. НайтиЭлементПоДате(Спр, ДатаДок)

Автор Пиит, 16 апреля 2024, 12:33

« назад - далее »

Злоп


Djelf

Цитата: Злоп от 06 мая 2024, 14:57А <= ?
Этот финт ушами работает только при  >=
В платформе есть все мехнизмы для этого, а вот в Запрос:1С их нет.
Т.е. нельзя.

Djelf

Цитата: Злоп от 06 мая 2024, 14:59Но не факт что запрос работает как ты описал.
Проверь, в чем проблема то?

И я знаю что не факт, но по другому это не должно работать, имхо.
/* видя изнутри */

Злоп

Вряд ли, например, на дбфном движке строится какой-то оптимизатор/план запроса. hogik как-то рассказывал что там всё гораздо проще. Но настаивать не буду, вам виднее

Djelf

Я 1sqlite зачем зачем 10 лет подряд подпиливаю?
Чтобы понимать в 7.7 ее кишки изнутри больше или меньше?

Да там все просто, ну не совсем просто, но и парсер запросов в 1С невероятно примитивный.
Типа так оно работает:
1. Смотрим есть ли в Запрос:1С условие по индексу, тут в запросе только одно условие и индекс есть, решение однозначное - использовать.
Что делать когда есть одновременно условия на товар или склад у движка (для DBF это точно) идей у 1С не существует. Видимо будет выбран первый индекс (это не относится к теме).
2. 1С копирует данные во временный файл DBF по индексу и фильтру (без фильтра можно застрелиться ожидая данных).
3. Тут есть не у всех понимание, данные заполняются по индексу и мы потом выбираем записи уже не по ID, а по RowID, а они у нас записаны по возростанию индекса с фильтром. И записаны новые данные во временный файл DBF, а из него мы уже выбираем записи по RowID (без упорядовачивания так это и работает!).
4. Профит! Как я выше и отпостил.

Проверяйте... 1sqlite дает те же самые результаты, что и этот вариант.