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

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

Абстрактный менеджер перечисления

Экземпляры объектов этого класса создаются при выполнении конструктора Meta в соответствии с описанием метаданных конфигурации и помещаются в коллекцию Enumerations

Конструктор

EnumManager

(
  • class_name
)

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

Параметры:

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

Методы

create

(
  • [attr]
  • [fill_default]
)
Promise.<>

Унаследован от RefDataManager: src\meta_mngrs.js:939

Создаёт новый объект типа объектов текущего менеджера

Для кешируемых объектов, все действия происходят на клиенте
Для некешируемых, выполняется обращение к серверу для получения guid и значений реквизитов по умолчанию

Параметры:

  • [attr] Object optional
    • значениями полей этого объекта будет заполнен создаваемый объект
  • [fill_default] Boolean optional
    • признак, надо ли заполнять (инициализировать) создаваемый объект значениями полей по умолчанию

Возвращает:

Promise.<>:

each

(
  • fn
)

Унаследован от RefDataManager: src\meta_mngrs.js:877

Выполняет перебор элементов локальной коллекции

Параметры:

  • fn Function
    • функция, вызываемая для каждого элемента локальной коллекции

export

(
  • attr
)

Унаследован от DataManager: 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

(
  • val
  • columns
)
DataObj

Унаследован от RefDataManager: src\meta_mngrs.js:1014

Находит первый элемент, в любом поле которого есть искомое значение

Параметры:

  • val
    • значение для поиска
  • columns String | Array
    • колонки, в которых искать

Возвращает:

find_rows

(
  • selection
  • [callback]
)
Array

Унаследован от DataManager: src\meta_mngrs.js:321

Найти строки

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

Параметры:

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

Возвращает:

Array:

first_folder

(
  • owner
)
DataObj

Унаследован от RefDataManager: src\meta_mngrs.js:1060

Находит перую папку в пределах подчинения владельцу

Параметры:

Возвращает:

DataObj:
  • ссылка найденной папки или пустая ссылка

form_obj

(
  • pwnd
  • attr
)

Унаследован от DataManager: src\widgets\wnd_obj.js:11

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

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

Параметры:

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

get

(
  • ref
  • [force_promise]
  • [do_not_create]
)
DataObj | Promise.

Унаследован от RefDataManager: src\meta_mngrs.js:902

Возвращает объект по ссылке (читает из датабазы или локального кеша) если идентификатор пуст, создаёт новый объект

Параметры:

  • ref String | Object
    • ссылочный идентификатор
  • [force_promise] Boolean optional
    • Если истина, возвращает промис, даже для локальных объектов. Если ложь, ищет только в локальном кеше
  • [do_not_create] Boolean optional
    • Не создавать новый. Например, когда поиск элемента выполняется из конструктора

Возвращает:

DataObj | Promise.:

get_option_list

(
  • val
  • [selection]
)
Promise.

Унаследован от DataManager переопределен в src\meta_mngrs.js:1758

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

Параметры:

  • val DataObj | String
  • [selection] Object optional

Возвращает:

Promise.:

get_property_grid_xml

(
  • oxml
  • o
  • extra_fields
)
String private

Унаследован от DataManager: 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

get_sql_struct

(
  • attr
)
Object | String

Унаследован от RefDataManager: src\meta_mngrs.js:1077

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

Параметры:

  • attr Object
    • action String
      • [create_table, drop, insert, update, replace, select, delete]

Возвращает:

Object | String:

handle_event

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

Унаследован от DataManager: src\meta_mngrs.js:241

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

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

Параметры:

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

Возвращает:

Boolean | Array.<>:

load_array

(
  • aattr
  • forse
)
асинхронный

Унаследован от DataManager переопределен в src\meta_mngrs.js:1027

сохраняет массив объектов в менеджере

Параметры:

  • aattr Array
    • массив объектов для трансформации в объекты ссылочного типа
  • forse Boolean
    • перезаполнять объект

load_cached_server_array

(
  • list
  • alt_rest_name
)
Promise

Унаследован от RefDataManager: src\meta_mngrs.js:1518

Догружает с сервера объекты, которых нет в локальном кеше

Параметры:

  • list Array
    • массив строк ссылок или объектов со свойством ref
  • alt_rest_name String
    • альтернативный rest_name для загрузки с сервера

Возвращает:

Promise:

metadata

() Object

Унаследован от DataManager: src\meta_mngrs.js:168

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

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

Возвращает:

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

obj_constructor

(
  • ts_name
)
Function

Унаследован от DataManager: src\meta_mngrs.js:385

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

Параметры:

  • ts_name String

Возвращает:

Function:

off

(
  • name
  • [method]
)

Унаследован от DataManager: 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]
)

Унаследован от DataManager: 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.

Унаследован от DataManager: 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.

Унаследован от DataManager: src\meta_pouchdb.js:350

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

Параметры:

  • attr Object

Возвращает:

Promise.:

pouch_tree

(
  • attr
)
Promise.

Унаследован от DataManager: src\meta_pouchdb.js:535

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

Параметры:

  • attr Object

Возвращает:

Promise.:

predefined

(
  • name
)
DataObj

Унаследован от RefDataManager: src\meta_mngrs.js:1579

Возаращает предопределенный элемент по имени предопределенных данных

Параметры:

  • name String
    • имя предопределенного

Возвращает:

print

(
  • ref
  • model
  • [wnd]
)

Унаследован от DataManager: src\meta_mngrs.js:756

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

Параметры:

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

push

(
  • o
  • [new_ref]
)

Унаследован от RefDataManager: src\meta_mngrs.js:861

Помещает элемент ссылочных данных в локальную коллекцию

Параметры:

  • o DataObj
  • [new_ref] String optional
    • новое значение ссылки объекта

save_attachment

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

Унаследован от DataManager: src\meta_pouchdb.js:576

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

Параметры:

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

Возвращает:

Promise:

sync_grid

(
  • grid
  • attr
)

Унаследован от DataManager: src\meta_mngrs.js:406

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

Параметры:

  • grid DhtmlXGridObject
  • attr Object

unload_obj

(
  • ref
)

Унаследован от RefDataManager: src\meta_mngrs.js:997

Удаляет объект из alasql и локального кеша

Параметры:

  • ref Object

Свойства

alatable

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

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

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

cachable

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

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

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

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

class_name

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

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

extra_fields

Array

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

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

extra_properties

Array

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

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

family_name

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

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

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

pouch_db

Unknown

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

rest_name

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

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

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

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

table_name

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

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

События

add_row

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

after_create

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

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

after_load

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

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

after_save

После записи

before_save

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

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

del_row

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

value_change

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