Как опубликовать веб- или HTTP-сервисы из расширения в 1С:Фреш для интеграции с сайтом?

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой IT и автоматизация бизнеса
← На главную

Если вы столкнулись с задачей двустороннего обмена данными между вашей базой 1С, размещенной в облачном сервисе 1С:Фреш, и внешним сайтом (например, создавая HTTP API сервис задач пользователя для мобильного приложения), то, вероятно, задавались вопросом о возможности использования веб- или HTTP-сервисов. Мы рассмотрим, как это реализовать, учитывая специфику облачной среды, и разберем ключевые особенности, а также альтернативные методы интеграции.

Публикация веб- и HTTP-сервисов через расширения в 1С:Фреш

Вопрос о возможности публикации собственных веб- и HTTP-сервисов в 1С:Фреш является одним из наиболее частых при интеграции с внешними системами. Отвечаем сразу: да, это возможно! Если ваша информационная база уже опубликована в 1С:Фреш, то публикация дополнительных сервисов, определенных в расширениях конфигурации, не составит труда. Это позволяет нам интегрироваться с сайтами или другими внешними системами без внесения изменений в типовую конфигурацию, что критически важно для облачных решений, находящихся на поддержке.

Рассмотрим подробнее, как работает этот механизм и какие шаги необходимо выполнить:

  1. Принцип работы. Когда база данных опубликована в 1С:Фреш, сама платформа уже работает на веб-сервере. Веб- и HTTP-сервисы, которые вы определяете в расширениях, рассматриваются как часть прикладного решения. При правильной настройке они могут быть доступны через тот же веб-сервер, который обслуживает вашу базу.

  2. Создание сервисов в расширении. Для начала работы, мы создаем необходимый веб- или HTTP-сервис непосредственно в расширении конфигурации, используя конструктор API для упрощения разработки. Этот подход является стандартным и рекомендованным для облачных решений, так как позволяет поддерживать типовую конфигурацию в неизменном виде.

  3. Процедура публикации через аудит. Публикация сервисов в 1С:Фреш происходит не полностью автоматически в том же смысле, как при публикации на собственном веб-сервере, а требует определенных шагов. Это связано со спецификой облачного сервиса и необходимостью обеспечения безопасности и стабильности.

    1. При отправке расширения на аудит в 1С:Фреш, мы должны явно указать, что требуется публикация сервисов. Этот шаг гарантирует, что менеджеры сервиса учтут необходимость открытия доступа к вашим сервисам.
    2. При подключении расширения к вашей базе в 1С:Фреш также потребуется дополнительное подтверждение публикации сервисов.
    3. В режиме конфигуратора для публикации веб-сервисов расширений по умолчанию устанавливается соответствующий флажок. Мы должны убедиться, что он активен, чтобы система понимала наше намерение опубликовать сервис, после чего станет доступно тестирование HTTP сервисов (GET и POST).
  4. Настройка файла публикации (default.vrd). Мы можем управлять тем, какие именно сервисы будут опубликованы. Файл default.vrd описывает публикацию HTTP-сервиса. При необходимости опубликовать только часть сервисов из расширения, можно вручную отредактировать этот файл и удалить из него "ненужные" сервисы. Однако в контексте 1С:Фреш этот процесс может быть менее прямым и чаще всего управляется через интерфейс сервиса или при отправке расширения на аудит.

  5. Обмен данными и протоколы. Обмен данными через веб- и HTTP-сервисы в 1С:Фреш осуществляется по защищенному протоколу HTTPS, обеспечивающему надежное шифрование данных. Сообщения, как правило, передаются в формате XML. Важно учитывать, что для корректной работы требуется наличие установленного веб-сервера (Apache или IIS) и платформы 1С:Предприятие версии 8.3.7 и выше с установленным расширением веб-сервера на серверной стороне, что уже обеспечено инфраструктурой 1С:Фреш.

  6. Управление через "Менеджер сервиса". Управление дополнительными модулями, включая расширения и их публикацию, осуществляется через специальный интерфейс "Менеджер сервиса" в личном кабинете 1С:Фреш. Это централизованное место для настройки и контроля над вашей облачной базой.

Таким образом, основной принцип заключается в том, что 1С:Фреш предоставляет инфраструктуру для публикации ваших сервисов, но сам процесс требует явного подтверждения и прохождения этапов, связанных с облачной моделью обслуживания. Это не полностью автоматически, как на собственном сервере, но вполне реализуемо.

Альтернативные методы интеграции

Помимо создания собственных веб- и HTTP-сервисов, существуют и другие мощные инструменты для обмена данными с внешними системами в 1С:Фреш. Рассмотрим их подробнее.

1. Использование стандартного интерфейса OData

OData (Open Data Protocol) — это открытый протокол, позволяющий создавать и потреблять RESTful API. В 1С:Фреш он является мощным инструментом для программного чтения и записи данных приложений, обеспечивая гибкую интеграцию с внешними системами без необходимости написания сложных расширений.

  1. Автоматическое создание REST-интерфейса. Начиная с версии платформы 8.3.5, при включении поддержки OData при публикации на веб-сервере (что уже сделано в 1С:Фреш), платформа "1С:Предприятие" автоматически создает REST-интерфейс. Это позволяет нам обращаться к данным всего прикладного решения по протоколу OData.

  2. Возможности OData. Через интерфейс OData мы получаем доступ к широкому спектру операций:

    • Получение списков документов, справочников, регистров.
    • Изменение, добавление, удаление отдельных объектов.
    • Проведение документов.
    • Выполнение задач и бизнес-процессов.
    Этот механизм предоставляет высокую степень контроля над данными, позволяя реализовывать сложные сценарии обмена.
  3. Ограничения. Важно отметить, что в 1С:Фреш для стандартного интерфейса OData не поддерживается режим эмуляции записи во время работы механизма обмена данными (использование HTTP-заголовка 1C_OData-DataLoadMode, соответствующего свойству ОбменДанными.Загрузка = Истина). Запросы с этим заголовком не будут выполнены, что следует учитывать при проектировании обмена.

  4. Безопасность OData. При работе с данными через OData платформа "1С:Предприятие" выполняет все стандартные проверки прав доступа и вызывает обработчики событий. Для обеспечения максимальной безопасности данных, мы рекомендуем создать нового пользователя с ограниченными правами. Этот пользователь должен иметь доступ только к тем данным, которые необходимы для интеграции через OData, и ему должна быть назначена соответствующая роль.

  5. Настройка OData. Для начала работы с OData, нам потребуется:

    1. Создать пользователя с необходимыми, но ограниченными правами.
    2. Включить поддержку OData в настройках базы данных 1С:Фреш.
    3. Опубликовать сервис OData через "Менеджер сервиса".

2. Встроенные обработки для обмена

Для некоторых типовых конфигураций, таких как 1С:Управление нашей фирмой (1С:УНФ), 1С:Фреш предлагает встроенные обработки для обмена с сайтами. Эти обработки разработаны для решения стандартных задач интеграции (например, выгрузка товаров, заказов) и могут значительно упростить процесс, если ваши требования соответствуют их функционалу.

Мы рекомендуем всегда проверять наличие таких встроенных механизмов перед тем, как приступать к разработке собственных сервисов или использованию OData, так как они могут предложить готовое и протестированное решение, позволяющее избежать лишней работы.

Обеспечение безопасности и доступности

Независимо от выбранного метода интеграции, 1С:Фреш обеспечивает высокий уровень безопасности и доступности, что является одним из ключевых преимуществ облачных решений:

  1. HTTPS. Вся передача данных по Интернету в 1С:Фреш осуществляется через защищенный протокол HTTPS, что гарантирует надежное шифрование данных и их защиту от перехвата.

  2. Изоляция данных. Данные различных пользователей и организаций хранятся изолированно друг от друга, используя специальные средства платформы "1С:Предприятие", которые обеспечивают режим разделения данных. Это минимизирует риски несанкционированного доступа и гарантирует конфиденциальность ваших данных.

  3. Служебные пользователи. Для некоторых HTTP-сервисов, которым требуется анонимный доступ (например, для внешней регистрации или получения общедоступной информации), мы можем создать отдельные публикации. В таких публикациях явно указываются логин и пароль служебного пользователя, которому назначены строго ограниченные роли, предотвращающие несанкционированный доступ к критически важным данным и обеспечивающие принцип минимальных привилегий.

Таким образом, интеграция 1С:Фреш с внешними сайтами через веб- и HTTP-сервисы, а также через OData, является вполне реализуемой задачей. Мы должны учитывать особенности облачной среды и использовать рекомендованные механизмы — в первую очередь, расширения и стандартные протоколы, чтобы обеспечить надежный и безопасный обмен данными.

← На главную