Пример двусторонней интеграции 1С и Slack

10.05.22

Интеграция - WEB-интеграция

Пример демонстрирует двустороннюю интеграцию 1С и Slack с передачей пользовательских данных между двумя системами Есть разные варианты реализации, учитывая, что Slack отправляет запросы на стороне сервере, это решение предполагает, что путь к 1C API будет доступен публично. Один из вариантов реализации с минимальными рисками, это использование AWS Lambda в качестве прокси запросов. Это предполагает, что база 1С доступа из AWS, или находится там. Данный пример ни в коем роде не является работающим решением и не содержит никаких настроек/конфигураций для обеспечения адекватной безопасности.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Пример двусторонней интеграции 1С и Slack:
.cf 80,10Kb
3
3 Скачать (1 SM) Купить за 1 850 руб.

Конфигурация

  • Slack приложение, которое инициирует API вызовы
  • AWS Lambda функция с публичным URL
  • Веб-сервер 1C с опубликованным HTTP сервисом
  • 1С база данных как процессор и хранитель данных - подойдет любая из версий платформы 8.3 за последние годы т.к. используются только HTTP-сервис. Тестировалось на 8.3.21.

 

AWS Lambda конфигурация:

  • создайте новую Lambda функцию в том же регионе, где находится 1C веб-сервер
  • используйте Python 3.x
  • создайте новый Function URL (страница Configuration) - этот URL будет использован Slack в качестве цели API запросов
  • добавите Python код для проксирования запросов (замените целевой адрес 1С веб-сервера)
import json
import urllib3
import os


def lambda_handler(event, context):
    
    http = urllib3.PoolManager()

    r = http.request('POST', 'http://<1C:Enterprise Web Server>/slack/hs/slack/customer-form',
                 headers={'Content-Type': 'application/json'},
                 body=json.dumps(event))
                 
    result = r.data
    
    return {
        'statusCode': 200,
        'headers': {'Content-Type': 'application/json'},
        'body': result
    }

 

Создайте новое Slack приложение

Наиболее простой вариант это использовать Slack App Manifest - измените URL на адрес AWS Lambda публичный URL.

Опубликуйте приложение в своем workplace и добавите к тому каналу, куда нужно будет отправлять результаты.

display_information:
  name: Slack-1C
features:
  bot_user:
    display_name: Slack-1C
    always_online: false
  slash_commands:
    - command: /create-new-customer
      url: https://your-lambda-id.lambda-url.us-west-2.on.aws/
      description: Create new customer directly from Slack
      should_escape: false
oauth_config:
  scopes:
    bot:
      - commands
      - chat:write
      - incoming-webhook
settings:
  interactivity:
    is_enabled: true
    request_url: https://your-lambda-id.lambda-url.us-west-2.on.aws/
  org_deploy_enabled: false
  socket_mode_enabled: false
  token_rotation_enabled: false

 

Создайте и опубликуйте 1С приложение

Используйте slack в качестве имени веб-приложения.

Заполните две константы:

  • AccessToken - Bot User OAuth Token токен со страницы  OAuth & Permissions
  • ChannelId - ИД целевого канала куда отправлять результаты

Все должно быть готово для использования. Журнал логов в 1C содержит некоторую информацию для помощи в разборе ошибок.

 

Вызвать только что созданную slash-комманду

 

Slash command

 

Появится форма для создания нового клиента - структура полностью формируется в 1С

 

Autogenerated new customer form

 

Заполнить все поля

 

Completed form 

 

НажатьSave to 1C

 

Ответ от 1С возвращается в виде отдельного сообщения

 

Response from 1C

 

Созданные элементы справочника в 1С

 

New entries in 1C

 

Лицензия - MIT

Оригинальная публикация на GitHub.

slack

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17801    19    22    

17

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    19885    13    17    

17

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    14436    42    8    

18

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    1207    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. anton.fly7 174 11.05.22 15:18 Сейчас в теме
а зачем проксировать запросы через AWS ?
2. Aleksey.Bochkov 3681 11.05.22 15:44 Сейчас в теме
(1) чтобы избежать публикации открытого 1С API в интернете - насколько я понял, добавить аутентицикацию в вызовы со стороны Slack нельзя. Поправите меня, если я ошибся.
Вариант с открытым HTTP-сервисом 1С в интернете также подойдет, но я не хотел давать примера небезопасной конфигурации.
Оставьте свое сообщение