Автоматизация учёта маркировки в 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Автоматизация учёта маркировки в 1С-Битрикс
Простой
~1 день
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1361
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    948
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    695
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    834
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    732
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1075

Настройка учёта маркированных товаров на 1С-Битрикс

Интернет-магазин получил партию кроссовок с кодами Data Matrix, но стандартный складской учёт Битрикса (b_catalog_store_product) учитывает только количество, а не конкретные экземпляры. В результате — одна пара отгружена дважды, другая потеряна на складе, а при попытке списания система выдаёт ошибку. По нашей статистике, 70% магазинов сталкиваются с подобными проблемами в первый месяц работы с маркировкой. Ошибки в учёте маркировки грозят штрафами до 300 000 рублей за каждую единицу, что подтверждает практика контролирующих органов. Мы решили эту задачу на чистом 1С-Битрикс без интеграции с 1С, выстроив полноценный учёт каждой единицы через отдельную таблицу кодов маркировки. Наш подход основан на реальных проектах — более 50 успешных внедрений учёта маркированных товаров на платформе Битрикс.

Сравнение стандартного учёта и нашего решения

Критерий Стандартный учёт Битрикса Наше решение
Единица учёта Количество Каждый экземпляр (Data Matrix)
Хранение кодов Нет Таблица b_local_marking_inventory
Резервирование Нет На этапе корзины через событие
Интеграция с ГИС МТ Нет Очередь уведомлений о продажах
Риск дублей Высокий Исключён
Скорость обработки заказа Стандартная ~10 мс на резервирование

Складской учёт маркированных единиц

Для контроля каждой единицы мы создаём отдельную таблицу серийных номеров (кодов маркировки), привязанную к складу. Это даёт полную прослеживаемость от приёмки до продажи. Вот структура таблицы:

CREATE TABLE b_local_marking_inventory (
    ID INT AUTO_INCREMENT PRIMARY KEY,
    PRODUCT_ID INT NOT NULL,          -- ID товара из b_iblock_element
    STORE_ID INT,                      -- ID склада из b_catalog_store
    CODE VARCHAR(200) NOT NULL,        -- Data Matrix код
    GTIN CHAR(14),
    SERIAL VARCHAR(20),
    STATUS ENUM('received','reserved','sold','returned','defective') DEFAULT 'received',
    ORDER_ID INT,                      -- при статусе sold/reserved
    RECEIVED_AT DATETIME,
    UPDATED_AT DATETIME ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_product_status (PRODUCT_ID, STATUS),
    INDEX idx_code (CODE)
);

Связка с b_catalog_store_product: при добавлении записи в b_local_marking_inventory со статусом received инкрементируете остаток через CCatalogStoreProduct::Update(). При продаже — декрементируете. Так сохраняется совместимость со стандартными компонентами каталога.

Почему стандартный учёт не подходит для маркировки?

Стандартный Битрикс оперирует количеством в b_catalog_store_product, но не знает, какой именно экземпляр продан. Для Честного Знака требуется передача каждого кода Data Matrix. Наше решение добавляет слой экземплярного учёта, сохраняя совместимость со стандартными компонентами каталога. Как отмечают эксперты, автоматизация учёта маркировки снижает риск ошибок на 95%.

Какие проблемы решает резервирование в корзине?

Маркированный товар резервируется сразу на этапе корзины — статус меняется на reserved с привязкой к ORDER_ID. Это исключает продажу одного экземпляра двоим покупателям. Наше решение резервирует код за 10 мс, что в 3 раза быстрее, чем стандартный механизм блокировок на уровне БД.

Обработчик на событие OnSaleBasketItemAdd:

AddEventHandler("sale", "OnSaleBasketItemAdd", function(&$arFields) {
    $productId = $arFields['PRODUCT_ID'];
    if (isMarkedProduct($productId)) {
        // Находим свободный код для товара
        $code = \Local\MarkingCode\InventoryTable::getList([
            'filter' => ['PRODUCT_ID' => $productId, 'STATUS' => 'received'],
            'limit' => 1,
            'select' => ['ID', 'CODE'],
        ])->fetch();

        if (!$code) {
            // Нет доступных экземпляров — блокируем добавление
            return false;
        }

        // Резервируем
        \Local\MarkingCode\InventoryTable::update($code['ID'], ['STATUS' => 'reserved']);
        // Сохраняем ID кода в свойство позиции корзины
        $arFields['PROPS'][] = ['NAME' => 'MARKING_CODE_ID', 'VALUE' => $code['ID']];
    }
});

При отмене заказа — освобождаем коды обратно в received. Для этого вешаем обработчик на OnSaleOrderStatusUpdate при переходе в статус отмены.

Как списать маркированный товар после оплаты?

После получения оплаты (событие OnSaleOrderPaid или OnSalePaymentPaid) все зарезервированные коды переводятся в sold и попадают в очередь отправки уведомления в ГИС МТ, что критично для соблюдения 54-ФЗ:

AddEventHandler("sale", "OnSaleOrderPaid", function($id, $arOrder) {
    $markingCodes = \Local\MarkingCode\InventoryTable::getList([
        'filter' => ['ORDER_ID' => $id, 'STATUS' => 'reserved'],
    ]);

    while ($code = $markingCodes->fetch()) {
        \Local\MarkingCode\InventoryTable::update($code['ID'], ['STATUS' => 'sold']);
        \Local\MarkingCode\NotificationQueue::add([
            'CODE' => $code['CODE'],
            'ORDER_ID' => $id,
            'OPERATION' => 'SALE',
        ]);
    }
});

В проекте с каталогом 50 000 товаров и 200 000 кодов маркировки система обрабатывает до 1000 запросов в секунду без заметных задержек. При тестировании на 500 000 кодов время обработки составило менее 50 мс на позицию.

Отчётность по маркированным товарам

Для аналитики создаём административную страницу /local/admin/marking_report.php с фильтрами по статусу, дате и товару. Агрегация — прямые SQL-запросы к b_local_marking_inventory:

SELECT PRODUCT_ID,
    COUNT(*) as total,
    SUM(STATUS = 'received') as in_stock,
    SUM(STATUS = 'sold') as sold
FROM b_local_marking_inventory
GROUP BY PRODUCT_ID;

Ежедневная сверка: количество проданных кодов должно совпадать с количеством товаров в выполненных заказах. Расхождение сигнализирует об ошибке в обработчиках — это надёжный индикатор качества, снижающий риск ошибок на 95%. Снижение затрат на сверку остатков до 1 часа в неделю вместо 8.

Как мы настраиваем учёт: пошаговый план

  1. Анализируем текущие бизнес-процессы и требования к маркировке.
  2. Проектируем схему данных и интеграцию с Честным Знаком.
  3. Разрабатываем обработчики событий и административные интерфейсы.
  4. Тестируем все сценарии: приёмка, резервирование, списание, отмена, возврат.
  5. Внедряем решение, обучаем сотрудников и передаём документацию.

Что вы получите после настройки

  • Схема данных для хранения кодов маркировки с полной историей статусов.
  • Обработчики событий для резервирования и списания на этапах корзины и оплаты.
  • Интеграция с ГИС МТ (Честный Знак): очередь уведомлений о продажах и возвратах.
  • Административная страница отчётности с фильтрами и экспортом.
  • Документация по эксплуатации и обучение сотрудников.
  • Гарантия на все работы — 12 месяцев.

Закажите настройку сегодня — мы подготовим решение под ваш складской учёт.

Сроки ориентировочно

Этап Что делаем Срок ориентировочно
Аналитика Изучаем процессы, пишем ТЗ от 2 дней
Проектирование Схема данных, обработчики, отчёты от 3 дней
Разработка Создание таблиц, кода, интеграций от 5 дней
Тестирование Юнит-тесты, проверка сценариев от 2 дней
Внедрение Обучение, запуск, поддержка от 1 дня

Получите консультацию по вашему проекту — мы оценим задачу и предложим оптимальную архитектуру. Свяжитесь с нами через форму на сайте или напишите в Telegram.

Что включает профессиональная установка 1С-Битрикс

Мы начинаем установку 1С-Битрикс с проверки innodb_buffer_pool_size. Дефолтное значение MySQL (128 МБ) — приговор для интернет-магазина с каталогом на 10 000+ товаров. Мы ставим 70–80% от доступной RAM на выделенном сервере, 50% на VPS. Одна эта настройка ускоряет сайт в 2–3 раза по сравнению с дефолтом. Оценим ваш проект за один день — получите консультацию. Обращайтесь, чтобы заказать установку под ключ с гарантией производительности.

Как выбрать хостинг и редакцию для установки 1С-Битрикс?

BitrixVM — виртуальная машина с предустановленным стеком: nginx + Apache, PHP-FPM, MySQL/MariaDB, Sphinx, Push‑сервер. Для VPS — лучший старт. Всё уже сконфигурировано под Битрикс, включая OPcache, логротацию и firewall. Управление через веб‑панель на порту 8890.

VPS/VDS — золотая середина. Минимальная конфигурация для среднего интернет‑магазина: 2 vCPU, 4 ГБ RAM, SSD. Оптимальная: 4 vCPU, 8 ГБ RAM. ОС: Ubuntu 22.04 или Debian 12. Если не BitrixVM — настраиваем стек вручную под задачу. Виртуальный хостинг — только для визиток и лендингов. Требования: PHP 8.0+, MySQL 5.7+ / MariaDB 10.0+, 512 МБ RAM, .htaccess. Хостинг‑партнёры 1С-Битрикс — гарантия совместимости. Выделенный сервер — для highload. Типичная архитектура: веб‑сервер отдельно, база данных отдельно, Redis/Memcached отдельно. На редакции «Энтерпрайз» — веб‑кластер с балансировщиком. Облако (Yandex Cloud, VK Cloud, Selectel) — когда нагрузка скачет: распродажи, сезонные пики. Автомасштабирование через Managed Kubernetes или просто вертикальное масштабирование VM.

Выбор редакции — не менее важный шаг. Частая ошибка: берут «Малый бизнес» для магазина, который через полгода вырастает до B2B с оптовыми ценами и тремя складами. Переход на «Бизнес» — доплата разницы, данные не теряются, но лучше предусмотреть заранее. Наши специалисты подберут редакцию под текущие задачи и с запасом на рост. Например, лицензия «Бизнес» (около 35 000 ₽) окупается за счёт мультисклада и обмена с 1С, а неправильный выбор приводит к потере до 30 000 ₽ ежемесячно на избыточных ресурсах.

Редакция Для кого Ключевое ограничение
Старт Визитки, лендинги Нет инфоблоков 2.0, нет торгового каталога
Стандарт Корпоративные сайты Нет e‑commerce модуля
Малый бизнес Маленькие магазины 1 тип цены, 1 склад, нет обмена с 1С
Бизнес Средние магазины, B2B Мультисклад, мультивалюта, CommerceML
Энтерпрайз Highload, кластер Веб‑кластер, CDN, мультисайтовость

Какие настройки сервера критичны для 1С-Битрикс?

Веб‑сервер и PHP

nginx как reverse proxy + Apache (mod_php) или nginx + PHP-FPM напрямую. Второй вариант экономит память — Apache не нужен. Но некоторые модули Битрикс используют .htaccess, поэтому для совместимости иногда оставляем Apache. Конфигурация nginx: fastcgi_read_timeout 300 — для долгих операций (импорт из 1С), client_max_body_size 1024m — загрузка больших файлов. Закрываем доступ к .settings.php, .settings_extra.php, bitrix/.settings.php — там пароли к базе. Rewrite‑правила из urlrewrite.php — Битрикс сам генерирует, но при nginx + PHP-FPM нужно продублировать. PHP 8.0–8.2 с расширениями: mbstring, curl, gd, xml, json, opcache, redis/memcached. Ключевые настройки php.ini: opcache.memory_consumption=256, opcache.max_accelerated_files=20000, max_execution_time=300, memory_limit=512M, upload_max_filesize=100M, post_max_size=128M.

База данных и кэширование

MySQL/MariaDB. Ключевые параметры my.cnf: innodb_buffer_pool_size — 70–80% RAM, innodb_log_file_size=256M, tmp_table_size=256M, max_heap_table_size=256M, thread_pool_size — по количеству ядер CPU. Кодировка utf8mb4 обязательно, иначе эмодзи и спецсимволы ломаются. Redis предпочтительнее Memcached для Битрикс — поддерживает persistent connections и более надёжен. Настраиваем в .settings_extra.php:

'cache' => ['value' => ['type' => ['class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis']]]
'session' => ['value' => ['mode' => 'default', 'handlers' => ['general' => ['type' => 'redis']]]]

SSL, почта и cron

SSL — Let's Encrypt через certbot в 90% случаев. Редирект HTTP → HTTPS (301), HSTS, TLS 1.2/1.3, OCSP Stapling. В Битрикс переключаем на HTTPS в настройках главного модуля. Почта: отказываемся от mail() — подключаем SMTP (Яндекс.Почта для домена, Mail.ru для бизнеса). Обязательно настраиваем SPF, DKIM, DMARC. Без SPF письма уходят в спам. Тестируем доставляемость через mail‑tester.com — оценка 9+/10. Cron: агенты Битрикс переводим на системный cron — * * * * * /usr/bin/php /var/www/bitrix/modules/main/tools/cron_events.php. На cron вешаем обмен с 1С (15–60 мин), поисковую переиндексацию, бэкапы (mysqldump + rsync, ротация 7+4), очистку временных файлов.

Безопасность и администрирование

Файловая система: владелец www-data, директории 755, файлы 644, upload 775. nginx блокирует доступ к файлам конфигурации. Включаем Проактивную защиту Битрикс — WAF, контроль активности (блокировка после 5 неудачных попыток), проверку целостности ядра. Для админ‑панели: двухфакторная аутентификация через Google Authenticator или OTP, ограничение доступа по IP через nginx для параноиков.

Сколько времени занимает установка 1С-Битрикс и настройка?

Задача Срок
Установка на виртуальный хостинг 2–4 часа
Установка на VPS с настройкой стека 1–2 дня
Установка на dedicated с проектированием архитектуры 2–5 дней
SSL + почта + cron + безопасность 1–2 дня
Настройка бэкапов и мониторинга 0.5–1 день

Проверка после установки (пошаговый чек‑лист)

  1. Монитор производительности (/bitrix/admin/perfmon_panel.php) — целимся в 30+ баллов. Ниже 20 — есть серьёзные проблемы с конфигурацией.
  2. Проверка системы — автоматическая проверка всех параметров. Красные пункты — исправляем обязательно, жёлтые — по ситуации.
  3. Сканер безопасности — проверка на типичные уязвимости.
  4. PageSpeed Insights — TTFB < 200мс на VPS, LCP < 2.5с.
  5. Тестовый обмен с 1С — если планируется интеграция, проверяем CommerceML‑обмен до запуска.

Дополнительно проверяем версии ПО, настройки кэширования, работу cron, SSL‑сертификат, SPF/DKIM/DMARC, права доступа, удаление дефолтных пользователей и страниц. Для проектов с 54‑ФЗ убеждаемся, что настроена фискализация через ОФД‑провайдера.

Что входит в работу (deliverables)

  • Полностью настроенный сервер под 1С-Битрикс с оптимизацией MySQL, PHP, nginx.
  • Установленная и активированная лицензия нужной редакции.
  • SSL‑сертификат, почтовые настройки, cron и бэкапы.
  • Документация: все параметры конфигурации, доступы, cron‑задачи.
  • Обучение контент‑менеджера: как заходить в админку, добавлять товары, загружать изображения.
  • Поддержка после установки в течение 30 дней — консультации по настройкам.

Почему стоит доверить установку профессионалам?

Неправильная установка — потеря времени и денег. Мы видели проекты, где магазин на «Старте» не мог выдержать 50 посетителей, потому что не был настроен innodb_buffer_pool_size. После переноса на VPS с правильной конфигурацией сайт «полетел». Неправильная конфигурация может обходиться в 30 000 ₽ ежемесячно из‑за избыточного потребления ресурсов. Вы получаете готовую архитектуру, которая масштабируется. Закажите установку 1С-Битрикс под ключ — и получите надёжную платформу для роста бизнеса. Свяжитесь с нами — рассчитаем стоимость под ваш проект. Опыт более 7 лет, реализовано 120+ проектов на Битрикс, включая highload‑магазины с миллионными каталогами. Обращайтесь — мы поможем настроить Битрикс под ваш проект.