DB.SetJournalProperty

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

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

Синтаксис

DB.SetJournalProperty(<Список реквизитов журнала (STRING)>,<Заблокированный основной объект (DB)>)

Аргументы

  • <Список реквизитов журнала (STRING)> - Строка, задающая наименования реквизитов журнала, которые требуется сохранить в базу данных. Реквизиты заданы через запятую. (планируется к реализации) На данный момент поддерживается только указание на один реквизит.
  • <Заблокированный основной объект (DB) - (необязательный аргумент) Основной объект, на который ссылается данный элемент журнала, заблокированный заранее. Запись в таком режиме гарантирует то, что в момент записи информация в текущем объекте журнала будет свежей.

Примеры

//Изменим реквизит флВыгруженВККМ из журнала ЖурналКассовыхДокументов для документа aEl
//Блокирование исходного объекта
aEl.Lock();
Try
  //Получение объекта журнала
  bEl:=aEl.GetJournalObject("ЖурналКассовыхДокументов");
  //Изменение реквизита объекта журнала
  bEl.флВыгруженВККМ:=0;
  //Сохранение этого реквизита в журнал, другие реквизиты журнала изменены не будут,
  //  оригинальный объект изменен не будет.
  bEl.SetJournalProperty("флВыгруженВККМ",aEl);
Finally
  aEl.Unlock();
EndTry;