Difference between revisions of "DB.SelectClose"

From SunFlurry wiki
Jump to: navigation, search
(Created page with "{{infobox function |name=SelectClose |object=Объект базы данных |caption=Выборка объектов |type=1 |status=2 |db=0 |visual=0}} {{HeadLinks| *...")
 
m (1 revision imported)
 
(No difference)

Latest revision as of 08:43, 7 February 2021

  SelectClose (Выборка объектов)
Объект:Объект базы данных
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Визуальность:Нет

Функция закрывает выборку объектов, освобождая использованные для выборки ресурсы. Функция вызывается автоматически в момент окончания выборки, при удалении объекта или при его заполнении функциями, типа Find и пр. Обычно эта функция не используется.

Синтаксис

DB.SelectClose()

Примеры

//Пример производит выборку по подчиненному справочнику ЛицензииКонтрагентов, чтобы найти самую свежую лицензию из диапазона дат НачДата..КонДата.
аДата:=0;
аЭл:=Ref.ЛицензииКонтрагентов;
//Выбрать не удаленные элементы подчиненные элементу зК
аЭл.UseOrder("ТипВыборки+");
аЭл.Select("@Parent,@Status",зК,0);
аРез:=0;
While аЭл.Next() Do
  //Если реквизит ТипВыборки>0, закончим выборку. Использование SelectClose не обязательно, но освобождает память сразу при вызове, а не позже, когда аЭл будет удалена.
  If аЭл.ТипВыборки>0 Then
    аЭл.SelectClose();
    Break;
  EndIf;

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