Интеграция учетных систем с ГИИС ДМДК — это сложная техническая задача, требующая комплексного подхода к безопасности, работе с криптографией и структурами данных. Рассмотрим по шагам, как организовать взаимодействие 1С с этой государственной системой.
Для автоматизированного обмена данными между 1С и ГИИС ДМДК недостаточно иметь обычную усиленную квалифицированную электронную подпись (УКЭП). Система требует использования так называемого обезличенного сертификата. Это специализированная ЭП, которая выдается аккредитованными удостоверяющими центрами именно для информационных систем участников. Обычная подпись руководителя в личном кабинете портала не будет работать при автоматическом вызове API.
Прежде чем приступать к полноценному обмену, необходимо убедиться, что ваша инфраструктура настроена корректно (например, через stunnel для защищенного соединения). Для проверки связи с веб-сервисом можно использовать следующий пример кода на 1С:
Процедура ТестСервиса()
Веб = СоздатьОбъект("MSXML2.XMLHTTP");
Веб.Open("POST", "http://127.0.0.1:1500/ws/v1", 0, "", "");
Запрос = "
|<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:ns=""urn://xsd.dmdk.goznak.ru/exchange/1.0"">
|<soapenv:Header/>
|<soapenv:Body>
| <ns:HealthRequest>
| <ns:TestMessage>?</ns:TestMessage>
| <ns:RequestData id=""?"">
| <ns:DataForTest>?</ns:DataForTest>
| </ns:RequestData>
| </ns:HealthRequest>
|</soapenv:Body>
|</soapenv:Envelope>";
Попытка
Веб.Send(Запрос);
Исключение
Предупреждение("Ошибка подключения: " + ОписаниеОшибки()); Возврат
КонецПопытки;
Если Найти(Веб.responseText, "Running") > 0 Тогда
Предупреждение("Успех! Статус ответа сервера: " + Веб.Status, 30);
Иначе
Предупреждение("Не смогли подключиться к веб-сервису!" + РазделительСтрок + "Статус ответа сервера: " + Веб.Status);
КонецЕсли;
КонецПроцедуры
Одной из самых критических точек при разработке является подпись данных в формате XMLDSig. ГИИС ДМДК предъявляет специфические требования к структуре SOAP-запроса, где подпись встраивается в тело сообщения. Основная сложность заключается в определении области подписи — подписывать весь body нельзя, так как его содержимое меняется в процессе передачи.
На текущий момент рабочая гипотеза заключается в подписи тега RequestData. Для корректной настройки параметров подписи в 1С используйте специализированные методы работы с ЭлектроннаяПодписьКлиентСервер. При формировании структуры ПараметрыXMLDSig важно точно указать алгоритмы подписи и хеширования:
XPathПодписываемыйТег, указывающий на целевой элемент RequestData.1.2.643.7.1.1.3.2 для подписи и 1.2.643.7.1.1.2.2 для хеширования по стандарту ГОСТ 2012).WSОпределения, WSПрокси и ФабрикаXDTO, которые значительно упрощают работу с веб-сервисами по сравнению с ручной обработкой строк в старых конфигурациях.Если вы разрабатываете модуль интеграции самостоятельно, учитывайте следующие советы:
Данная задача требует регулярного мониторинга обновлений технической документации на официальном сайте системы. Рекомендуем также вступать в профессиональные сообщества разработчиков, чтобы оперативно узнавать о статусах работоспособности серверов и изменениях в API.