Налаштування обміну 1С:Аптека і 1С-Бітрікс
Онлайн-аптека на Бітрікс — проект із жорсткими регуляторними вимогами: маркування, сертифікати, рецептурні обмеження. При інтеграції з 1С:Аптека все це потрібно враховувати на рівні обміну даними. Стандартний модуль CommerceML існує, але галузева специфіка вимагає доопрацювань.
Структура даних у 1С:Аптека
Номенклатура аптечного ПЗ зберігає значно більше атрибутів, ніж стандартний товарний каталог:
- МНН (міжнародна непатентована назва)
- Форма випуску (таблетки, капсули, сироп...)
- Дозування (500 мг, 1 г...)
- Виробник і країна виробництва
- Ознака рецептурного відпуску
- Серія та термін придатності (партійний облік)
- Штрихкод (EAN-13, Datamatrix для маркування)
На сайт потрібно передавати більшість із цих атрибутів. Стандартний CommerceML передає найменування, артикул і ціну. Все інше — через ДодатковіРеквізити або кастомне доопрацювання вивантаження.
Маркування та чесний знак
Лікарські препарати підлягають обов'язковому маркуванню (система «Чесний знак», ГІС МДЛП). При продажу через інтернет-аптеку потрібно:
- Передавати код Datamatrix з упаковки до замовлення
- Після відвантаження — фіксувати вибуття в МДЛП
Маркувальний код зберігається в 1С:Аптека в регістрі відомостей по кожній одиниці товару. У Бітрікс при оформленні замовлення потрібно передавати не просто артикул, а конкретну серію та маркувальний код — це порушує типову архітектуру кошика.
Практичне рішення: магазин на Бітрікс працює як «вітрина» (показує наявність і ціни), а реальне резервування з прив'язкою до маркувальних кодів відбувається в 1С:Аптека при підтвердженні замовлення. Обмін: замовлення з Бітрікс → 1С:Аптека, у відповідь — підтвердження з конкретними серійними номерами або відмова (якщо потрібна серія вже продана).
Рецептурні препарати
Рецептурні препарати не можна продавати онлайн без рецепта. На рівні інтеграції це означає:
- При вивантаженні номенклатури з 1С:Аптека передається ознака
ВідпускЗаРецептом = Так/Ні - У Бітрікс це властивість інфоблоку, яка керує відображенням кнопки «Купити»
- Для рецептурних препаратів — тільки кнопка «Забронювати» або інформаційне відображення без додавання до кошика
Це реалізується через умову в шаблоні компонента каталогу Бітрікс:
if ($arItem['PROPERTIES']['IS_PRESCRIPTION']['VALUE'] === 'Так') {
// Показуємо тільки кнопку "Дізнатись наявність"
} else {
// Стандартна кнопка "До кошика"
}
Залишки та терміни придатності
Аптека продає товари з партійним обліком — одна позиція номенклатури може мати кілька партій із різними термінами придатності. На сайт зазвичай достатньо передавати сумарний залишок. Але якщо термін придатності критичний для покупця (наприклад, у картці товару вказується найближчий термін придатності партії) — потрібно передавати залишки в розрізі партій.
CommerceML стандартно не підтримує залишки по партіях. Це реалізується через ДодатковіРеквізити товару в XML: додаємо реквізит ТермінПридатності з мінімальним терміном із наявних партій.
Налаштування обміну: ключові параметри
У вузлі обміну 1С:Аптека з сайтом:
- Фільтр номенклатури: тільки «Товари для продажу» (виключити внутрішні набори, напівфабрикати)
- Вид ціни: роздрібна (для сайту) або оптова (для B2B-аптечних мереж)
- Склади: тільки торговий зал / склад інтернет-замовлень
- Передача реквізитів: МНН, форма випуску, дозування, ознака рецептурного відпуску
Кейс: аптечна мережа + агрегатор
Регіональна аптечна мережа (40 точок) підключилася до агрегатора «Apteka.ru». Агрегатор вимагає певний формат вивантаження (не CommerceML). Паралельно працює власний сайт на Бітрікс.
Рішення: налаштували два потоки вивантаження з 1С:Аптека:
- CommerceML → власний сайт на Бітрікс (стандартний обмін + доопрацювання по реквізитах)
- Кастомний XML (формат агрегатора) → генерується окремим регламентним завданням у 1С, викладається на FTP
Обидва вивантаження оновлюють залишки кожні 15 хвилин — критично для аптечного асортименту, де популярні позиції розходяться швидко.







