В папке /local/php_interface/lib/ClassName.php создаем экземпляр таблицы
<?php namespace xgerasim; use Bitrix\Main\Entity; class ExampleTable extends Entity\DataManager { // название таблицы public static function getTableName() { return 'example_table'; } // колонки таблицы public static function getMap() { return [ new Entity\IntegerField('ID', [ 'primary' => true, 'autocomplete' => true ]), new Entity\IntegerField('DEAL', [ 'required' => true ]), new Entity\IntegerField('PRODUCT', [ 'required' => true ]), new Entity\IntegerField('QUANTITY', [ 'required' => true ]), new Entity\IntegerField('CUSTOM_PRICE', [ 'required' => true ]), ]; } }
Далее нужно зарегистрировать класс, добавили его в событие registerAutoLoadClasses
В папку /local/php_interface/autoload.php регистрируем класс
<?php Bitrix\Main\Loader::registerAutoLoadClasses(null, [ 'xgerasim\ExampleTable' => '/local/php_interface/lib/ClassName.php', ]);
В init.php не забываем добавить этот файл в загрузку
require_once($_SERVER['DOCUMENT_ROOT'] . '/local/php_interface/autoload.php');
Использование класса
<?php require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"); use xgerasim\ExampleTable; // создаем таблицу, если ее нет if (!ExampleTable::getEntity()->getConnection()->isTableExists(ExampleTable::getTableName())) { ExampleTable::getEntity()->createDbTable(); } // удаляем таблицу // ExampleTable::getEntity()->getConnection()->dropTable('example_table'); // Выборка элементов таблицы как массива $exampleElems = ExampleTable::getList([ 'select' => ['ID', 'DEAL', 'PRODUCT', 'CUSTOM_PRICE'], 'filter' => ['DEAL' => $dealID, 'PRODUCT' => $productId], ])->fetchAll();
Добавляем новый элемент
$result = ExampleTable::add([ 'DEAL_ID' => $dealID, 'VID_RABOT' => 'Пустая строчка', ]); if ($result->isSuccess()) { $success[] = 'Добавлена новая строчка ' . $action; }
Редактируем элемент
$result = ExampleTable::update($exampleElems[0]['ID'], ['DEAL_ID' => '555']);