Переход с тестового контура (T2) на продуктивный (боевой) API системы «Меркурий» — это не просто смена адреса сервера в настройках. Техническая поддержка Россельхознадзора требует от разработчиков и интеграторов подтверждения того, что их информационная система корректно формирует запросы и обрабатывает ответы. Для этого необходимо выполнить ряд обязательных операций в тестовой среде.
В этой статье мы разберем, как с помощью типовой подсистемы ВетИС в 1С:Управление торговлей 11 (начиная с версий 11.4.9.хх и выше) выполнить задачи, поставленные службой поддержки, и получить заветный доступ к боевому шлюзу.
Обычно для подтверждения квалификации интегратора специалисты ВетИС просят предоставить идентификаторы заявок (applicationId), подтверждающие успешное выполнение следующих действий через API:
Рассмотрим подробнее, как реализовать каждый пункт в среде 1С.
Проанализируем работу со справочниками. В 1С:УТ подсистема ВетИС находится в разделе Склад и доставка — Управление ВетИС. Перед началом работы убедитесь, что в настройках интеграции выбран «Тестовый контур».
Создание и привязка площадок в 1С осуществляется через справочник Предприятия ВетИС. Если площадки уже созданы в веб-интерфейсе тестового контура «Цербер», их нужно загрузить в 1С. Если же требуется создать их именно через API (как того требует поддержка), используется механизм обмена с системой «Цербер».
Разберем логику: в 1С для этого используется запрос submitEnterpriseProductionBusinessEntityService. При создании нового элемента в справочнике Предприятия ВетИС и выполнении команды «Подготовить к отправке», система формирует XML-пакет. После отправки запроса в техподдержку нужно будет передать UUID созданной площадки.
Чтобы занести продукцию в журнал предприятия, в 1С предусмотрен документ Инвентаризация продукции ВетИС. В API Меркурия это соответствует операции resolveDiscrepancyOperation. Рассмотрим алгоритм действий:
Инвентаризация продукции ВетИС.В этот момент 1С формирует SOAP-запрос. После успешного ответа в журнале 1С и в веб-интерфейсе Меркурия должна появиться запись складского журнала. Для отчета перед техподдержкой вам понадобится applicationId этого обмена, который можно найти в форме «Журнал сообщений ВетИС».
Выясним причину, по которой это требование является ключевым: оно проверяет умение системы работать с идентификаторами партий и формировать транспортные ВСД. В 1С это реализуется через документ Исходящая транспортная операция ВетИС.
Рассмотрим порядок оформления:
Важный момент: после оформления исходящего ВСД со стороны первой площадки, его необходимо «погасить» на стороне второй площадки документом Входящая транспортная операция ВетИС. Это завершит цикл движения товара в системе.
Если штатных средств 1С недостаточно или требуется кастомизация, разработчику необходимо понимать, как отправляются «сырые» запросы. Обмен идет по протоколу HTTPS, данные передаются в формате SOAP-пакетов.
Посмотрим на пример структуры запроса для получения данных (упрощенно):
// Пример формирования заголовков для HTTP-запроса в 1С
ЗаголовокHTTP = Новый Соответствие;
ЗаголовокHTTP.Вставить("Content-Type", "text/xml;charset=utf-8");
ЗаголовокHTTP.Вставить("SOAPAction", "http://api.vetrf.ru/schema/cdm/v2/ApplicationService");
// Использование защищенного соединения
НТТРСоединение = Новый HTTPСоединение("api.vetrf.ru", 443, , , , , Новый ЗащищенноеСоединениеOpenSSL());
НТТРЗапрос = Новый HTTPЗапрос("/platform/services/2.1/ApplicationService", ЗаголовокHTTP);
НТТРЗапрос.УстановитьТелоИзСтроки(ТекстXMLЗапроса);
Ответ = НТТРСоединение.ОтправитьДляОбработки(НТТРЗапрос);
Проанализируем ситуацию с импортными грузами (СВХ). Как отмечалось в обсуждении, пакетное гашение через API 2.1 в упрощенном виде недоступно. Каждый сертификат должен обрабатываться индивидуально. Операция ProcessIncomingConsignment_v2.0 требует передачи полных сведений о партии. Если вы планируете автоматизировать гашение на СВХ, приготовьтесь к тому, что 1С придется перебирать каждый ВСД в цикле, отправляя отдельные запросы и ожидая ответы по каждому из них.
Когда техподдержка одобрит ваши тестовые операции и выдаст логин/пароль/API-Key для боевого сервера, помните о следующих правилах:
Изоляция контуров: Все UUID из теста (площадки, товары, ХС) не работают в боевом режиме. Вам придется заново загрузить все справочники из продуктивного контура и сопоставить их с объектами в 1С (склады, номенклатура, контрагенты).
Лимиты (Throttling): На боевом API действуют жесткие ограничения на частоту запросов (обычно несколько запросов в секунду). В 1С:УТ рекомендуется использовать регламентные задания для обмена, чтобы не перегружать шлюз и избегать блокировок. Если вы пишете свой код, обязательно добавьте паузы между итерациями отправки.
Версии API: В настоящее время актуальной является версия 2.1, но идет постепенный переход на 3.0. При настройке в 1С убедитесь, что ваша конфигурация обновлена до актуального релиза, поддерживающего современные XSD-схемы ВетИС.
Таким образом, для получения боевого доступа достаточно выполнить стандартный цикл товародвижения в тестовой базе 1С:УТ, зафиксировать applicationId и отправить их в техподдержку ВетИС вместе с заявкой на переход.