Веб-сервис склонения Морфер полностью переведен на версию 3.0 (Подробнее о версии). Старая версия более не поддерживается. Для использования новой версии этого веб-сервиса в «1С:Документообороте» необходимо внести следующие локальные исправления:
Шаг 1.
В общем модуле Склонение представлений объектов найти фрагмент кода, представленный функциями СтруктураСклоненияЧерезЗапросКСервису и РезультатОбращенияКСервису.
Шаг 2.
Заменить этот фрагмент кода на приведенный ниже:
Функция СтруктураСклоненияЧерезЗапросКСервису(СклоняемыйТекст, ПоказыватьСообщения) СтруктураСклонения = Неопределено; Запрос = HTTPЗапросКСервисуСклонения(СклоняемыйТекст); Соединение = HTTPСоединениеСервисаСклонений(); Попытка Ответ = Соединение.Получить(Запрос); Исключение ЗарегистрироватьОшибкуСервисаСклонений(ОписаниеОшибки(), ПоказыватьСообщения); Возврат СтруктураСклонения; КонецПопытки; ТелоОтвета = Ответ.ПолучитьТелоКакСтроку(); Если Ответ.КодСостояния <> 200 Тогда ЗарегистрироватьОшибкуСервисаСклонений(ТелоОтвета, ПоказыватьСообщения); Возврат СтруктураСклонения; КонецЕсли; ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(ТелоОтвета); СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON); ЧтениеJSON.Закрыть(); СтруктураСклонения = СклонениеПредставленийОбъектовКлиентСервер.СтруктураСклонения(); СтруктураСклонения.ИменительныйПадеж = СклоняемыйТекст; СтруктураСклонения.РодительныйПадеж = СтруктураОтвета.Р; СтруктураСклонения.ДательныйПадеж = СтруктураОтвета.Д; СтруктураСклонения.ВинительныйПадеж = СтруктураОтвета.В; СтруктураСклонения.ТворительныйПадеж = СтруктураОтвета.Т; СтруктураСклонения.ПредложныйПадеж = СтруктураОтвета.П; Возврат СтруктураСклонения; КонецФункции Функция HTTPЗапросКСервисуСклонения(СклоняемыйТекст) ТекстЗапроса = "/russian/declension?s=" + СклоняемыйТекст; УстановитьПривилегированныйРежим(Истина); ВладелецТокена = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("РегистрСведений.СклоненияПредставленийОбъектов"); Токен = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ВладелецТокена, "ТокенДоступаКСервисуMorpher"); УстановитьПривилегированныйРежим(Ложь); Если ЗначениеЗаполнено(Токен) Тогда ТекстЗапроса = ТекстЗапроса + "&token=" + Токен; КонецЕсли; Заголовки = Новый Соответствие; Заголовки.Вставить("User-Agent", "1C Enterprise 8.3"); Заголовки.Вставить("Accept", "application/json"); Заголовки.Вставить("charset", "UTF-8"); Возврат Новый HTTPЗапрос(ТекстЗапроса, Заголовки); КонецФункции Функция HTTPСоединениеСервисаСклонений() АдресСервера = "ws3.morpher.ru"; ИнтернетПрокси = Неопределено; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда МодульПолучениеФайловИзИнтернетаКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернетаКлиентСервер"); ИнтернетПрокси = МодульПолучениеФайловИзИнтернетаКлиентСервер.ПолучитьПрокси(АдресСервера); КонецЕсли; Таймаут = 10; ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(, Новый СертификатыУдостоверяющихЦентровОС); Возврат Новый HTTPСоединение(АдресСервера, , , , ИнтернетПрокси, Таймаут, ЗащищенноеСоединение); КонецФункции Процедура ЗарегистрироватьОшибкуСервисаСклонений(ОписаниеОшибки, ПоказыватьСообщения) ИмяСобытия = НСтр("ru = 'Вызов веб-сервиса склонения'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()); ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки); Если Не ПоказыватьСообщения Тогда Возврат; КонецЕсли; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Ошибка при вызове сервиса склонения. Обратитесь к администратору. |Техническая информация |%1'"), ОписаниеОшибки); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения); КонецПроцедуры
Шаг 3.
На сервере необходимо выполнить следующие действия:
Для ОС Windows — настроить сертификаты веб-сервиса. Обратите внимание, сертификат должен быть добавлен не для пользователя, а для учетной записи компьютера.
Выберите сертификат, открыв сайт https://ws3.morpher.ru/russian/declension?s=Пользователь в статус-строке браузера, сохраните его и добавьте в список доверенных.
Запустите оснастку Сертификаты в режиме учетной записи компьютера.
В контекстном меню папки Сертификаты выполните команду Импорт. Внимание! Не меняйте путь к хранилищу сертификатов.
Для Linux — выполните указанные команды.
Комментарии