From 261bb560eb9ea504f1f1842fd65c2cb787bf5683 Mon Sep 17 00:00:00 2001
From: Nikita Fedkin <nixel2007@gmail.com>
Date: Sun, 12 Jan 2025 21:51:36 +0100
Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?=
 =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D1=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 README.md                                     | 23 +++++++++
 ...20\276\320\270\321\201\320\272\320\260.md" | 50 +++++++++++++++++++
 ...20\276\320\270\321\201\320\272\320\260.os" | 26 ++++++++++
 3 files changed, 99 insertions(+)

diff --git a/README.md b/README.md
index a391fa7..d5bbc57 100644
--- a/README.md
+++ b/README.md
@@ -27,6 +27,7 @@
   * <a href="#entity-read">Чтение и поиск объектов</a>
     * <a href="#entity-complex-find">Поиск сущностей со сложными отборами</a>
     * <a href="#entity-sort">Сортировка результатов</a>
+    * <a href="#entity-limit">Пропуск и смещение</a>
   * <a href="#entity-delete">Удаление сущностей</a>
   * <a href="#entity-active-record">Активная запись</a>
   * <a href="#entity-repository">Работа через ХранилищеСущностей</a>
@@ -285,6 +286,28 @@
 
 ```
 
+<a id="#entity-limit">
+
+### Пропуск и смещение
+
+```bsl
+
+// Привычный Выбрать Первые Х реализуется через ОпцииПоиска
+ОпцииПоиска = Новый ОпцииПоиска()
+  .Первые(10);
+
+ПервыеДесятьФизлиц = МенеджерСущностей.Получить(Тип("ФизическоеЛицо"), ОпцииПоиска);
+
+// При желании можно использовать поиск со смещением, например, для реализации постраничной загрузки.
+// Всегда указывайте правила сортировки для повторяемости результата.
+ОпцииПоиска = Новый ОпцииПоиска()
+  .Первые(10)
+  .Смещение(50)
+  .СортироватьПо("Идентификатор", НаправлениеСортировки.ПоВозрастанию);
+
+ШестойДесятокФизлиц = МенеджерСущностей.Получить(Тип("ФизическоеЛицо"), ОпцииПоиска);
+```
+
 <a id="entity-delete" />
 
 ## Удаление сущностей
diff --git "a/docs/\320\236\320\277\321\206\320\270\320\270\320\237\320\276\320\270\321\201\320\272\320\260.md" "b/docs/\320\236\320\277\321\206\320\270\320\270\320\237\320\276\320\270\321\201\320\272\320\260.md"
index d4b13f5..262ee8f 100644
--- "a/docs/\320\236\320\277\321\206\320\270\320\270\320\237\320\276\320\270\321\201\320\272\320\260.md"
+++ "b/docs/\320\236\320\277\321\206\320\270\320\270\320\237\320\276\320\270\321\201\320\272\320\260.md"
@@ -60,3 +60,53 @@
 Функция СортироватьПо(ИмяПоля, НаправлениеСортировки = Неопределено) 
 ```
 
+### ВыбираютсяПервые
+
+```bsl
+// Получить количество элементов, которые необходимо выбрать.
+//
+// Возвращаемое значение:
+//   Число - Количество элементов.
+//
+Функция ВыбираютсяПервые() 
+```
+
+### Первые
+
+```bsl
+// Выбрать первые n элементов.
+//
+// Параметры:
+//   КоличествоЭлементов - Число - Количество элементов.
+//
+// Возвращаемое значение:
+//   ОпцииПоиска - Текущий объект.
+//
+Функция Первые(КоличествоЭлементов) 
+```
+
+### ВыбираетсяСоСмещением
+
+```bsl
+// Получить количество элементов, которые необходимо пропустить.
+//
+// Возвращаемое значение:
+//   Число - Количество элементов.
+//
+Функция ВыбираетсяСоСмещением() 
+```
+
+### Смещение
+
+```bsl
+// Сместить выборку на n элементов.
+//
+// Параметры:
+//   КоличествоЭлементов - Число - Количество элементов.
+//
+// Возвращаемое значение:
+//   ОпцииПоиска - Текущий объект.
+//
+Функция Смещение(КоличествоЭлементов) 
+```
+
diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\277\321\206\320\270\320\270\320\237\320\276\320\270\321\201\320\272\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\277\321\206\320\270\320\270\320\237\320\276\320\270\321\201\320\272\320\260.os"
index 4e71e6a..edc9cae 100644
--- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\277\321\206\320\270\320\270\320\237\320\276\320\270\321\201\320\272\320\260.os"
+++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\277\321\206\320\270\320\270\320\237\320\276\320\270\321\201\320\272\320\260.os"
@@ -58,10 +58,23 @@
 
 КонецФункции
 
+// Получить количество элементов, которые необходимо выбрать.
+//
+// Возвращаемое значение:
+//   Число - Количество элементов.
+//
 Функция ВыбираютсяПервые() Экспорт
 	Возврат Первые;
 КонецФункции
 
+// Выбрать первые n элементов.
+//
+// Параметры:
+//   КоличествоЭлементов - Число - Количество элементов.
+//
+// Возвращаемое значение:
+//   ОпцииПоиска - Текущий объект.
+//
 Функция Первые(КоличествоЭлементов) Экспорт
 	
 	Первые = КоличествоЭлементов;
@@ -69,10 +82,23 @@
 	Возврат ЭтотОбъект;
 КонецФункции
 
+// Получить количество элементов, которые необходимо пропустить.
+//
+// Возвращаемое значение:
+//   Число - Количество элементов.
+//
 Функция ВыбираетсяСоСмещением() Экспорт
 	Возврат Смещение;
 КонецФункции
 
+// Сместить выборку на n элементов.
+//
+// Параметры:
+//   КоличествоЭлементов - Число - Количество элементов.
+//
+// Возвращаемое значение:
+//   ОпцииПоиска - Текущий объект.
+//
 Функция Смещение(КоличествоЭлементов) Экспорт
 	
 	Смещение = КоличествоЭлементов;