Інтеграція 1С-Бітрікс з системою Меркурій: автоматизація еВСД

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

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

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

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

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

Інтеграція 1С-Бітрікс з системою Меркурій — обов'язкова умова для легальної торгівлі продуктами тваринного походження. Щодня через ФГІС проходять мільйони еВСД, і ручна обробка призводить до затримок і штрафів до $1.4k–1.9kів. Ми автоматизуємо обмін, використовуючи REST API та асинхронні черги, скорочуючи час приймання однієї партії в 5 разів. Оцінимо ваш проект за 2 дні — просто зв'яжіться з нами. Наш досвід: 5+ років на ринку інтеграцій Бітрікс з державними системами, реалізовано понад 50 успішних проектів. Ми гарантуємо повну відповідність законодавству.

Як автоматизувати погашення еВСД?

Якщо гасити вручну, легко пропустити термін — тоді сертифікат анулюється, і товар вважається нелегальним. Автоматизація виключає людський фактор і вкладається в вимоги 54-ФЗ. Крім того, Меркурій API працює асинхронно: запит створює заявку, яку потрібно обробити окремим викликом. Ми реалізуємо чергу з ретраями, щоб жоден документ не загубився. Автоматичне погашення еВСД в 3 рази зменшує ризик помилок порівняно з ручним введенням.

Чи варто інтегруватися з Меркурієм?

Інтеграція 1С-Бітрікс з Меркурієм — це ключ до повної автоматизації еВСД. Без неї ви ризикуєте штрафами та втратою часу. Наш досвід показує: після впровадження клієнти економлять до 40 годин на місяць на прийманні товарів.

Інтеграція 1С-Бітрікс з Меркурієм

Меркурій надає REST API (https://api.vetrf.ru/schema/platform/v2/). Авторизація — через API-ключ, який видається після реєстрації підприємства. Основні операції: отримання вхідних документів, погашення еВСД (extinguish), запит статусів заявок. Важливо враховувати асинхронність: кожен запит створює заявку, яку потрібно обробити окремим викликом. Згідно з документацією ФГІС Меркурій, на один API-ключ допускається до 10 запитів на хвилину. Тому ми реалізуємо чергу з ретраями.

Додаткові деталі роботи з API Запити до Меркурій повинні включати заголовок `apiKey` та коректний `Content-Type`. Відповіді приходять у форматі JSON з полем `application`, що містить `applicationId` для відстеження. При погашенні документа важливо передати точну кількість товару та одиниці виміру.

Типовий lifecycle документа:

Постачальник → відвантажив товар з еВСД в Меркурій → Магазин отримує товар → гасить вхідний еВСД (acceptVetDocument) → Зберігання на складі: облікова одиниця з ID еВСД → Замовлення оформлене → продаж фізичній особі → Списання через транзакцію повернення (transferReceiptTransaction) 

При продажу кінцевому споживачеві-фізичній особі оформлювати новий еВСД не потрібно — достатньо погасити документ у частині проданої кількості.

Реалізація клієнта на PHP:

class MerkuryClient {
    private string $apiUrl = 'https://api.vetrf.ru/schema/platform/v2';
    private string $apiKey;
    private string $issuerId;

    public function __construct(string $apiKey, string $issuerId) {
        $this->apiKey = $apiKey;
        $this->issuerId = $issuerId;
    }

    public function getIncomingDocuments(string $enterpriseGuid): array {
        return $this->request('GET', "/enterprises/{$enterpriseGuid}/vetDocuments", [
            'status' => 'CONFIRMED',
            'type' => 'INCOMING'
        ]);
    }

    public function extinguishDocument(
        string $enterpriseGuid,
        string $vetDocId,
        float $quantity,
        string $unit
    ): string {
        $response = $this->request('POST', "/enterprises/{$enterpriseGuid}/vetDocuments/{$vetDocId}/extinguish", [
            'returnedQuantity' => $quantity,
            'returnedUnit' => $unit,
            'operatorId' => $this->issuerId,
        ]);
        return $response['application']['applicationId'];
    }

    public function processTransaction(
        string $enterpriseGuid,
        string $transactionId
    ): array {
        return $this->request('POST', "/enterprises/{$enterpriseGuid}/applications/{$transactionId}/process");
    }

    private function request(string $method, string $path, array $params = []): array {
        // ... HTTP-запит з заголовком 'apiKey: {KEY}'
    }
}

Зберігання еВСД в Бітрікс

Кожна партія товару на складі прив'язана до одного або кількох еВСД. Ми зберігаємо їх в окремій ORM-таблиці:

class VetDocumentTable extends \Bitrix\Main\ORM\Data\DataManager
{
    public static function getTableName(): string
    {
        return 'local_merkury_vet_docs';
    }

    public static function getMap(): array
    {
        return [
            new \Bitrix\Main\ORM\Fields\IntegerField('ID', ['primary' => true, 'autocomplete' => true]),
            new \Bitrix\Main\ORM\Fields\IntegerField('PRODUCT_ID'), // товар в каталозі
            new \Bitrix\Main\ORM\Fields\StringField('VET_DOC_ID'), // UUID документа в Меркурій
            new \Bitrix\Main\ORM\Fields\StringField('ENTERPRISE_GUID'), // GUID підприємства
            new \Bitrix\Main\ORM\Fields\FloatField('QUANTITY'), // залишок на складі
            new \Bitrix\Main\ORM\Fields\StringField('UNIT'), // од. вим: kg, piece
            new \Bitrix\Main\ORM\Fields\StringField('STATUS'), // 'active', 'extinguished'
            new \Bitrix\Main\ORM\Fields\DatetimeField('EXPIRE_DATE'), // термін придатності
        ];
    }
}

При надходженні партії — створюється запис з ID еВСД та кількістю. При продажу — кількість зменшується, при вичерпанні — статус змінюється на extinguished.

Порівняння ручного та автоматизованого підходу

Автоматизація в 5 разів швидша за ручну обробку — це підтверджують наші кейси.

Параметр Ручний режим Автоматизація
Час приймання однієї партії 15 хв 3 хв
Погашення еВСД при продажу Вручну (часто забувають) Автоматично, з чергою
Ризик помилок Високий (людський фактор) Мінімальний
Відповідність 54-ФЗ Потребує додаткового контролю Вбудовано
Витрати часу на місяць (при 250 замовленнях) ~40 годин ~8 годин

Наведені дані показують: автоматизація прискорює процес у 5 разів та знижує операційні ризики.

Кейс з нашої практики: магазин фермерських продуктів

Наш клієнт — інтернет-магазин м'яса та молочної продукції від 15 фермерських господарств. Об'єм — ~250 замовлень на тиждень. До нас приймання однієї партії займало 15 хвилин ручного введення в Меркурій, а погашення при продажу не робили взагалі — ризикували.

Рішення: автоматизували приймання (через адмінку Бітрікс: комірник вводить ID приходу, система сама знаходить вхідні еВСД від постачальника за останню добу та пропонує погасити). Для відвантаження — двохкрокова модель: при оформленні замовлення створюється заявка на погашення, cron-обробник кожні 2 хвилини смикає processTransaction. Синхронізація залишків раз на годину.

Показник До Після
Час оформлення приймання (1 партія) 15 хв (ручне введення в Меркурій) 3 хв (підтвердження)
Погашення еВСД при продажу Не проводилося (порушення) Автоматично
Перевірки Россільгоспнагляду Припис Без зауважень

Економія часу на прийманні склала 80% — це близько 40 годин на місяць. Додатково виключені штрафи за відсутність погашень.

Синхронізація залишків

Періодична звірка — обов'язкова частина. Залишки в таблиці local_merkury_vet_docs порівнюються із залишками на підприємстві в Меркурій (GET /enterprises/{guid}/stockEntries). Розбіжності записуються в лог і повідомляють адміністратора. Це додаткова страховка від розсинхронізації.

Що входить в інтеграцію під ключ

  1. Реєстрація в Меркурій, отримання API-ключа (супроводжуємо на всіх етапах)
  2. Розробка PHP-клієнта: робота з вхідними документами, погашення, обробка заявок
  3. Таблиця зберігання еВСД в Бітрікс з прив'язкою до товарів
  4. Інтерфейс приймання в адміністративному розділі (швидка, з підказками)
  5. Автопогашення при відвантаженні з чергою та автоматичними ретраями
  6. Синхронізація залишків за розкладом (cron), моніторинг розбіжностей
  7. Гарантійна підтримка після запуску, документація, навчання співробітників

Інтеграція 1С-Бітрікс з Меркурієм — це надійне рішення для автоматизації еВСД.

Терміни: від 6 до 10 тижнів залежно від кількості постачальників і складності обліку. У нас за плечима 5+ років інтеграцій Бітрікс з державними системами, понад 50 успішних проектів. Замовте аудит вашого проекту — отримайте план інтеграції за 2 дні.