Пример двусторонней интеграции 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С:ITIL(ИТИЛ), 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    4445    5    0    

11

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

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С.

60000 руб.

07.05.2019    35870    71    45    

30

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

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

57600 руб.

26.11.2024    3325    3    3    

5

WEB-интеграция Программист Бизнес-аналитик Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

14400 руб.

20.12.2024    1396    9    2    

11

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

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

36000 руб.

03.08.2020    19698    24    24    

20

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

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

24000 руб.

27.09.2024    5569    5    2    

6

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

Решение осуществляет синхронизацию задач Битрикс24 и 1С, что позволяет в одной системе ставить задачи, контролировать выполнение всего пула задач с группировкой по ответственным и проектам, формировать управленческие отчеты по работе сотрудников (загрузка, просроченные задачи), уведомлять сотрудников о ходе выполнения задач посредством чат-бот Telegram

7200 руб.

04.05.2021    21320    14    19    

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