# Методы table # table.createItem() ### Создание записи ```JavaScript table.createItem(string $tableName, array|object $data) ``` ##### Описание: Создает запись в таблице и возвращает значение этой записи, как объект. ##### Атрибуты:
ИмяТипОписание
tableName stringНаименование таблицы, в которой будет создана запись
dataarray | object ( json{} )Значения | значение записи
##### Возвращает: **ScriptCustomTableItem** - все значения полей записи в формате объекта. ##### Пример: Добавление данных в кастомную таблицу **regions**: ```JavaScript var region = { "name": "Юго-Восточный", "comment": "Cоздано через v8" }; var newRegion = table.createItem('regions', region); ``` # table.find() ### Поиск записей ```JavaScript table.find(string $tableName, array|object $columns = [], array|object $where = [], array|object $orderBy = [], ?int $limit = null, ?int $offset = null): array ``` ##### Описание: Ищет записи в таблице и возвращает их в виде массива объектов. ##### Атрибуты:
ИмяТипОписание
tableNamestringНаименование таблицы, в которой будет найдена запись
columns array | object ( json{} )Столбцы которые будут возвращены в ответе. При поиске из основной таблицы указывается только наименование поля, при поиске в связанной таблице указывается в формате: **алиас.поле**. Если нужно тянуть несколько полей с одинаковыми именами, то указываем алиас результирующего поля, например: 'products.id as product\_id'
where array | object ( json{} )Условие, которое будет проверяться при поиске
orderBy array | object ( json{} )Устанавливает в какой последовательности будут возвращены выходные значения
limit intУстанавливает максимальное количество возвращенных значений
offset intУстанавливает смещение

Чтобы обратится к display field, который автоматически тянется из RELATION в v8 необходимо указать {алиасТаблицы}\_{имяПоля}. Например, если в RELATION указан алиас **products** и в display field указано поле **name,** то в результирующую выборку это поле попадает под именем **products\_name**.

##### Возвращает: **array** - массив объектов (найденных записей). ##### Примеры: Получение **всех** регионов (лимит 100): ```JavaScript let items = table.find('regions'); let regions = []; for(let i = 0; i < items.length; i++) { // добавление поочередно всех записей в объект regions let item = items[i]; regions.push({"id": item.id, "name": item.name, "comment": item.comment}); } ``` Получение **трех** значений поля **region** с **id больше двух**: ```JavaScript let columns = ['region']; let where = [["id", ">", 2]]; let orderBy = []; let limit = 3; let offset = 0; let items = table.find('regions', columns, where, orderBy, limit, offset); ``` Получение данных из связанной таблицы **leads**: ```JavaScript let columns = ['leads.person_id']; let where = [["leads.id", ">", 2]]; let items = table.find('orders', columns, where); let items2 = table.find('orders') debug(items2[0].products_name) ``` Использование оператора **IN**: ```JavaScript  ["stage_code", "IN", ["planned", "active", "submission"]] ``` # table.count() ### Подсчет количества записей ```JavaScript table.count(string $tableName, array|object $where = []) ``` ##### Описание: Ищет записи соответствующие условию метода в таблице и возвращает их количество. ##### Атрибуты:
ИмяТипОписание
tableNamestringНаименование таблицы, в которой будет создана запись
wherearray | object ( json{} )Условие, которое будет проверяться при поиске
##### Возвращает: **int** - количество записей в формате числа. ##### Примеры: Получение количества **всех** записей в таблице: ```JavaScript var regionsCount = table.count("regions"); memory.setAttr('regionsCount', regionsCount); ``` Получение количества записей с **id больше 2**: ```JavaScript var countRegionIdsGreather2 = table.count("regions", [["id", ">", 2]]); memory.setAttr('countRegionIdsGreather2', countRegionIdsGreather2); ``` # table.sum() ### Подсчет суммы по полю ```JavaScript table.sum(string $tableName, string $column, array|object $where = []) ``` ##### Описание: Ищет записи соответствующие условию метода в таблице и возвращает сумму их значений. ##### Атрибуты:
ИмяТипОписание
tableNamestringНаименование таблицы, в которой будет создана запись
columnstringНаименование поля из которого будут браться значения
wherearray | object ( json{} )Условие, которое будет проверяться при поиске
##### Возвращает: **int** - сумма всех значений поля в виде числа. ##### Примеры: Подсчет суммы **всех** значений записей поля **id** в таблице **regions:** ```JavaScript var sumRegionIds = table.sum("regions", 'id'); memory.setAttr('sumRegionIds', sumRegionIds); ``` Подсчет суммы значений записей поля **id** в таблице **regions** с **id больше нуля**: ```JavaScript var sumRegionIds = table.sum("regions", 'id', [["id", ">", 0]]); memory.setAttr('sumRegionIds', sumRegionIds); ``` # table.max() ### Поиск максимального значения по полю ``` table.max(string $tableName, string $column, array|object $where = []) ``` ##### Описание: Ищет записи соответствующие условию метода в таблице и возвращает наибольшее по значению из них. ##### Атрибуты:
ИмяТипОписание
tableNamestringНаименование таблицы, в которой будет создана запись
columnstringНаименование поля из которого будут браться значения
wherearray | object ( json{} )Условие, которое будет проверяться при поиске
##### Возвращает: **mixed** - максимальное среди всех значений поля в том же типе, что в таблице или **null** - если максимальное значение не было найдено. ##### Примеры: Нахождение максимального значения в поле **id** в таблице **regions:** ```JavaScript var maxRegionId = table.max("regions", 'id'); memory.setAttr('maxRegionId', maxRegionId); ``` Нахождение максимального значения в поле **id** в таблице **regions** с **id больше нуля**: ```JavaScript var maxRegionId = table.max("regions", 'id', [["id", ">", 0]]); memory.setAttr('maxRegionId', maxRegionId); ```