Уявіть: у вас 20 000 позицій, кожну потрібно описати за 50 параметрами, а дилери годинами чекають відповідь на запит. Терміни зриваються, менеджери тонуть в Excel. Ми розробляємо сайти для виробничих компаній на 1С-Бітрікс, які стають робочим інструментом для дилерів, постачальників та інженерів. Головне завдання — дати технічному спеціалісту можливість знайти потрібну позицію за параметрами, завантажити специфікацію та відправити запит на комерційну пропозицію. Все інше — другорядне.
На 1С-Бітрікс такий сайт будується навколо каталогу на інфоблоках, B2B-модуля особистого кабінету та обміну даними з 1С:УПП або 1С:ERP. Каталог може містити десятки тисяч товарів з десятками технічних властивостей. B2B-кабінет — персональні ціни та історія замовлень. Інтеграція з 1С — автоматична синхронізація номенклатури та залишків. Середній чек одного дилера — 150 000 грн., а економія часу на обробку замовлення за рахунок автоматизації — до 40%.
Розберемо кожен блок.
Каталог продукції з технічними характеристиками
Це ядро сайту. Типовий каталог виробничої компанії містить від 500 до 50 000 позицій, у кожної — від 15 до 60 технічних властивостей. Арматура, металопрокат, електротехніка, промислове обладнання — у кожної галузі свій набір параметрів, але архітектурний підхід один.
Як організувати каталог з технічними характеристиками?
Каталог будується на інфоблоці типу catalog (торговий каталог). Розділи інфоблоку — це дерево категорій. Для кожної категорії верхнього рівня зазвичай створюється окремий набір властивостей через механізм прив'язки властивостей до розділів (таблиця b_iblock_section_property). Це критично важливо: якщо у вас насоси та засувки в одному інфоблоці, не потрібно показувати властивість «Діаметр умовного проходу» для позицій з категорії «Електродвигуни».
Типова конфігурація властивостей для промислового каталогу:
| Група властивостей | Приклади | Тип у Бітрікс |
|---|---|---|
| Фізичні параметри | Маса, габарити, матеріал | N (число), S (рядок) |
| Експлуатаційні | Робочий тиск, температурний діапазон, клас захисту IP | N з одиницями виміру |
| Класифікація | ГОСТ, ТУ, сертифікат відповідності | S або F (файл) |
| Медіа | Креслення DWG, PDF-специфікація, 3D-модель STEP | F (файл) |
| Зв'язки | Супутні товари, комплектуючі, аналоги | E (прив'язка до елементів) |
| Торгові | Артикул, од. виміру, мін. партія, термін виробництва | Властивості торгового каталогу |
Для властивостей з одиницями виміру використовується довідник b_catalog_measure. Значення зберігаються в b_iblock_element_property (звичайні властивості) та b_catalog_product (торгові параметри).
Розумний фільтр
Компонент catalog.smart.filter працює з фасетним індексом — таблиця b_catalog_smart_filter зберігає попередньо обчислені комбінації. Без фасетного індексу фільтрація за 30+ властивостями на каталозі в 10 000 позицій буде генерувати запити по 3-5 секунд. З індексом — 50-100 мс.
Побудова фасетного індексу запускається через \Bitrix\Iblock\PropertyIndex\Manager::markAsInvalid($iblockId) та подальшу переіндексацію. При кожній зміні елемента індекс оновлюється автоматично, але після масового імпорту з 1С потрібна повна перебудова.
Для інженерних каталогів стандартного фільтра часто недостатньо. Типові доопрацювання:
- Фільтр за діапазоном для числових властивостей (тиск від/до, температура від/до) — штатно підтримується, але вимагає налаштування відображення.
- Фільтр за декількома значеннями однієї властивості з логікою OR — працює з коробки.
- Перехресна фільтрація — коли вибір значення одного властивості звужує доступні значення інших. Реалізується через AJAX-підвантаження фільтра з передачею поточних параметрів.
- Табличне порівняння вибраних позицій — компонент
catalog.compare.list, але зазвичай переписується повністю під задачу.
PDF-специфікації та документація
Технічна документація зберігається у властивостях типу F (файл). Для кожної позиції може бути декілька документів: паспорт виробу, сертифікат, креслення, інструкція з монтажу. Правильний підхід — множинна властивість з прив'язкою файлів або окремий Highload-блок TechDocuments з полями UF_PRODUCT_ID, UF_FILE, UF_DOC_TYPE, UF_LANGUAGE.
Генерація PDF-каталогу на льоту — окрема задача. Зазвичай використовується бібліотека mPDF або TCPDF, що викликається через кастомний компонент. Шаблон PDF формується з даних інфоблоку, результат кешується та віддається користувачеві.
Інтеграція з 1С:Управління виробничим підприємством
Стандартний модуль обміну catalog у Бітрікс реалізує протокол CommerceML 2 (обмін через XML-файли). Для 1С:УПП та 1С:ERP це основний шлях синхронізації номенклатури та цін.
Як відбувається інтеграція з 1С?
Обмін працює через URL /bitrix/admin/1c_exchange.php і складається з етапів:
- Авторизація — 1С відправляє логін/пароль, отримує сесію.
- Вивантаження каталогу (
catalog) — файлиimport.xmlтаoffers.xmlзавантажуються на сервер. - Імпорт — Бітрікс парсить XML, створює/оновлює елементи інфоблоку.
- Обмін замовленнями (
sale) — двосторонній обмін статусами замовлень.
Для виробничої компанії стандартного обміну зазвичай недостатньо. Проблемні місця:
- Множинні типи цін. У 1С:УПП — роздрібна, оптова, дилерська, спеціальна для конкретного контрагента. Модуль
catalogпідтримує множинні типи цін через таблицюb_catalog_group, але мапінг з 1С потрібно налаштовувати вручну. - Залишки по складах. Таблиця
b_catalog_store_productзберігає залишки по складах (b_catalog_store). 1С:УПП може вивантажувати залишки з розбивкою по складах, але потрібне доопрацювання обробки на стороні 1С. - Характеристики номенклатури. У 1С це реалізується через «Характеристики номенклатури», у Бітрікс — через торгові пропозиції (SKU). Мапінг один-в-один не завжди можливий, особливо якщо характеристики багаторівневі.
Highload-блоки для довідників
Довідники з 1С (одиниці виміру, категорії, матеріали, ГОСТи) краще зберігати в Highload-блоках, а не в звичайних списках. Таблиця b_hlblock_entity визначає блок, дані зберігаються в автоматично створюваній таблиці з префіксом. API доступу — через \Bitrix\Highloadblock\HighloadBlockTable::getById() та генерований ORM-клас.
Обмін довідниками — окрема задача, не покрита штатним CommerceML. Реалізується через REST API Бітрікс або кастомний endpoint, який викликається з 1С за розкладом.
B2B-функціонал
Особистий кабінет дилера
Особистий кабінет будується на модулі sale та розширюється кастомними компонентами. Базові можливості:
- Персональні ціни — через типи цін, прив'язані до груп користувачів. Група «Дилеры» бачить оптову колонку, група «Дистриб'ютори» — свою. Налаштовується в
b_catalog_group2group. - Історія замовлень — компонент
sale.personal.order.list, зазвичай кастомізований: додається статус виробництва, трек-номер відвантаження, посилання на накладну. - Повтор замовлення — додавання всіх позицій з попереднього замовлення в кошик однією кнопкою.
- Вивантаження в Excel — формування прайс-листа з персональними цінами для конкретного дилера.
Запит комерційної пропозиції
Для виробничих компаній кошик часто працює не як оформлення замовлення, а як формування запиту на КП. Користувач додає позиції, вказує кількість, і замість оплати отримує форму «Запросити КП». Заявка йде в CRM-модуль Бітрікс (crm — лід або угода) та паралельно на пошту менеджеру.
Реалізується через кастомний обробник події OnSaleOrderBeforeSaved або повністю свій компонент, минаючи стандартне оформлення замовлення.
Додаткові блоки
- Новини та статті — стандартний інфоблок, компоненти
news.list/news.detail. Для виробничої компанії це галузеві новини, участь у виставках, оновлення каталогу. - Сертифікати та ліцензії — окремий інфоблок або розділ медіатеки. PDF-файли з preview у вигляді зображення.
- Калькулятор продукції — якщо номенклатура передбачає розрахунок (метраж, об'єм, нестандартні розміри). Реалізується як JS-компонент зі зверненням до API каталогу для отримання цін.
- Географія поставок — Яндекс.Карти API з мітками дилерів та представництв. Дані з Highload-блока
DealerNetwork.
Що входить в роботу
- Детальне технічне завдання на основі аудиту поточних процесів.
- Архітектура та проектування: структура інфоблоків, схема обміну з 1С, рольова модель.
- Розробка каталогу з розумним фільтром, PDF-специфікаціями та документацією.
- Інтеграція з 1С:УПП або 1С:ERP (CommerceML 2, REST API).
- Особистий кабінет дилера з персональними цінами та запитом КП.
- Тестування та оптимізація продуктивності (кешування, індекси).
- Деплой на сервер, налаштування моніторингу.
- Передача документації, доступів, навчання адміністраторів.
- Технічна підтримка на період гарантії (до 6 місяців).
Терміни реалізації
| Масштаб проекту | Каталог | Інтеграція 1С | Особистий кабінет | Разом |
|---|---|---|---|---|
| Невеликий (до 500 позицій, базовий обмін) | 3-4 тижні | 2-3 тижні | 2 тижні | 8-10 тижнів |
| Середній (до 5 000 позицій, множинні ціни) | 5-6 тижнів | 4-5 тижнів | 3-4 тижні | 14-18 тижнів |
| Крупний (10 000+ позицій, повна інтеграція з УПП/ERP) | 8-10 тижнів | 6-8 тижнів | 5-6 тижнів | 22-28 тижнів |
Вузьке місце — завжди інтеграція з 1С. Залежить від того, наскільки стандартизована конфігурація на стороні замовника та чи є виділений 1С-спеціаліст для доопрацювання обміну.
Наш досвід: більше 10 років розробки на 1С-Бітрікс, понад 50 реалізованих проектів для промислових підприємств. Якщо вам потрібен сайт, який стане робочим інструментом для дилерів та інженерів, — зв'яжіться з нами. Отримайте консультацію по проекту та приблизний план робіт.







