Блог разработчика 1С-Битрикс

Руководство по использованию класса StoreBarcodeTable в 1С-Битрикс D7

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

Руководство по использованию класса StoreBarcodeTable в Битрикс D7

Класс наследуется от базового класса 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С-Битрикс.

Теги: StoreBarcodeTable, штрихкоды, ORM, Bitrix\Main\ORM\Data\DataManager


Валерий Макеев
11.09.2025 10:28
Удаляем все штрихкоды для товара с указанным ID.
Код
<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');

use Bitrix\Catalog\StoreBarcodeTable;
use Bitrix\Main\Loader;

Loader::includeModule('catalog');

$productId = 123; // ID товара
$result = StoreBarcodeTable::getList([
    'filter' => ['PRODUCT_ID' => $productId],
    'select' => ['ID']
]);

while ($barcode = $result->fetch()) {
    $deleteResult = StoreBarcodeTable::delete($barcode['ID']);
    if (!$deleteResult->isSuccess()) {
        echo "Ошибка при удалении штрихкода {$barcode['ID']}: " . implode(', ', $deleteResult->getErrorMessages()) . "\n";
    }
}

echo "Все штрихкоды для товара {$productId} удалены";

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Разработка интернет-магазина с готовой версткой

от 4 недель

от 90 000 рублей

* указана минимальная стоимость. Стоимость выбранной лицензии «1С-Битрикс» оплачивается отдельно.

Участие в проекте

привлечение в проект на part-time основе

от 30 000 рублей / неделя

Возможно участие в проекте на ежедневной основе, как разработчика. Занятость - до 20 часов в неделю
Минимальный срок - одна неделя.

* сумма фиксированная

Модули и компоненты для «1С-Битрикс»

оценка производится на основе предоставленного Технического Задания

от 20 000 рублей
Разработка дополнительных модулей для 1С-Битрикс, расширение функционала, внедрение любых решений, требующихся для выполнения ваших бизнес-задач.

* стоимость зависит от конкретной задачи, ее объема и сложности выполняемых работ.