имя профиля БД. По умолчанию берется значение из настройки applications.data.db в конфигурационном файле. Дополнительные профили указываются в applications.data.dbProfiles.
значение первичного ключа для загрузки конкретного экземпляра модели (результат загрузки - объект). Если не передан, загружается коллекция экземпляров модели (результат загрузки - массив)
args.BDate
Date
задает начальную дату (условие >=) для фильрации по расчетной дате
args.EDate
Date
задает конечную дату (условие <=) для фильрации по расчетной дате
args.TopCount
number
задает ограничение на количество загружаымых строк
args.RowsOffset
number
задает смещение, которое позволяет пропустить указанное количество найденных строк
args.order
[string], [object]
задает сортировку по указанным колонкам. По умолчания указанные колонки сортируются по возрастанию. Для сортировки по убывания необходимо передать объект со свойствами: property - имя колонки; desc - если true, то включает сортировку по убыванию.
args.filter
object
задает фильтр по колонкам (доступные операторы см. ниже)
args.fields
[string]
массив свойств и дочерних коллекций модели, которые нужно загружать при частичной загрузке, подробнее
args.lock
boolean
флаг, означающий, что загрузка экземпляра модели должна сопровождаться попыткой его блокировки
isAsync
boolean
флаг, при котором отправленный запрос будет асинхронным. По умолчанию - true
import{ModelSource}from'ecosoft-lexema8'importContractorfrom'./contractor.model.json'...constmodelSource=newModelSource(Contractor);modelSource.load({VCode:26})// если передан VCode, то грузиться объект, иначе массивmodelSource.load({BDate:newDate(2018,0,1),EDate:newDate(2019,11,31,23,59,59,999)})modelSource.load({TopCount:2})modelSource.load({RowsOffset:2})modelSource.load({TopCount:2,RowsOffset:2,order:['VCode']})modelSource.load({TopCount:2,RowsOffset:2,order:['City.VCode']})// сортировка по коду справочникаmodelSource.load({TopCount:2,RowsOffset:2,order:[{property:'City.VCode',desc:true}]})// сортировка по коду справочника по убываниюmodelSource.load({fields:['Name','City.Name','[Detail].City']})modelSource.load({filter:{VCode:26}})modelSource.load({filter:{Name:{$not:null}}})modelSource.load({filter:{Name:{$not:null},City:{$not:null}}})modelSource.load({filter:{$or:[{Name:{$not:null}},{City:{$not:null}}]}})modelSource.load({filter:{'City.CDate':{$gt:newDate(2020,0,1)}}})
Метод load поддерживает частичную загрузку данных. Для этого нужно в объекте args передать свойство fields - массив свойств для загрузки. Если field был передан, то данный функционал работает по принципу белого списка - загружаются только те свойства, что были указаны. Поддерживается следующий формат передачи данных:
Field - загрузка поля Field.
ObjectField.Field - для справочной колонки ObjectField загрузить поле Field.
[Detail] - загрузка дочерней коллекции.
[Detail].Field - загрузка поля Field из дочерней коллекции Detail.
Примечания
Данное свойство не расширяет базовое ограничение на вложенность элементов модели.
Свойства, соответсвующие primaryKeyProperty и foreignKeyProperty (по умолчанию VCode и PCode соотвественно) моделей загружаются всегда, они требуются для связки загружаемых данных.
constmodelSource=newModelSource(Contractor);// сохранение// .. краткая форма - изменение объекта, у которого значение первичного ключа = 326modelSource.save({Name:'мояноваязаявка',VCode:326});// .. полная форма: пусть у нас есть загруженный объект модели - obj. меняем ему какие то свойства и сохраняемobj.Описание="test";modelSource.save(obj);
constmodelSource=newModelSource(Contractor);// создание объекта с заранее сгенерированным VCode:modelSource.genPrimaryKey().done(function(vcode){someObject.VCode=vcode;modelSource.save(someObject,true);//второй параметер показывает, что объект должен быть вставлен (insert,а не update) });