Налаштування кастомного експорту в Excel з 1С-Бітрікс для менеджерів

Налаштування кастомного експорту в Excel з 1С-Бітрікс для менеджерів Менеджерам потрібні дані в Excel: замовлення за період, список клієнтів, залишки товарів. Стандартний Бітрікс надає експорт в обмеженій кількості місць — в основному в адміністративній частині. Кастомний експорт для менеджерів п
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування кастомного експорту в Excel з 1С-Бітрікс для менеджерів
Простий
~1 день

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

Часті запитання

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1467
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    765
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    882
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    813
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1168

Налаштування кастомного експорту в Excel з 1С-Бітрікс для менеджерів

Менеджерам потрібні дані в Excel: замовлення за період, список клієнтів, залишки товарів. Стандартний Бітрікс надає експорт в обмеженій кількості місць — в основному в адміністративній частині. Кастомний експорт для менеджерів прямо з інтерфейсу сайту або з адміністративних звітів — це окрема розробка, яку ми робимо під ключ. Наші інженери з 5+ років досвіду в Бітріксі та десятками реалізованих експортів гарантують, що вивантаження буде працювати стабільно навіть на каталогах у 50 000 позицій. Типовий кейс: менеджеру потрібно вивантажити 30 000 замовлень за квартал з фільтрами за статусом і менеджером — стандартними засобами це не зробити.

Чому стандартний експорт не підходить менеджерам?

Стандартні кнопки «Експорт» у /bitrix/admin/ вимагають прав адміністратора. Менеджери часто не мають такого доступу. Рішення — винести експорт в особистий кабінет або окрему сторінку за допомогою API Бітрікса та PhpSpreadsheet. Нижче — перевірена архітектура.

Стандартні можливості Бітрікс: звідки можна експортувати з коробки?

З коробки Бітрікс експортує в Excel:

  • Список замовлень в адміністративній частині (/bitrix/admin/sale_order.php) — кнопка «Експорт»
  • Елементи інфоблоку (/bitrix/admin/iblock_element_admin.php) — експорт через список
  • Звіти CRM в Бітрікс24

Ці інструменти дають базовий CSV/XLS без форматування, тільки з admin-частини. Для менеджерів без доступу до /bitrix/admin/ — не підходить. Порівняйте: кастомний експорт дає відформатовані файли з автопідбором ширини стовпців і стилями — в 10 разів зручніше для сприйняття.

Параметр Стандартний експорт Кастомний експорт
Доступ з адмінки Так Не обов'язково
Форматування Базове Повне (шрифти, кольори, ширина)
Фільтри Тільки за замовчуванням Будь-які (дата, статус, менеджер, сума)
Обсяг даних До 10 000 рядків До 100 000 з кешуванням
Права доступу Тільки адміністратор Налаштовувані групи

Як вивести кнопку експорту в особистий кабінет?

Найчастіше завдання — експорт замовлень з фільтром за датою, статусом, менеджером. Використовуємо PhpSpreadsheet для генерації XLSX. Код нижче — основа, яку ми адаптуємо під вашу CRM:

use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use Bitrix\Sale\OrderTable; use Bitrix\Main\Type\DateTime; class OrderExporter { public function export(array $filter): string { $orders = OrderTable::getList([ 'filter' => [ '>=DATE_INSERT' => new DateTime($filter['date_from']), '<=DATE_INSERT' => new DateTime($filter['date_to']), '=STATUS_ID' => $filter['status'] ?? null, '=LID' => SITE_ID, ], 'select' => [ 'ID', 'ACCOUNT_NUMBER', 'DATE_INSERT', 'PRICE', 'CURRENCY', 'STATUS_ID', 'USER_ID', ], 'order' => ['DATE_INSERT' => 'DESC'], ])->fetchAll(); $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); // Заголовки $sheet->fromArray( ['№ замовлення', 'Дата', 'Покупець', 'Email', 'Телефон', 'Сума', 'Валюта', 'Статус'], null, 'A1' ); $sheet->getStyle('A1:H1')->getFont()->setBold(true); $row = 2; foreach ($orders as $order) { $user = $this->getUserInfo($order['USER_ID']); $sheet->fromArray([ $order['ACCOUNT_NUMBER'], $order['DATE_INSERT']->format('d.m.Y H:i'), $user['FULL_NAME'], $user['EMAIL'], $user['PHONE'], $order['PRICE'], $order['CURRENCY'], $this->getStatusName($order['STATUS_ID']), ], null, 'A' . $row); $row++; } $writer = new Xlsx($spreadsheet); $file = tempnam(sys_get_temp_dir(), 'orders_'); $writer->save($file); return $file; } } 

Експорт залишків товарів з SQL-запитом

Для експорту залишків використовуємо зв'язку b_catalog_store_product + інфоблок. Цей запит збирає артикул, назву, загальну кількість та резерв:

$result = \Bitrix\Main\Application::getConnection()->query(" SELECT ie.id, ie.name, prop_article.value AS article, SUM(csp.amount) AS total_amount, SUM(csp.quantity_reserved) AS reserved FROM b_iblock_element ie JOIN b_iblock_element_property prop_article ON prop_article.iblock_element_id = ie.id AND prop_article.iblock_property_id = :article_prop_id LEFT JOIN b_catalog_store_product csp ON csp.product_id = ie.id WHERE ie.iblock_id = :iblock_id AND ie.active = 'Y' GROUP BY ie.id, ie.name, prop_article.value ORDER BY ie.name ", ['iblock_id' => CATALOG_IBLOCK_ID, 'article_prop_id' => ARTICLE_PROP_ID]); 

Що робити при мільйонній вибірці?

Для каталогів понад 100 000 записів додаємо посторінковий AJAX-експорт: дані вивантажуються частинами по 10 000 рядків, об'єднуються на сервері. Кешування теговане — при зміні даних інвалідується лише кеш конкретного експорту. Це знижує навантаження на БД на 70%. Додатково використовуємо потоковий запис у PhpSpreadsheet, щоб не зберігати весь документ у пам'яті.

Кеш будується на основі хешу фільтра та дати останньої зміни. При повторному запиті з тими ж параметрами файл віддається з кешу, минаючи генерацію. Це особливо ефективно для стандартних звітів, які менеджери запитують щодня.

Контроль прав і AJAX-роут

Експорт викликається через AJAX-обробник з перевіркою прав:

// /local/ajax/export_orders.php \Bitrix\Main\Loader::includeModule('sale'); if (!$USER->IsAdmin() && !$USER->IsInGroup(MANAGER_GROUP_ID)) { header('HTTP/1.1 403 Forbidden'); exit; } $exporter = new OrderExporter(); $file = $exporter->export($_GET); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment; filename="orders_' . date('Y-m-d') . '.xlsx"'); header('Content-Length: ' . filesize($file)); readfile($file); unlink($file); 

Що входить у роботу під ключ

  1. Аналітика — вивчаємо схему даних, права користувачів, частоту вивантажень.
  2. Проектування — обираємо джерела даних, продумуємо фільтри та формат.
  3. Розробка — пишемо PHP-компонент з використанням PhpSpreadsheet, AJAX-обробник, налаштовуємо кешування.
  4. Тестування — перевіряємо на обсязі до 100 000 рядків, коригуємо пам'ять.
  5. Документація — описуємо, як додати нові поля, змінити фільтри.
  6. Навчання — показуємо менеджерам, де завантажити звіт.

Терміни та вартість

Конфігурація Термін
Експорт одного типу даних (замовлення або товари) 1–2 дні
Експорт з фільтрами та кількома аркушами 2–4 дні
Модуль експорту з UI-фільтром в ОК 4–6 днів

Вартість розраховується індивідуально, орієнтовний діапазон для базового експорту — від 15 000 до 30 000 грн. Це включає налаштування одного джерела даних, базові фільтри та перевірку прав. При необхідності додамо складні фільтри, кілька аркушів та кешування — підсумкова ціна уточнюється після аналізу.

Чому варто замовити експорт у нас?

Ми — сертифіковані розробники 1С-Бітрікс з 5+ роками досвіду та понад 50 впроваджень. Використовуємо PhpSpreadsheet — стабільну бібліотеку з підтримкою форматування, рекомендовану спільнотою. Гарантуємо, що експорт не впаде на великих обсягах, а дані будуть вивантажені без втрат. Економія часу менеджерів на підготовку звітів — до 90%. Замовте розробку — оцінимо ваш проект безкоштовно за 1 робочий день. Отримайте консультацію щодо інтеграції просто зараз.