Класс RegisterManager
src\meta_mngrs.js:1817
Родительский модуль: metadata
Абстрактный менеджер регистра (накопления, сведений и бухгалтерии)
Конструктор
RegisterManager
- 
    
class_name 
Параметры:
- 
    
class_nameString- имя типа менеджера объекта. например, "ireg.prices"
 
 
Состав
Методы
Свойства
Методы
export
- 
    
attr 
Экспортирует данные в файл или в строковую переменную или на сервер
- Выгружаться может как единичный объект, так и коллекция объектов
 - В параметрах метода либо интерактивно могут задаваться правила экспорта, такие как:
- Формат формируемого файла (json, xlsx, sql)
 - Дополнять ли формируемый файл информацией о метаданных (типы и связи полей)
 - Включать ли в формируемый файл данные связанных объектов
(например, выгружать вместе с заказом объекты номенклатуры и характеристик) 
 
Параметры:
- 
    
attrObject- параметры экспорта
 
- 
[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] 
Найти строки
Возвращает массив дата-объектов, обрезанный отбором selection
Eсли отбор пустой, возвращаются все строки, закешированные в менеджере.
Имеет смысл для объектов, у которых cachable = "ram"
Параметры:
- 
    
selectionObject- в ключах имена полей, в значениях значения фильтра или объект {like: значение}
 
 - 
    
[callback]Function optional- в который передается текущий объект данных на каждой итерации
 
 
Возвращает:
form_obj
- 
    
pwnd - 
    
attr 
Форма объекта данных
По умолчанию, форма строится автоматически по описанию метаданных.
Метод можно переопределить для конкретного менеджера
Параметры:
- 
    
pwndDhtmlXWindows- указатель на родительскую форму
 
 - 
    
attrObject | DataObj | String- параметры инициализации формы
 
 
get_option_list
- 
    
val - 
    
[selection] 
Возвращает массив доступных значений для комбобокса
Параметры:
Возвращает:
get_property_grid_xml
- 
    
oxml - 
    
o - 
    
extra_fields 
Возаращает строку xml для инициализации PropertyGrid
служебный метод, используется OHeadFields
Параметры:
- 
    
oxmlObject- объект с иерархией полей (входной параметр - правила)
 
 - 
    
oDataObj- объект данных, из полей и табличных частей которого будут прочитаны значения
 
 - 
    
extra_fieldsObject- объект с описанием допреквизитов
 
- 
tsString- имя табчасти
 
 - 
titleString- заголовок в oxml, под которым следует расположить допреквизиты // "Дополнительные реквизиты", "Свойства изделия", "Параметры"
 
 - 
selectionObject- отбор, который следует приминить к табчасти допреквизитов
 
 
 
Возвращает:
- XML строка в терминах dhtml.PropertyGrid
 
get_sql_struct
- 
    
attr 
Возаращает запросов для создания таблиц или извлечения данных
Параметры:
- 
    
attrObject- 
actionString- [create_table, drop, insert, update, replace, select, delete]
 
 
 - 
 
Возвращает:
handle_event
- 
    
obj - 
    
name - 
    
attr 
Выполняет методы подписки на событие
Служебный, внутренний метод, вызываемый формами и обсерверами при создании и изменении объекта данных
Выполняет в цикле все назначенные обработчики текущего события
Если любой из обработчиков вернул false, возвращает false. Иначе, возвращает массив с результатами всех обработчиков
Параметры:
- 
    
objDataObj- объект, в котором произошло событие
 
 - 
    
nameString- имя события
 
 - 
    
attrObject- дополнительные свойства, передаваемые в обработчик события
 
 
Возвращает:
load_array
- 
    
attr - 
    
mgr 
Загружает список объектов из rest-сервиса, обрезанный отбором
Параметры:
- 
    
attrObject- параметры запроса
 
- 
[selection]Object optional- условия отбора
 
 - 
[top]Number optional- максимальное число загружаемых записей
 
 
 - 
    
mgrDataManager 
Возвращает:
- промис с массивом загруженных прототипов DataObj
 
metadata
()
    Object
    
    Метаданные объекта
указатель на фрагмент глобальных метаданных, относящмйся к текущему объекту
Возвращает:
- объект метаданных
 
obj_constructor
- 
    
ts_name 
Имя функции - конструктора объектов или строк табличных частей
Параметры:
- 
    
ts_nameString 
Возвращает:
off
- 
    
name - 
    
[method] 
Удаляет подписку на событие объектов данного менеджера
Параметры:
- 
    
nameString- имя события [after_create, after_load, before_save, after_save, value_change, add_row, del_row]
 
 - 
    
[method]Function optional- удаляемый метод. Если не задан, будут отключены все обработчики событий 
name 
 - удаляемый метод. Если не задан, будут отключены все обработчики событий 
 
on
- 
    
name - 
    
[method] 
Добавляет подписку на события объектов данного менеджера
В обработчиках событий можно реализовать бизнес-логику при создании, удалении и изменении объекта. Например, заполнение шапки и табличных частей, пересчет одних полей при изменении других и т.д.
Параметры:
- 
    
nameString | 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.
Параметры:
- 
    
selectionObject | Function- в ключах имена полей, в значениях значения фильтра или объект {like: "значение"} или {not: значение}
 
 
Возвращает:
pouch_selection
- 
    
attr 
Возвращает набор данных для динсписка
Параметры:
- 
    
attrObject 
Возвращает:
pouch_tree
- 
    
attr 
Возвращает набор данных для дерева динсписка
Параметры:
- 
    
attrObject 
Возвращает:
print
- 
    
ref - 
    
model - 
    
[wnd] 
Печатает объект
Параметры:
- 
    
refDataObj | String- guid ссылки на объект
 
 - 
    
modelString | DataObj.cst.formulas- идентификатор команды печати
 
 - 
    
[wnd]DhtmlXWindows optional- окно, из которого вызываем печать
 
 
push
- 
    
o - 
    
[new_ref] 
Помещает элемент ссылочных данных в локальную коллекцию
Параметры:
- 
    
oRegisterRow - 
    
[new_ref]String optional- новое значение ссылки объекта
 
 
save_attachment
- 
    
ref - 
    
att_id - 
    
attachment - 
    
type 
Сохраняет присоединенный файл
Параметры:
- 
    
refObject - 
    
att_idObject - 
    
attachmentObject - 
    
typeObject 
Возвращает:
sync_grid
- 
    
grid - 
    
attr 
Выводит фрагмент списка объектов данного менеджера, ограниченный фильтром attr в grid
Параметры:
- 
    
gridDhtmlXGridObject - 
    
attrObject 
Свойства
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
    
    
    Перед записью
Возникает перед записью объекта. В обработчике можно проверить корректность данных, рассчитать итоги и т.д. Запись можно отклонить, если у пользователя недостаточно прав, либо введены некорректные данные
    metadata.js API