Сервисы интеграции без Шины и интеграции

13.03.24

Разработка - Механизмы платформы 1С

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

Скачать файл

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

Наименование Бесплатно
Расширение для статьи "Сервисы интеграции без Шины и интеграции"
.cfe 10,51Kb ver:1.0.0
86
86 Скачать бесплатно
Обработка для статьи "Сервисы интеграции без Шины и интеграции"
.epf 8,83Kb ver:1.0.0
86
86 Скачать бесплатно

Статья создана для того, чтобы развеять миф: «Сервисы интеграции» — это только коннектор для Шины.

Покажу пример с «ПоказатьОповещениеПользователя», в этом примере не будет Шины от слова совсем.

 

У меня была не самая свежая БСП 3.1.6.118, на ней и буду демонстрировать, но вообще не принципиально.

В БСП есть расширение «_ДемоПустоеРасширение», в нем создал «Сервис интеграции» и Канал «_ОповещенияПользователей» для отправки:

 

 

В БСП есть форма текущие дела, добавим ее в расширение «_ДемоПустоеРасширение»:

 

 

 

 

Добавим обработчик события формы ПриОткрытии (После): _ДемоПустоеРасширениеПриОткрытииПосле

 
 Добавим на форму код:

 

Пояснение по коду:

  1. В обработчике события «ПриОткрытии» считываем параметры текущего пользователя и запускаем обработчик ожидания раз в 15 секунд. Параметры пользователя нам нужны для поиска сообщений, адресованных только ему.
  2. В обработчике считываем сообщения и выводим в цикле их содержание используя функционал «ПоказатьОповещениеПользователя».
  3. После вывода оповещения удаляем сообщения.

Расширение приложено к данной статье «_ДемоПустоеРасширение.cfe»

 

Активируем «Сервис интеграции» воспользовавшись типовой обработкой или обработкой «Настройка сервисов интеграции».

 

 

Никакие параметры не заполняем, так как мы к Шине не цепляемся.

 

Для примера я создал обработку, которую приложил к данной статье «СоздатьСообщениеДляОповещения.epf»

 

 

 
 Код обработки:

 

Пояснение по коду:

1         В обработчике события «ПриСозданииНаСервере» добавляем список сервисов и каналов.

Считываем Имя и Идентификатор текущего пользователя, для поля ИмяОтправителя.

Считываем Имя и Идентификаторы всех пользователей, для поля Пользователь.

Идентификатор будет служить для идентификации получателя и отправителя.

2         В создаваемых сообщениях устанавливаем дату устаревания 60 дней после текущей даты.

3         Тело сообщения — это структура в формате JSON, в которую сохраняем текст сообщения, имя автора и навигационную ссылку на объект (необязательно).

 

Открываем два окна под Руководителем и Администратором.

От Руководителя шлем сообщение Администратору, затем после того, как Администратор его прочитает, отправим сообщение руководителю:

 

 

 

Заключение:

Вот таким незамысловатым способом мы использовали новый механизм «Сервисы интеграции». Как вы видите, этот механизм может решать не только интеграционные задачи.

Я считаю, что механизм неплохой и перспективный, если вы его еще не трогали, присмотритесь к нему.

 

На этом статью завершаю.

Всем желаю профессионального роста и интересных задач!

 

Полезные ссылки:

Поинтегрируем: нужна ли Шина вам? – Статья, с которой начался цикл статей по интеграции.

Три инструмента для сервисов интеграции – Бесплатные инструменты по работе с сервисами интеграции.

PAPI-tools – Проект на GitHub содержащий исходники обработок, которые будут первоначально выкладываться в данном проекте, а в будущем перетекать в подсистему PAPI (релиз подсистемы запланирован на 19.05.2024)

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор? – Статья описывает механизм «Сервисы интеграции» изнутри и снаружи

История данных Регистры сведений Интеграция Архитектура Сервисы интеграции Планы обмена Сообщения сервисов интеграции PAPI-tools PAPI GitHub 

См. также

Механизмы платформы 1С Программист Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.27 появилась возможность использовать WebSocket-клиент. Давайте посмотрим, как это все устроено и чем оно нам полезно.

14.01.2025    3736    dsdred    38    

79

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Эта небольшая статья - некоторого рода шпаргалка по файловым потокам: как и зачем с ними работать, какие преимущества это дает.

23.06.2024    9412    bayselonarrend    20    

158

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Все мы используем массивы в своем коде. Это один из первых объектов, который дают ученикам при прохождении обучения программированию. Но умеем ли мы ими пользоваться? В этой статье я хочу показать все методы массива, а также некоторые фишки в работе с массивами.

24.01.2024    21724    YA_418728146    26    

73

Механизмы платформы 1С Программист Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    24966    SeiOkami    48    

136
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user-z99999 72 13.03.24 09:28 Сейчас в теме
Почему так хорошо и доходчиво пишите, в чём секрет?
2. dsdred 3755 13.03.24 09:29 Сейчас в теме
(1) Секрета нет.
Трое детей и большой опыт работы с людьми ))
Windsor77; DENSKR; kholodarev; +3 Ответить
3. anosin 29 13.03.24 09:48 Сейчас в теме
на 8.3.19.x будет работать?
4. dsdred 3755 13.03.24 09:49 Сейчас в теме
(3) Да, должно работать начиная с 8.3.17
5. starik-2005 3096 13.03.24 10:54 Сейчас в теме
А правильно я понял, что это внутри одной базы оповещения? Вот смысл имеет, когда базы разные, а внутри одной базы можно и регистром/справочником/документом/... обойтись, ну или системой взаимодействия, хотя она вроде как тоже межбазовой может быть.
ЗЫ: Ну и хорошим лайфхаком межбазового взаимодействия триггер скульный является, который из таблицы источника в таблицу приемника перекинет данные о сообщении. О нем Вы, кстати, писали. А без шины это все - нарушение лицензионного соглашения, ну и работать будет до очередного изменения структуры таблиц.
6. dsdred 3755 13.03.24 11:57 Сейчас в теме
(5)
А правильно я понял, что это внутри одной базы оповещения?

Все верно. Просто решил показать, что механизм живой и без интеграции.

Вот смысл имеет, когда базы разные, а внутри одной базы можно и регистром/справочником/документом/... обойтись, ну или системой взаимодействия, хотя она вроде как тоже межбазовой может быть.


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

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

В сервисах интеграции, в сообщении есть свойство "Параметр", в который можно добавлять сколько угодно ключей для выборки. Например добавить ключ "ТипОповещение" и т.д.
Соответственно мы получаем очень гибкий механизм. Добавив один канал на него можем вешать разные оповещалки без доработок.

ЗЫ: Ну и хорошим лайфхаком межбазового взаимодействия триггер скульный является, который из таблицы источника в таблицу приемника перекинет данные о сообщении. О нем Вы, кстати, писали. А без шины это все - нарушение лицензионного соглашения, ну и работать будет до очередного изменения структуры таблиц.

Все верно.
Моя цель была как можно подробнее донести информацию по механизму, но когда писал статью во мне проснулся инженер который все время мне говорил: а давай еще вот это попробуем!
В итоге вышло как вышло ))
7. John_d 5911 13.03.24 12:32 Сейчас в теме
(0) Все хорошо, но на практике не применимо. Никто не будет слать сообщения другим пользователям средствами 1С платформы. Проще написать письмо в outlook и вставить в него скриншот.
9. dsdred 3755 13.03.24 12:40 Сейчас в теме
(7)+ я показал лишь один пример.
По сути Сервисы интеграции это ящик с сообщениями а куда и как их отправлять это уже второй вопрос.
Можно хоть в почту, хоть в телегу слать.
8. dsdred 3755 13.03.24 12:39 Сейчас в теме
(7) Вот вам пример из жизни:
В том году на моего коллегу упала задача.
Если в справочнике Номенклатура меняются определенные реквизиты необходимо сделать оповещение через колокольчик группу ответственных лиц.

Как бы вы решили эту задачу?
10. John_d 5911 13.03.24 12:43 Сейчас в теме
(8) Согласен, как оповещение о событии рабочий вариант.
11. starik-2005 3096 13.03.24 13:12 Сейчас в теме
(8)
Как бы вы решили эту задачу?
Неоднократно решал через механизм оповещений из еще старой БСП. Для этого там регистр был и общая форма, а обработчик ожидания использовался системный. Сейчас, кстати, он тоже есть. И в этот колокольчик, как я понял, Вы с помощью него и добавляете.
12. dsdred 3755 13.03.24 13:14 Сейчас в теме
(11) Дак и я так раньше решал. Еще через систему взаимодействия решал.
А теперь появился способ без БСП и без Системы взаимодействия.


ПоказатьОповещениеПользователя(ТекСообщение.Сообщение
,ТекСообщение.НавигационнаяСсылка
,?(ТекСообщение.Свойство("Отправитель"),ТекСообщение.Отправитель,""),
,СтатусОповещенияПользователя.Важное
,ТекСообщение.Идентификатор);

В колокольчик попадает из-за СтатусОповещенияПользователя.Важное
13. starik-2005 3096 13.03.24 13:15 Сейчас в теме
(12)
без БСП и без Системы взаимодействия
Через регистр было бы меньше кода.
14. dsdred 3755 13.03.24 13:17 Сейчас в теме
(13)Это потому, что в БСП уже готовый код универсальный есть, а так по коду не больше.
Даже меньше.
15. d4rkmesa 21.03.24 11:27 Сейчас в теме
Спасибо, курьезная фича. На ИТС "обратный случай" расписали - использование шины без сервисов интеграции:
https://its.1c.ru/db/metod8dev/content/6012/hdoc
16. dsdred 3755 21.03.24 11:43 Сейчас в теме
(15)В пункте "2.2. Доработки в информационной базе "Бухгалтерии предприятия"" присутствуют Сервисы интеграции.
А вообще я видел интересный пример когда из JS отправляли в 1с Канал Шины.

Вообще в шине можно просто файлы перекладывать, можно из кафки в кролик пересылать и т.д. Собственно там 1с конфигурация необязательна, так как 1с Элемент это таже конфигурация 1с только написана заново ))
d4rkmesa; +1 Ответить
17. dimaster 40 04.12.24 09:39 Сейчас в теме
(16) Дмитрий, сори, если уже ранее писали, но поясните, плз:
1) Ваш инструмент PAPI - использует сервисы интеграции? надстройка или как бэ это независимые инструменты интеграции?
2) видел, что шина не нужна, то есть лицензии на шину не требуются?
3) применимо ли решение (papi) для обменов со старой конфой УТ10 на 13 сервере 1С с новой УТ11 на 25 релизе. если это вообще имеет значение/ СИ уже не будут работать ( <8.3.17)
18. dsdred 3755 04.12.24 10:27 Сейчас в теме
(17) Добрый день. Еще не расписывал эту тему. Хотел во второй части с примерами показать вариант обмена с сервисами интеграции и без.

1) Ваш инструмент PAPI - использует сервисы интеграции? надстройка или как бэ это независимые инструменты интеграции?


Независимые инструменты.
Я использовал сервисы интеграции для Шины, но принцип можно применить и для другого транспорта.

Как у меня работал обмен:
Источник:
-По объектам которые должны передаваться включена История данных программно (инструмент PAPI_НастройкаСоставаИсторииДанных)
-Есть подписка (создана средствами PAPI) перед для документов, которая проверяет дату документа и исходя из этого понимает нужно отправлять или нет.
-Создана подписка (создана средствами PAPI) перед записью общая которая проверяет пользователь админ или нет. если админ тогда сразу выполняет обработку после записи версий, для остальных случаев работает регламент ИсторияДанных.ВыполнитьОбработкуПослеЗаписиВерсий();
-Есть подписка (создана средствами PAPI) для обработки после записи версий. в ней я делаю различные действия (фильтрация и обогащение данных) преобразую изменения в структуру используя обработку (https://github.com/ArKuznetsov/SerLib1C/) и в JSON.
Складываю JSON в сообщения сервисов интеграции на выбранных получателей
-у меня в Шину улетают сообщения при помощи стандартного регламента СервисыИнтеграции.ВыполнитьОбработку();
Если сообщения еще не ушли есть инструементы их просмотра PAPI_СообщенияСервисовИнтеграции
Если у вас не 1С Шина, нужно будет написать механизм который делает отбор сообщений из канала сервиса интеграции и отправляет Приемники

Приемник.
-По регламенту СервисыИнтеграции.ВыполнитьОбработку(); читает сообщения. Для чтения сообщения используется
PAPI_РаботаСВходящимиСообщениями.ОбработкаВходящихСообщений(Сообщение, Отказ);
и Справочник.PAPI_ЧтениеСообщений (в данном справочнике у меня код вызывающий обработку в которой описано как читать входящие данные)
Если при чтении есть ошибки, они фиксируются в РегистрыСведений.PAPI_ВходящиеСообщенияСервисаИнтеграции
Если пришел идентификатор не полученного объекта, тогда сообщение фиксируется в регистре РегистрыСведений.PAPI_ВходящиеСообщенияСервисаИнтеграции и запрашивается полная версия объекта из базы источника, после того как пришел объект, он читается и вновь идет попытка чтения сообщения из РегистрыСведений.PAPI_ВходящиеСообщенияСервисаИнтеграции
Если вы шину не используете у вас свой механизм



2) видел, что шина не нужна, то есть лицензии на шину не требуются?

Если вы не используете продукт 1с Шина, то и лицензия вам не нужна.
Сервисы интеграции это не комплект к 1с Шине.

3) применимо ли решение (как papi так и сервисы интеграции) для обменов со старой конфой УТ10 на 13 сервере 1С с новой УТ11 на 25 релизе. если это вообще имеет значение

Применить сервисы интеграции можно, но будут нюансы.
-Нужно продумать всю логику по работе с сервисами интеграции и запрограммировать.
-Если нужен статус отправлено/доставлено/прочитано для сообщений тогда проще это сделать на регистре.

СИ уже не будут работать ( <8.3.17)

СИ в <8.3.17 отсутствуют

П.С. Если используете механизмы КД с регистрацией на планах, тогда смысла в PAPI и сервисах интеграции нет.
Если у вас начались проблемы с КД и вы думаете спрыгнуть с планов обмена, тогда смысл есть.
dimaster; +1 Ответить
Оставьте свое сообщение