Каталог решений - Имитация sql выражения LIMIT в запросе 1С

Имитация sql выражения LIMIT в запросе 1С

Имитация sql выражения LIMIT в запросе 1С

В наличии

Всем известно, что в SQL синтаксисе есть выражение LIMIT. Очень полезное выражение для постраничной навигации. Но его нет в запросах 1С. Кто-то может сказать, что есть ПЕРВЫЕ, но ПЕРВЫЕ не подходит для постраничной навигации. Рассмотрим в статье, как можно имитировать LIMIT в запросах 1С.

Категория:

Описание

Не буду лить много воды. Приведу пример запроса и ниже разберу

ВЫБРАТЬ ПЕРВЫЕ 1000000
 Товары.Ссылка
ПОМЕСТИТЬ ВсеТовары
ИЗ
 Справочник.Номенклатура КАК Товары
УПОРЯДОЧИТЬ ПО
 Товары.Код
;
 
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 10
 ВсеТовары.Ссылка
ПОМЕСТИТЬ НачальнаяПозиция
ИЗ
 ВсеТовары КАК ВсеТовары
;
 
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 20
 ВсеТовары.Ссылка
ПОМЕСТИТЬ КонечнаяПозиция
ИЗ
 ВсеТовары КАК ВсеТовары
;
 
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
 КонечнаяПозиция.Ссылка
ИЗ
 КонечнаяПозиция КАК КонечнаяПозиция
  ЛЕВОЕ СОЕДИНЕНИЕ НачальнаяПозиция КАК НачальнаяПозиция
  ПО КонечнаяПозиция.Ссылка = НачальнаяПозиция.Ссылка
ГДЕ
 НачальнаяПозиция.Ссылка ЕСТЬ NULL

ВЫБРАТЬ ПЕРВЫЕ 1000000 — Это максимальное количество записей, которое может содержать наш справочник. Лучше взять с большим запасом, т. к. на скорости запроса это не скажется. Выражение ПЕРВЫЕ мы тут используем для того, чтобы появилась возможность упорядочивания во временной таблице.

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

ВЫБРАТЬ ПЕРВЫЕ 10 — это начальный элемент, с которого мы хотим начать выборку

ВЫБРАТЬ ПЕРВЫЕ 20 — это конечный элемент, до которого мы хотим сделать выборку.

Таким образом мы получим с 11 по 20 записи из справочника «Номенклатура».

has been added to your cart:
Оформление заказа