DB.Next

From SunFlurry wiki
Revision as of 12:24, 23 September 2019 by Admin (talk | contribs) (Created page with "{{infobox function |name=Next |object=Объект базы данных |caption=Выборка объектов |type=1 |status=2 |db=2 |exception=Выборка не н...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  Next (Выборка объектов)
Объект:Объект базы данных
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Сервер и БД
Исключения:Выборка не начиналась
Визуальность:Нет

Функция получает следующий (или первый после вызова Select) объект в выборке. Функция используется совместно с функциями Select или SelectEx. При загрузке нового объекта, предыдущий удаляется, все изменения для него будут утеряны, новые значения реквизитов будут загружены в текущий объект (если это подразумевает режим загрузки) и объект будет перепозиционирован.

Синтаксис

DB.Next():<Следующий элемент найден и загружен (INT)>

Возвращаемое значение

Возвращается 1, если новый элемент получен (и загружен), иначе возвращает 0.

Примеры

//Пример производит выборку по подчиненному справочнику ЛицензииКонтрагентов, чтобы найти самую свежую лицензию из диапазона дат НачДата..КонДата.
аДата:=0;
аЭл:=Ref.ЛицензииКонтрагентов;
//Выбрать не удаленные элементы подчиненные элементу зК
аЭл.Select("@Parent,@Status",зК,0);
аРез:=0;
While аЭл.Next() Do
  If (аЭл.ТипЛицензии<>Enum.ТипыЛицензий.АлкогольнаяРозничная)And(аЭл.ТипЛицензии<>Enum.ТипыЛицензий.АлкогольнаяОптовая) Then
    Continue;
  EndIf;
      
  If (аЭл.ДатаВыдачиЛицензии<=КонДата)And(аЭл.ДатаНачалаДействияЛицензии<=КонДата)And(аЭл.ДатаОкончанияДействияЛицензии>=НачДата) Then
    If _Or(аДата=0,аДата<аЭл.ДатаОкончанияДействияЛицензии) Then
      аДата:=аЭл.ДатаОкончанияДействияЛицензии;
      //ВАЖНО: результат должен быть копией текущего объекта аЭл, 
      //       так как иначе он будет изменен в момент, когда текущий объект аЭл будет загружен заново при выполнении аЭл.Next()
      аРез:=аЭл.Copy();
    EndIf;
  EndIf;
EndDo;