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

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

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

Етапи розробки

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

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

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

Обов'язкове маркування створює не лише операційне навантаження (гасити коди, оформляти повернення), а й потребу у звітності: скільки кодів виведено з обігу за період, який статус кожного документа в ЧЗ, чи є розбіжності між даними 1С-Бітрікс та Чесного Знаку. Стандартний інструментарій 1С-Бітрікс не включає звітів з маркування — їх потрібно розробляти окремо на базі даних, що накопичуються в процесі інтеграції з ЧЗ/ЄГАІС.

Джерела даних для звітів

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

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

Звіти будуються SQL-запитами до цих таблиць з об'єднанням зі стандартними таблицями 1С-Бітрікс (b_sale_order, b_catalog_iblock_element).

Реалізація адміністративних звітів

В 1С-Бітрікс адміністративні звіти додаються через модуль 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';

Ключові показники звітності

Операційний звіт (щоденний):

  • Кількість кодів, виведених з обігу за день
  • Кількість повернень до обігу
  • Помилки виведення (коди з помилкою за відповіддю ЧЗ)
  • Документи в статусі очікування (не оброблені ЧЗ більше 30 хвилин)

Аналітичний звіт (щотижневий/щомісячний):

  • Динаміка вибуття за категоріями товарів
  • Частка повернень у розрізі SKU
  • Час обробки документів ЧЗ (від надсилання до підтвердження)

Звірочний звіт:

-- Розбіжність між залишками 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

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

Експорт до 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% — ініціювати інвентаризацію

Сповіщення через CEventLog::Add() + email через CEvent::Send() для відповідального співробітника.

Склад робіт

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

Терміни: 2–3 тижні за наявності робочої інтеграції з ЧЗ/ЄГАІС.