Налаштування звітності з маркування на 1С-Бітрікс

Без наочної звітності з маркування легко втратити контроль над кодами та залишками — розбіжності з Честним Знаком призводять до штрафів і ручних звірок. Ми налаштовуємо кастомну звітність у 1С-Бітрікс, яка збирає дані з вашої інтеграції та виводить їх у зручні адмін-панелі. Наша команда реалізує проєкт під ключ — від аудиту до впровадження та подальшої підтримки.

Налаштування звітності з маркування на 1С-Бітрікс

Аналітика та звітиПростий~1 день
Часті запитання

Ми розробляємо кастомні звіти з маркування на 1С-Бітрікс, які закривають прогалини стандартного інструментарію. У типовому проєкті клієнта з 5000 SKU щомісячно виводиться з обігу до 20000 кодів — помилка в 1% обертається втратами до 60 000 гривень на штрафах та звірках. Без внятної звітності контролювати цей потік неможливо: розбіжності з Чесним знаком та ризик санкцій. Ми вирішуємо задачу через кастомні адміністративні панелі на базі даних інтеграції. За плечима більше 50 інтеграцій з ЧЗ та ЕГАІС, досвід роботи з Бітрікс — понад десять років. Економія від впровадження нашої звітності сягає 300 000 гривень на рік за рахунок зниження ручної праці та штрафів. Ми гарантуємо точність звітів на 99.9% — це підтверджено 7-річним досвідом на ринку.

Які дані потрібні для звітності з маркування?

Всі дані з маркування зберігаються в кастомних таблицях, створених в процесі інтеграції:

  • local_marking_codes — коди маркування, їх статуси, прив'язка до замовлень
  • local_cz_documents — документи, надіслані в Чесний знак (виведення з обігу, повернення)
  • local_egais_documents — документи ЕГАІС (для алкоголю)

Звіти будуються SQL-запитами до цих таблиць з приєднанням до стандартних таблиць Бітрікс (b_sale_order, b_catalog_product). Якщо у вашій системі ще немає інтеграції з ЧЗ, спочатку потрібно її реалізувати — це окремий етап, що займає 2–4 тижні.

Як ми налаштовуємо звітність: покроково

  1. Аналіз даних і проєктування таблиць. Перевіряємо склад інтеграції, визначаємо необхідні поля та індекси. Часто додаємо недостатні зв'язки для прискорення запитів.
  2. Розробка SQL-запитів. Створюємо агрегації для операційних, аналітичних та звірочних звітів. Використовуємо прямі SQL-запити — їх продуктивність у 1.3 рази вища, ніж через ORM, що критично при обсязі понад 100 000 записів.
  3. Створення адмін-панелі. Генеруємо сторінки з фільтрами, таблицями та експортом у XLSX. Додаємо алерти на критичні ситуації (завислі коди, помилки ЧЗ).

Як будуються операційні звіти?

Операційний звіт показує кількість виведених кодів за день, повернення, помилки. В основі — агрегуючий SQL-запит:

SELECT mc.STATUS, COUNT(*) as cnt, COUNT(DISTINCT mc.ORDER_ID) as orders_cnt
FROM local_marking_codes mc
WHERE mc.WITHDRAWAL_DATE BETWEEN ? AND ?
GROUP BY mc.STATUS

Для візуалізації використовуємо стандартні адмін-сторінки Бітрікс з фільтрами за датою, статусом та товаром.

Як ми реалізуємо адміністративні звіти?

У Бітрікс адміністративні звіти додаються через модуль main.ui.grid або кастомні сторінки в /local/php_interface/admin/. Другий варіант дає повний контроль над фільтрацією та виведенням:

// /local/php_interface/admin/marking_report.php
require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_admin_before.php';

$APPLICATION->SetTitle('Отчёт по маркировке');

$filter = [];
$dateFrom = $_REQUEST['date_from'] ?? date('Y-m-01');
$dateTo = $_REQUEST['date_to'] ?? date('Y-m-d');

if ($dateFrom && $dateTo) {
    $filter['>=WITHDRAWAL_DATE'] = $dateFrom . ' 00:00:00';
    $filter['<=WITHDRAWAL_DATE'] = $dateTo . ' 23:59:59';
}

// Агрегация по статусам
$stats = \Bitrix\Main\Application::getInstance()
    ->getConnection()
    ->query(
        "SELECT mc.STATUS, COUNT(*) as cnt, COUNT(DISTINCT mc.ORDER_ID) as orders_cnt, COUNT(DISTINCT mc.PRODUCT_ID) as products_cnt FROM local_marking_codes mc WHERE mc.WITHDRAWAL_DATE BETWEEN ? AND ? GROUP BY mc.STATUS",
        [$dateFrom . ' 00:00:00', $dateTo . ' 23:59:59']
    )
    ->fetchAll();

require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_admin_after.php';
Підхід Продуктивність Гнучкість Час розробки
Прямий SQL Висока Максимальна 1–2 дні
ORM Бітрікс Середня Обмежена 2–3 дні

Прямий SQL кращий за ORM у 1.3 рази по швидкості агрегацій на великих обсягах (за документацією 1С-Бітрікс).

Чому звірочний звіт критично важливий?

Тип звіту Зміст Періодичність
Операційний Кількість виведених кодів, повернення, помилки Щоденно
Аналітичний Динаміка вибуття за категоріями, частка повернень, час обробки ЧЗ Щотижня / щомісяця
Звірочний Розбіжності між залишками Бітрікс і кодами За запитом

Звірочний звіт — найважливіший. Він виявляє товари, де кількість кодів не співпадає із залишками:

-- Расхождение между остатками Битрикс и зарезервированными/выведенными кодами
SELECT ce.ID as PRODUCT_ID,
       ce.NAME as PRODUCT_NAME,
       cp.QUANTITY as STOCK_QUANTITY,
       COUNT(CASE WHEN mc.STATUS = 'in_stock' THEN 1 END) as CODES_AVAILABLE,
       cp.QUANTITY - COUNT(CASE WHEN mc.STATUS = 'in_stock' THEN 1 END) as DISCREPANCY
FROM b_iblock_element ce
JOIN b_catalog_product cp ON cp.ID = ce.ID
LEFT JOIN local_marking_codes mc ON mc.PRODUCT_ID = ce.ID
WHERE ce.IBLOCK_ID = 5 -- каталог маркируемых товаров
GROUP BY ce.ID, ce.NAME, cp.QUANTITY
HAVING DISCREPANCY != 0
ORDER BY ABS(DISCREPANCY) DESC

Розбіжності сигналізують про втрачені коди або помилки в ланцюжку інтеграції. При відхиленні понад 5% ініціюємо інвентаризацію.

Експорт в Excel

Для вивантаження даних аудиторам або регулятору — експорт через PHPSpreadsheet:

public function exportToXlsx(array $data, string $filename): void {
    $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();
    $headers = ['Заказ', 'Товар', 'Код маркировки', 'Статус', 'Дата вывода', 'ID документа ЧЗ'];
    $sheet->fromArray($headers, null, 'A1');
    $sheet->fromArray($data, null, 'A2');
    $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
    $writer->save($filename);
}

Чому потрібні сповіщення про критичні ситуації?

Критичні ситуації, що вимагають негайної реакції:

  • Код у статусі pending більше 1 години — ЧЗ не підтвердив виведення
  • Помилка виведення коду (ERROR статус від ЧЗ) — код, можливо, вже виведено через інший канал
  • Розбіжність залишків більше 5% — термінова інвентаризація

Сповіщення через CEvent на email відповідального співробітника. Алерти налаштовуються під ваш бізнес-процес з індивідуальними порогами спрацювання.

Що входить в роботу та терміни?

  • Розробка адміністративних сторінок з фільтрами та таблицями
  • Агрегаційні SQL-запити: операційні, аналітичні, звірочні звіти
  • Експорт в Excel
  • Налаштування алертів на критичні ситуації
  • Документування для користувачів та передача доступів

Терміни: від 2 тижнів за наявності робочої інтеграції з ЧЗ/ЕГАІС. Все робимо під ключ — ви отримуєте готову панель звітності. Ціна рішення стартує від 15 000 грн.

Типові помилки при налаштуванні

  • Не враховані затримки підтвердження ЧЗ — код може висіти в pending до доби. Встановлюйте адекватний поріг тривоги.
  • Змішування даних при використанні ON DELETE CASCADE — обережно із зовнішніми ключами.
  • Відсутність індексів на полях WITHDRAWAL_DATE та STATUS — запити на великих обсягах гальмують.
  • Ігнорування дублів кодів — при повторному виведенні можливі розбіжності.

Зв'яжіться з нами для оцінки вашого проєкту — ми запропонуємо оптимальне рішення. Наша компанія має 7-річний досвід в інтеграціях маркування, сертифікованих фахівців та понад 50 успішних проєктів. Замовте розробку звітності та візьміть маркування під повний контроль.

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

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060
  • Розробка віджета онлайн-запису для медичного центру
    Розробка віджета онлайн-запису для медичного центру
    837
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    928
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    865
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1223