Программный интерфейс

Показывать:
Определен в: src\meta_mngrs.js:12
Модуль: meta_mngrs
Родительский модуль: metadata

Абстрактный менеджер данных

Не используется для создания прикладных объектов, но является базовым классом, от которого унаследованы менеджеры как ссылочных данных, так и объектов с суррогратным ключом и несохраняемых обработок
См. так же:

Конструктор

DataManager

(
  • class_name
)

Определен в src\meta_mngrs.js:12

Параметры:

  • class_name String
    • имя типа менеджера объекта. например, "doc.calc_order"

Методы

export

(
  • attr
)

Описан в модуле import_export

Определен в src\import_export.js:12

Экспортирует данные в файл или в строковую переменную или на сервер

  • Выгружаться может как единичный объект, так и коллекция объектов
  • В параметрах метода либо интерактивно могут задаваться правила экспорта, такие как:
    • Формат формируемого файла (json, xlsx, sql)
    • Дополнять ли формируемый файл информацией о метаданных (типы и связи полей)
    • Включать ли в формируемый файл данные связанных объектов
      (например, выгружать вместе с заказом объекты номенклатуры и характеристик)

Параметры:

  • attr Object
    • параметры экспорта
    • [pwnd] DhtmlXWindows optional
      • указатель на родительскую форму

Пример:

//  обработчик нажатия кнопок командной панели формы списка
function toolbar_click(btn_id){
  if(btn_id=="btn_import"){
    // открываем диалог импорта объектов текущего менеджера
    _mgr.import();
  }else if(btn_id=="btn_export"){
    // открываем диалог экспорта объектов текущего менеджера и передаём ссылку текущей строки
    // если ссылка не пустая, будет предложено экспортировать единственный объект
    // при необходимости, в диалоге можно указать экспорт всех объектов текущего менеджера
    _mgr.export(wnd.elmnts.grid.getSelectedRowId());
  }
}

find_rows

(
  • selection
  • [callback]
)
Array

Определен в src\meta_mngrs.js:321

Найти строки

Возвращает массив дата-объектов, обрезанный отбором selection
Eсли отбор пустой, возвращаются все строки, закешированные в менеджере. Имеет смысл для объектов, у которых cachable = "ram"

Параметры:

  • selection Object
    • в ключах имена полей, в значениях значения фильтра или объект {like: значение}
  • [callback] Function optional
    • в который передается текущий объект данных на каждой итерации

Возвращает:

Array:

form_obj

(
  • pwnd
  • attr
)

Описан в модуле wnd_obj

Определен в src\widgets\wnd_obj.js:11

Форма объекта данных

По умолчанию, форма строится автоматически по описанию метаданных.
Метод можно переопределить для конкретного менеджера

Параметры:

  • pwnd DhtmlXWindows
    • указатель на родительскую форму
  • attr Object | DataObj | String
    • параметры инициализации формы

get_option_list

(
  • val
  • [selection]
)
Promise.

Определен в src\meta_mngrs.js:494

Возвращает массив доступных значений для комбобокса

Параметры:

  • val DataObj | String
    • текущее значение
  • [selection] Object optional
    • отбор, который будет наложен на список
    • [_top] Number optional
      • ограничивает длину возвращаемого массива

Возвращает:

Promise.:

get_property_grid_xml

(
  • oxml
  • o
  • extra_fields
)
String private

Определен в src\meta_mngrs.js:577

Возаращает строку xml для инициализации PropertyGrid

служебный метод, используется OHeadFields

Параметры:

  • oxml Object
    • объект с иерархией полей (входной параметр - правила)
  • o DataObj
    • объект данных, из полей и табличных частей которого будут прочитаны значения
  • extra_fields Object
    • объект с описанием допреквизитов
    • ts String
      • имя табчасти
    • title String
      • заголовок в oxml, под которым следует расположить допреквизиты // "Дополнительные реквизиты", "Свойства изделия", "Параметры"
    • selection Object
      • отбор, который следует приминить к табчасти допреквизитов

Возвращает:

String:
  • XML строка в терминах dhtml.PropertyGrid

handle_event

(
  • obj
  • name
  • attr
)
Boolean | Array.<> private

Определен в src\meta_mngrs.js:241

Выполняет методы подписки на событие

Служебный, внутренний метод, вызываемый формами и обсерверами при создании и изменении объекта данных
Выполняет в цикле все назначенные обработчики текущего события
Если любой из обработчиков вернул false, возвращает false. Иначе, возвращает массив с результатами всех обработчиков

Параметры:

  • obj DataObj
    • объект, в котором произошло событие
  • name String
    • имя события
  • attr Object
    • дополнительные свойства, передаваемые в обработчик события

Возвращает:

Boolean | Array.<>:

load_array

(
  • attr
  • mgr
)
Promise. асинхронный

Описан в модуле rest

Определен в src\meta_rest.js:292

Загружает список объектов из rest-сервиса, обрезанный отбором

Параметры:

  • attr Object
    • параметры запроса
    • [selection] Object optional
      • условия отбора
    • [top] Number optional
      • максимальное число загружаемых записей
  • mgr DataManager

Возвращает:

Promise.:
  • промис с массивом загруженных прототипов DataObj

metadata

() Object

Определен в src\meta_mngrs.js:168

Метаданные объекта

указатель на фрагмент глобальных метаданных, относящмйся к текущему объекту

Возвращает:

Object:
  • объект метаданных

obj_constructor

(
  • ts_name
)
Function

Определен в src\meta_mngrs.js:385

Имя функции - конструктора объектов или строк табличных частей

Параметры:

  • ts_name String

Возвращает:

Function:

off

(
  • name
  • [method]
)

Определен в src\meta_mngrs.js:227

Удаляет подписку на событие объектов данного менеджера

Параметры:

  • name String
    • имя события [after_create, after_load, before_save, after_save, value_change, add_row, del_row]
  • [method] Function optional
    • удаляемый метод. Если не задан, будут отключены все обработчики событий name

on

(
  • name
  • [method]
)

Определен в src\meta_mngrs.js:185

Добавляет подписку на события объектов данного менеджера

В обработчиках событий можно реализовать бизнес-логику при создании, удалении и изменении объекта. Например, заполнение шапки и табличных частей, пересчет одних полей при изменении других и т.д.

Параметры:

  • name String | Object
    • имя события [after_create, after_load, before_save, after_save, value_change, add_row, del_row]
  • [method] Function optional
    • добавляемый метод, если не задан в объекте первым параметром

Пример:

// Обработчик при создании документа
// @this {DataObj} - обработчик вызывается в контексте текущего объекта
$p.doc.nom_prices_setup.on("after_create", function (attr) {
  // присваиваем новый номер документа
  return this.new_number_doc();
});

// Обработчик события "при изменении свойства" в шапке или табличной части при редактировании в форме объекта
// @this {DataObj} - обработчик вызывается в контексте текущего объекта
$p.doc.nom_prices_setup.on("add_row", function (attr) {
  // установим валюту и тип цен по умолчению при добавлении строки
  if(attr.tabular_section == "goods"){
    attr.row.price_type = this.price_type;
    attr.row.currency = this.price_type.price_currency;
  }
});

pouch_find_rows

(
  • selection
)
Promise.

Описан в модуле meta_pouchdb

Определен в src\meta_pouchdb.js:108

Найти строки

Возвращает массив дата-объектов, обрезанный отбором selection
Eсли отбор пустой, возвращаются все строки из PouchDB.

Параметры:

  • selection Object | Function
    • в ключах имена полей, в значениях значения фильтра или объект {like: "значение"} или {not: значение}
    • [_top] Number optional
    • [_skip] Number optional
    • [_raw] Boolean optional
      • если истина, возвращаются сырые данные, а не дата-объекты
    • [_total_count] Boolean optional
      • если истина, вычисляет общее число записей под фильтром, без учета _skip и _top

Возвращает:

Promise.:

pouch_selection

(
  • attr
)
Promise.

Описан в модуле meta_pouchdb

Определен в src\meta_pouchdb.js:350

Возвращает набор данных для динсписка

Параметры:

  • attr Object

Возвращает:

Promise.:

pouch_tree

(
  • attr
)
Promise.

Описан в модуле meta_pouchdb

Определен в src\meta_pouchdb.js:535

Возвращает набор данных для дерева динсписка

Параметры:

  • attr Object

Возвращает:

Promise.:

print

(
  • ref
  • model
  • [wnd]
)

Определен в src\meta_mngrs.js:756

Печатает объект

Параметры:

  • ref DataObj | String
    • guid ссылки на объект
  • model String | DataObj.cst.formulas
    • идентификатор команды печати
  • [wnd] DhtmlXWindows optional
    • окно, из которого вызываем печать

save_attachment

(
  • ref
  • att_id
  • attachment
  • type
)
Promise асинхронный

Описан в модуле meta_pouchdb

Определен в src\meta_pouchdb.js:576

Сохраняет присоединенный файл

Параметры:

  • ref Object
  • att_id Object
  • attachment Object
  • type Object

Возвращает:

Promise:

sync_grid

(
  • grid
  • attr
)

Определен в src\meta_mngrs.js:406

Выводит фрагмент списка объектов данного менеджера, ограниченный фильтром attr в grid

Параметры:

  • grid DhtmlXGridObject
  • attr Object

Свойства

alatable

Array только для чтения

Определен в src\meta_mngrs.js:154

Указатель на массив, сопоставленный с таблицей локальной базы данных

Фактически - хранилище объектов данного класса

cachable

String - ("ram", "doc", "doc_remote", "meta", "e1cib") только для чтения

Определен в src\meta_mngrs.js:108

Способ кеширования объектов этого менеджера

Выполняет две функции:

  • Указывает, нужно ли сохранять (искать) объекты в локальном кеше или сразу топать на сервер
  • Указывает, нужно ли запоминать представления ссылок (инверсно). Для кешируемых, представления ссылок запоминать необязательно, т.к. его быстрее вычислить по месту

class_name

String только для чтения

Определен в src\meta_mngrs.js:142

Имя типа объектов этого менеджера

extra_fields

Array

Определен в src\meta_mngrs.js:337

Дополнительные реквизиты

Массив дополнителных реквизитов (аналог подсистемы Свойства БСП) вычисляется через ПВХ НазначениеДополнительныхРеквизитов или справочник НазначениеСвойствКатегорийОбъектов

extra_properties

Array

Определен в src\meta_mngrs.js:371

Дополнительные свойства

Массив дополнителных свойств (аналог подсистемы Свойства БСП) вычисляется через ПВХ НазначениеДополнительныхРеквизитов или справочник НазначениеСвойствКатегорийОбъектов

family_name

String только для чтения

Определен в src\meta_mngrs.js:295

Имя семейства объектов данного менеджера

Примеры: "справочников", "документов", "регистров сведений"

pouch_db

Unknown

Provided by the meta_pouchdb module.

Определен в src\meta_pouchdb.js:94

Возвращает базу PouchDB, связанную с объектами данного менеджера

rest_name

String только для чтения

Provided by the rest module.

Определен в src\meta_rest.js:459

Имя объектов этого менеджера для запросов к rest-серверу

Идентификатор формируется по принципу: ПрефиксИмени_ИмяОбъектаКонфигурации_СуффиксИмени

  • Справочник Catalog
  • Документ Document
  • Журнал документов DocumentJournal
  • Константа Constant
  • План обмена ExchangePlan
  • План счетов ChartOfAccounts
  • План видов расчета ChartOfCalculationTypes
  • План видов характеристик ChartOfCharacteristicTypes
  • Регистр сведений InformationRegister
  • Регистр накопления AccumulationRegister
  • Регистр расчета CalculationRegister
  • Регистр бухгалтерии AccountingRegister
  • Бизнес-процесс BusinessProcess
  • Задача Task
  • Обработка DataProcessor
  • Отчет Report
  • Общий модуль Module
  • Внешняя обработка ExternalDataProcessor
  • Внешний отчет ExternalReport

table_name

String только для чтения

Определен в src\meta_mngrs.js:309

Имя таблицы объектов этого менеджера в базе alasql

События

add_row

При добавлении строки табличной части

after_create

После создания

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

after_load

После чтения объекта с сервера

Имеет смысл для объектов с типом кеширования ("doc", "doc_remote", "meta", "e1cib"). т.к. структура DataObj может отличаться от прототипа в базе-источнике, в обработчике можно дозаполнить или пересчитать реквизиты прочитанного объекта

after_save

После записи

before_save

Перед записью

Возникает перед записью объекта. В обработчике можно проверить корректность данных, рассчитать итоги и т.д. Запись можно отклонить, если у пользователя недостаточно прав, либо введены некорректные данные

del_row

При удалении строки табличной части

value_change

При изменении реквизита шапки или табличной части