Класс DocManager
src\meta_mngrs.js:2730
Родительский модуль: metadata
Абстрактный менеджер документов
Экземпляры объектов этого класса создаются при выполнении конструктора Meta в соответствии с описанием метаданных конфигурации и помещаются в коллекцию Documents
Конструктор
DocManager
-
class_name
Параметры:
-
class_name
String
Состав
Методы
Свойства
Методы
create
-
[attr]
-
[fill_default]
Создаёт новый объект типа объектов текущего менеджера
Для кешируемых объектов, все действия происходят на клиенте
Для некешируемых, выполняется обращение к серверу для получения guid и значений реквизитов по умолчанию
Параметры:
-
[attr]
Object optional- значениями полей этого объекта будет заполнен создаваемый объект
-
[fill_default]
Boolean optional- признак, надо ли заполнять (инициализировать) создаваемый объект значениями полей по умолчанию
Возвращает:
each
-
fn
Выполняет перебор элементов локальной коллекции
Параметры:
-
fn
Function- функция, вызываемая для каждого элемента локальной коллекции
export
-
attr
Экспортирует данные в файл или в строковую переменную или на сервер
- Выгружаться может как единичный объект, так и коллекция объектов
- В параметрах метода либо интерактивно могут задаваться правила экспорта, такие как:
- Формат формируемого файла (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
Находит первый элемент, в любом поле которого есть искомое значение
Параметры:
-
val
- значение для поиска
-
columns
String | Array- колонки, в которых искать
Возвращает:
find_rows
-
selection
-
[callback]
Найти строки
Возвращает массив дата-объектов, обрезанный отбором selection
Eсли отбор пустой, возвращаются все строки, закешированные в менеджере.
Имеет смысл для объектов, у которых cachable = "ram"
Параметры:
-
selection
Object- в ключах имена полей, в значениях значения фильтра или объект {like: значение}
-
[callback]
Function optional- в который передается текущий объект данных на каждой итерации
Возвращает:
first_folder
-
owner
Находит перую папку в пределах подчинения владельцу
Параметры:
-
owner
DataObj | String
Возвращает:
- ссылка найденной папки или пустая ссылка
form_obj
-
pwnd
-
attr
Форма объекта данных
По умолчанию, форма строится автоматически по описанию метаданных.
Метод можно переопределить для конкретного менеджера
Параметры:
-
pwnd
DhtmlXWindows- указатель на родительскую форму
-
attr
Object | DataObj | String- параметры инициализации формы
get
-
ref
-
[force_promise]
-
[do_not_create]
Возвращает объект по ссылке (читает из датабазы или локального кеша) если идентификатор пуст, создаёт новый объект
Параметры:
-
ref
String | Object- ссылочный идентификатор
-
[force_promise]
Boolean optional- Если истина, возвращает промис, даже для локальных объектов. Если ложь, ищет только в локальном кеше
-
[do_not_create]
Boolean optional- Не создавать новый. Например, когда поиск элемента выполняется из конструктора
Возвращает:
get_option_list
-
val
-
[selection]
Возвращает массив доступных значений для комбобокса
Параметры:
Возвращает:
get_property_grid_xml
-
oxml
-
o
-
extra_fields
Возаращает строку xml для инициализации PropertyGrid
служебный метод, используется OHeadFields
Параметры:
-
oxml
Object- объект с иерархией полей (входной параметр - правила)
-
o
DataObj- объект данных, из полей и табличных частей которого будут прочитаны значения
-
extra_fields
Object- объект с описанием допреквизитов
-
ts
String- имя табчасти
-
title
String- заголовок в oxml, под которым следует расположить допреквизиты // "Дополнительные реквизиты", "Свойства изделия", "Параметры"
-
selection
Object- отбор, который следует приминить к табчасти допреквизитов
Возвращает:
- XML строка в терминах dhtml.PropertyGrid
get_sql_struct
-
attr
Возаращает массив запросов для создания таблиц объекта и его табличных частей
Параметры:
-
attr
Object-
action
String- [create_table, drop, insert, update, replace, select, delete]
-
Возвращает:
handle_event
-
obj
-
name
-
attr
Выполняет методы подписки на событие
Служебный, внутренний метод, вызываемый формами и обсерверами при создании и изменении объекта данных
Выполняет в цикле все назначенные обработчики текущего события
Если любой из обработчиков вернул false
, возвращает false
. Иначе, возвращает массив с результатами всех обработчиков
Параметры:
-
obj
DataObj- объект, в котором произошло событие
-
name
String- имя события
-
attr
Object- дополнительные свойства, передаваемые в обработчик события
Возвращает:
load_array
-
aattr
-
forse
сохраняет массив объектов в менеджере
Параметры:
-
aattr
Array- массив объектов для трансформации в объекты ссылочного типа
-
forse
Boolean- перезаполнять объект
load_cached_server_array
-
list
-
alt_rest_name
Догружает с сервера объекты, которых нет в локальном кеше
Параметры:
-
list
Array- массив строк ссылок или объектов со свойством ref
-
alt_rest_name
String- альтернативный rest_name для загрузки с сервера
Возвращает:
metadata
()
Object
Метаданные объекта
указатель на фрагмент глобальных метаданных, относящмйся к текущему объекту
Возвращает:
- объект метаданных
obj_constructor
-
ts_name
Имя функции - конструктора объектов или строк табличных частей
Параметры:
-
ts_name
String
Возвращает:
off
-
name
-
[method]
Удаляет подписку на событие объектов данного менеджера
Параметры:
-
name
String- имя события [after_create, after_load, before_save, after_save, value_change, add_row, del_row]
-
[method]
Function optional- удаляемый метод. Если не задан, будут отключены все обработчики событий
name
- удаляемый метод. Если не задан, будут отключены все обработчики событий
on
-
name
-
[method]
Добавляет подписку на события объектов данного менеджера
В обработчиках событий можно реализовать бизнес-логику при создании, удалении и изменении объекта. Например, заполнение шапки и табличных частей, пересчет одних полей при изменении других и т.д.
Параметры:
-
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
Найти строки
Возвращает массив дата-объектов, обрезанный отбором selection
Eсли отбор пустой, возвращаются все строки из PouchDB.
Параметры:
-
selection
Object | Function- в ключах имена полей, в значениях значения фильтра или объект {like: "значение"} или {not: значение}
Возвращает:
pouch_selection
-
attr
Возвращает набор данных для динсписка
Параметры:
-
attr
Object
Возвращает:
pouch_tree
-
attr
Возвращает набор данных для дерева динсписка
Параметры:
-
attr
Object
Возвращает:
predefined
-
name
Возаращает предопределенный элемент по имени предопределенных данных
Параметры:
-
name
String- имя предопределенного
Возвращает:
print
-
ref
-
model
-
[wnd]
Печатает объект
Параметры:
-
ref
DataObj | String- guid ссылки на объект
-
model
String | DataObj.cst.formulas- идентификатор команды печати
-
[wnd]
DhtmlXWindows optional- окно, из которого вызываем печать
push
-
o
-
[new_ref]
Помещает элемент ссылочных данных в локальную коллекцию
Параметры:
-
o
DataObj -
[new_ref]
String optional- новое значение ссылки объекта
save_attachment
-
ref
-
att_id
-
attachment
-
type
Сохраняет присоединенный файл
Параметры:
-
ref
Object -
att_id
Object -
attachment
Object -
type
Object
Возвращает:
sync_grid
-
grid
-
attr
Выводит фрагмент списка объектов данного менеджера, ограниченный фильтром attr в grid
Параметры:
-
grid
DhtmlXGridObject -
attr
Object
unload_obj
-
ref
Удаляет объект из 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
Перед записью
Возникает перед записью объекта. В обработчике можно проверить корректность данных, рассчитать итоги и т.д. Запись можно отклонить, если у пользователя недостаточно прав, либо введены некорректные данные