DB.UseOption

From SunFlurry wiki
Jump to: navigation, search
  UseOption (Режимы загрузки объекта)
Объект:Объект базы данных
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, неверное имя режима
Визуальность:Нет

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

Синтаксис

DB.UseOption(<Наименование установки (STRING)>,<Значение установки>):<Текущее значение установки>

Аргументы

  • <Наименование установки (STRING)> - Задает наименование режима, который нужно прочитать или изменить. Доступы следующие значения:
    • LinePartsLoading, LineParts или Opt1 - загрузка все строчных частей объекта в момент его позиционирования и загрузки такими функциями, как Find или Select. Возможные значения: 0 -- не загружать (по умолчанию), 1 -- загружать.
    • PeriodicalPropertiesLoading, PeriodicalProperties или Opt2 - загрузка периодических реквизитов объекта в момент его позиционирования и загрузки такими функциями, как Find или Select. Возможные значения: 0 -- не загружать (по умолчанию), 1 -- загружать. Значения будут загружаться на дату, которую можно изменить или получить функциями UseDate или EndPeriodDate.
  • <Значение установки> - (необязательный аргумент) При наличии этого аргумента, функция изменяет режим загрузки объекта, иначе происходит только чтение режима. Значение параметра зависит от устанавливаемого (получаемого) режима.

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

Возвращается указанный текущий режим загрузки.

Примеры

//Пример обработчика визуального события OnBeforeLoadElements, который подставляет особую таблицу загрузки
//  при выводе элементов таблицы простого справочника в случае, когда ограничения для текущего пользователя не
//  позволяют ему видеть все элементы. 
//Элементы справочника содержат периодические реквизиты, которые необходимо отразить в таблице, поэтому, нам необходимо
//  загружать их совместно с остальными реквизитами.
Стр:=Trim(Пользователь.ЗапрещенныеТипыЦен);
If Стр="" Then
  //Выполнить загрузку по умолчанию, если ограничений нет.
  Exit 0;
EndIf;

aEl:=Ref.цЦены;
//Сортировка совпадает с визуальной
aEl.UseOrder(Form.MainTab.SortString);
//Загружать периодические реквизиты
aEl.UseOption("PeriodicalPropertiesLoading",1);
//Произведем загрузку в список
aList:=aEl.Load(0,"@Parent,@Status",Form.MainTab.ParentElement,0);

//Создадим список цен (bList) только с разрешенными типами цен
bList:=List.Create();
For i:=1 to aList.Size() Do
  Эл:=aList.Get(i);
  Код:=Trim(Эл.ТипЦен.Code)+"@";
  If Pos(Код,Стр1)>0 Then
    Continue;
  EndIf;  
  bList.Add(Эл);
Enddo;

//Копирует результат в основную таблицу в скрытое поле "элемент", остальные поля система заполнит самостоятельно
bList.CopyTo(Form.MainTab.Value,1,bList.Size(),"@ELEMENT");
//Признак: таблица уже загружена
Result:=1;