Класс StoreBarcodeTable
является частью модуля каталогов в 1С-Битрикс и используется для работы с таблицей штрихкодов товаров. Он позволяет управлять штрихкодами, связанными с товарами на складах, а также предоставляет набор методов для удобной работы с этой информацией.

Класс наследуется от базового класса Bitrix\Main\ORM\Data\DataManager
, который обеспечивает основные операции с данными в Битрикс на уровне ORM (Object-Relational Mapping).
В этом руководстве мы рассмотрим методы и примеры использования класса StoreBarcodeTable
, а также его цепочку наследования и назначение.
Цепочка наследования
Класс StoreBarcodeTable
является наследником класса Bitrix\Main\ORM\Data\DataManager
. До версии 18.0.2 модуля Main
использовался класс Bitrix\Main\Entity\DataManager
. Это важно для понимания, как осуществляется работа с данными и какие возможности предоставляет ORM в 1С-Битрикс.
Основные возможности ORM в Битрикс включают:
- Операции с базой данных (insert, update, delete).
- Валидация данных.
- Преобразование таблиц БД в объекты.
Методы класса
1. Метод getMap()
Метод getMap()
возвращает описание структуры таблицы штрихкодов. Он является статическим и не принимает параметров.
Пример использования:
use Bitrix\Catalog\StoreBarcodeTable;
// Получаем список полей таблицы штрихкодов
$fields = StoreBarcodeTable::getMap();
echo '<pre>';
print_r($fields);
echo '</pre>';
Метод getMap()
возвращает массив, который описывает все поля таблицы, их типы и другие характеристики. Например, для таблицы штрихкодов товара могут быть такие поля:
ID
— уникальный идентификатор.PRODUCT_ID
— идентификатор товара.BARCODE
— штрихкод товара.STORE_ID
— идентификатор склада.ORDER_ID
— идентификатор заказа.
2. Метод getTableName()
Метод getTableName()
возвращает имя таблицы, в которой хранятся штрихкоды товаров. Это тоже статический метод.
Пример использования:
use Bitrix\Catalog\StoreBarcodeTable;
// Получаем имя таблицы штрихкодов
$tableName = StoreBarcodeTable::getTableName();
echo "Имя таблицы: " . $tableName;
Метод возвращает строку, которая указывает на имя таблицы в базе данных, где хранятся штрихкоды товаров.
3. Метод validateBarcode()
Метод validateBarcode()
возвращает валидатор для поля BARCODE
. Он также является статическим и используется для проверки корректности введенного штрихкода.
Пример использования:
use Bitrix\Catalog\StoreBarcodeTable;
// Получаем валидатор для поля BARCODE
$validators = StoreBarcodeTable::validateBarcode();
echo '<pre>';
print_r($validators);
echo '</pre>';
Этот метод полезен, когда необходимо провести валидацию штрихкодов перед их сохранением в базу данных.
Описание полей таблицы
Таблица штрихкодов товаров в 1С-Битрикс состоит из нескольких полей, каждое из которых имеет свое назначение.
Поля таблицы:
- ID — уникальный идентификатор записи.
- PRODUCT_ID — идентификатор товара, к которому относится штрихкод.
- BARCODE — сам штрихкод товара (строка, длина до 100 символов).
- STORE_ID — идентификатор склада, на котором хранится товар.
- ORDER_ID — идентификатор заказа, если штрихкод связан с конкретным заказом.
- DATE_MODIFY — дата последнего изменения записи.
- DATE_CREATE — дата создания записи.
- CREATED_BY — идентификатор пользователя, создавшего запись.
- MODIFIED_BY — идентификатор пользователя, изменившего запись.
- PRODUCT — связь с объектом товара (
\Bitrix\Catalog\Product
). - STORE — связь с объектом склада (
\Bitrix\Catalog\Store
). - CREATED_BY_USER — связь с пользователем, создавшим запись.
- MODIFIED_BY_USER — связь с пользователем, изменившим запись.
Эти поля используются для хранения информации о штрихкодах, товарах, складах и пользователях.
Пример работы с StoreBarcodeTable
В следующем примере мы добавим новый штрихкод для товара, используя класс StoreBarcodeTable
.
Пример: Добавление штрихкода для товара
use Bitrix\Catalog\StoreBarcodeTable;
use Bitrix\Main\Type\DateTime;
use Bitrix\Main\Loader;
Loader::includeModule('catalog');
// Данные для нового штрихкода
$productId = 123; // Идентификатор товара
$barcode = '123456789012'; // Штрихкод
$storeId = 1; // Идентификатор склада
// Добавляем запись о штрихкоде
$result = StoreBarcodeTable::add([
'PRODUCT_ID' => $productId,
'BARCODE' => $barcode,
'STORE_ID' => $storeId,
'DATE_CREATE' => new DateTime(),
]);
if ($result->isSuccess()) {
echo "Штрихкод успешно добавлен!";
} else {
echo "Ошибка при добавлении штрихкода: " . implode(", ", $result->getErrorMessages());
}
В этом примере мы создаем новый штрихкод для товара с ID 123 и добавляем его в таблицу. Если операция проходит успешно, выводится сообщение о добавлении штрихкода, иначе выводятся ошибки.
Пример: Получение штрихкодов для товара
use Bitrix\Catalog\StoreBarcodeTable;
use Bitrix\Main\Loader;
Loader::includeModule('catalog');
// Получаем все штрихкоды для товара с ID 123
$barcodes = StoreBarcodeTable::getList([
'filter' => ['PRODUCT_ID' => 123],
]);
while ($barcode = $barcodes->fetch()) {
echo 'Штрихкод: ' . $barcode['BARCODE'] . '<br>';
}
Этот код позволяет получить все штрихкоды для товара с заданным ID и вывести их на экран.
Заключение
Класс StoreBarcodeTable
является мощным инструментом для работы с таблицей штрихкодов в 1С-Битрикс. Он предоставляет удобные методы для получения информации о таблице, работы с данными и валидации штрихкодов. В этой статье мы рассмотрели основные методы класса и примеры их использования. Надеемся, что данное руководство поможет вам эффективно использовать StoreBarcodeTable
в ваших проектах на платформе 1С-Битрикс.