новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Обсуждение к материалу: Особенность получения среза последних записей в регистре сведений

    • #1
    • 12.06.2013 12:48
    0
    При написании запроса к срезу последних записей регистра сведений необходимо учитывать особенность построения запроса к базе данных платформой 1С:Предприятие 8. Об этом и пойдет речь далее в статье.  Подробнее>>
    • #2
    • 12.06.2013 12:52
    0
    Дмитрий, э-э-э-э, Юрий Анатольевич, в Вашем примере регистр имеет 1 измерение. В случае, когда измерений больше, запрос вернет записи по всем комбинациям измерений по указанным условиям. Как далее будете строить выборку?
    • #3
    • 12.06.2013 13:30
    0
    Не Дмитрий Анатольевич =)))))

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


    Значит нужно делать соответствующие условия на все измерения в параметрах виртуальной таблицы, чтобы SQL-запрос платформы для виртуальной таблицы "СрезПоследних" вернул только нужные данные. Зачем нам лишний раз сервер СУБД "мучать")
    • #4
    • 12.06.2013 13:46
    0
    Самое прикольное в этой статье то, что первый вариант запроса правильный, а второй отстой, которые пишут начинающие программисты. В условие задачи ясно написано: "срез последних записей для товаров и их ТЕКУЩИХ цен с условием, что старая цена меньше или равно 50". Ключевое слово "ТЕКУЩИХ". Поскольку ограничения на дату нет, значит текущими считаются последние записи регистра. Результат первого запроса абсолютно верный, потому что ТЕКУЩИХ старых цен (<=50) НЕТ.

    Если вам нужны текущие данные (или на дату), ни в коем случае нельзя накладывать условия на ресурсы, потому что в результат могут попасть записи годовой давности, что прекрасно показывает результат второго запроса
    • #5
    • 12.06.2013 22:38
    • Отредактировано: 12.06.2013 22:39:42
    0
    BAPBAP
    Самое прикольное в этой статье то, что первый вариант запроса правильный, а второй отстой, которые пишут начинающие программисты. В условие задачи ясно написано: "срез последних записей для товаров и их ТЕКУЩИХ цен с условием, что старая цена меньше или равно 50". Ключевое слово "ТЕКУЩИХ". Поскольку ограничения на дату нет, значит текущими считаются последние записи регистра. Результат первого запроса абсолютно верный, потому что ТЕКУЩИХ старых цен (<=50) НЕТ.

    Если вам нужны текущие данные (или на дату), ни в коем случае нельзя накладывать условия на ресурсы, потому что в результат могут попасть записи годовой давности, что прекрасно показывает результат второго запроса


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

    Вы правы, не удачно написал условие в начале, поправил. Спасибо, за замечание.
    • #6
    • 23.04.2014 15:48
    0
    Полностью согласен с Варваром. В данном задании первое условие - срез последних. Второе условие , которое накладывается на первое - <=50 . Первый запрос вернёт правильные данные - то есть никаких записей.

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