Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

HTTP Сервис. Оповещение пользователя на клиенте

HTTP Сервис. Оповещение пользователя на клиенте
Я
   YuriEV
 
28.05.21 - 11:22
Коллеги, добрый день.
Уже второй день мучаю 1С и решил обратиться к экспертам =)
Есть HTTP сервис, по нему получаю некое событие методом POST на которое должен реагировать определенный пользователь. Задача как то с сервера толкнуть клиента, понимаю, что это противоречит всему что я учил =)
Думал как то сделать через "Оповестить" или "Сообщение пользователю", но логично было предположить, что пользователи будут разные ...... Единственное, что на данный момент приходит в голову это создать регистр сведений, но так не хочется грузить систему ежесекундным обработчиком...... Может подсказать кто то есть какие то варианты? Начал читать, что якобы можно написать некую dll...но я в них не очень разбираюсь и не знаю стоит копать в ту сторону.
 
 Партнерская программа EFSOL Oblako
   RomaH
 
1 - 28.05.21 - 11:24
так система взаимодействия же
   banco
 
2 - 28.05.21 - 11:44
(0) Если типовая конфигурация на бсп, то можно использовать напоминания пользователя.
   mikecool
 
3 - 28.05.21 - 11:47
совсем хардкор - создавать задачу пользователю
   Бешеный заяц
 
4 - 28.05.21 - 12:05
(0) сервер клиента не может оповестить, только если клиент будет долбить сервер и спрашивать, а для меня есть чего нового?
   ДНН
 
5 - 28.05.21 - 12:13
(0) бери уже готовую компоненту и оповещай http://1clancer.ru/catalog/4336
   Бешеный заяц
 
6 - 28.05.21 - 12:20
(5) а если на терминале кучу народу?
   Вафель
 
7 - 28.05.21 - 12:24
можно как в доисторические времена через NET SEND
   ДНН
 
8 - 28.05.21 - 12:26
(6) У каждого пользователя кого нужно оповестить открываешь свой TCP/UDP порт. Порты можно в регистре сведений хранить. А потом в http сервисе отправлять сообщения на эти порты.
   Галахад
 
9 - 28.05.21 - 12:28
(0) Пиши в телеграмм. Или в почту.
   polosov
 
10 - 28.05.21 - 12:28
(0) На почту напиши письмо.
   RomaH
 
11 - 28.05.21 - 12:30
а чем система взаимодействия не устраивает?
   ДНН
 
12 - 28.05.21 - 12:34
(11) зависимость от сервиса 1с
   YuriEV
 
13 - 28.05.21 - 13:29
(1) Понял. Сейчас попробую. Спасибо за совет
   YuriEV
 
14 - 28.05.21 - 13:30
(3) Согласен, аналогично создавать и запись в регистре.
   YuriEV
 
15 - 28.05.21 - 13:31
(5) Спасибо большое за ссылку. Очень интересно, попробую поковырять
   YuriEV
 
16 - 01.06.21 - 08:40
Решил отписаться по результатам.
Сделал все через систему взаимодействия, вообще очень крутая штуковина оказалась, в плане того что спокойно можно передавать сообщение с параметрами, в виде структуры. Конечно несколько часов кода заменило, 5 минут чтения документации =) но зато все пощупал.
В итоге при запуске АРМ воспользовался методом "НачатьПодключениеОбработчикаНовыхСообщений" :

Ключ = "МоёОбсуждение";
Обсуждение = СистемаВзаимодействия.ПолучитьОбсуждение(Ключ);
ДопПараметр = Новый Структура("Ключ",Обсуждение);
ОП = Новый ОписаниеОповещения("МояЭкспортнаяПроцедура", ЭтотОбъект, ДопПараметр);
СистемаВзаимодействия.НачатьПодключениеОбработчикаНовыхСообщений(,Обсуждение, ОП, Неопределено);


Далее просто создавал неотображаемое сообщение в HTTP Сервисе и отрабатывала "МояЭкспортнаяПроцедура".
   acht
 
17 - 01.06.21 - 09:22
(16) Люди, которые будут поддерживать твой код, проклянут тебя за букву "ё". Не порть себе карму.
   Конструктор1С
 
18 - 01.06.21 - 10:12
Да, когда требуется повесить "слушателя", начинаются боль и слезы. Хотя в той же "примитивной" Java это как два пальца об асфальт
   aka MIK
 
19 - 01.06.21 - 10:16
"но так не хочется грузить систему ежесекундным обработчиком"

Это не нагрузка
   polosov
 
20 - 01.06.21 - 10:29
(18) Вся твоя "простота" в java сделана по типу БСП. Т.е. подключил пакет и пользуешься.
   Конструктор1С
 
21 - 01.06.21 - 10:41
(20) ну, так в 1с это впринципе не сделать, платформа не позволяет
   ДенисЧ
 
22 - 01.06.21 - 10:44
(21) Платформа в лице ВК - вполне позволяет. Только что ты с этой ВК делать будешь на маке в веб-клиенте?
Кстати, твоя жаба в таких условиях тоже квакнет
   polosov
 
23 - 01.06.21 - 10:44
(21) Если у тебя будет решение на жабе в виде серверного бэка и пользовательского фронта, по типу УФ 1С, то перед тобой также встала бы проблема передачи оповещений.
   polosov
 
24 - 01.06.21 - 10:48
+(23) И сразу представляй, что клиент может быть отдельным приложением, браузерным пользователем или мобильным приложением.
   Конструктор1С
 
25 - 01.06.21 - 11:39
(22) на жабе ты напишешь что тебе вздумается и без всяких ВК, язык позволяет сделать это. А жабова виртуальная машина кросплатформенная, она исполнит твой код хоть на маке, хоть в винде
(23) не встала бы. На жабе, как и на многих других языках, нет проблем с оповещением сервером клиента. Там это делается довольно тривиально
   Конструктор1С
 
26 - 01.06.21 - 11:45
(24) это уже вопрос архитектуры, а не разности интерфейсов. Должен существовать промежуточный слой между сервером и интерфейсом, презентатор (Presenter). Он будет "наблюдать" за сервером, и взаимодействовать с интерфейсом. Интерфейс может быть хоть веб, хоть десктопный. В таком случае не важно, как там работает сервер. Нужно лишь скурить шаблон проектирования MVP:
https://ru.wikipedia.org/wiki/Model-View-Presenter
   polosov
 
27 - 01.06.21 - 11:47
(25) "На жабе, как и на многих других языках, нет проблем с оповещением сервером клиента."
Ты пробовал реализовывать такое решение хоть раз? Пробовал уведомлять клиентов на разной инфраструктуре?
Как ты будешь уведомлять пользователей подключающихся через веб-сервер к твоему бэку?
   polosov
 
28 - 01.06.21 - 11:47
(26) О, да. Взял паттерн и все само собой разрешилось.
   Конструктор1С
 
29 - 01.06.21 - 11:48
(27) погугли как работает Firebase, например. Он делает всё это из коробки и на ура
   polosov
 
30 - 01.06.21 - 11:50
(29) 1С тоже делает из коробки же.
 
 
   ДенисЧ
 
31 - 01.06.21 - 11:51
(26) Ну так 1с такой презентер даёт. Называется "система взаимодействия"...
   Конструктор1С
 
32 - 01.06.21 - 11:51
(28) ты придумываешь какие-то искусственные органичения. На самом деле это для 1с задача из разряда сложных, нужно писать ВК, изобретать костыли и наживать геморрой. В "большом" программировании задачи типа (0) решаются легко и с лохматых времён
   polosov
 
33 - 01.06.21 - 11:53
(32) Да потому что платформа 1С это фреймворк для разработки бизнес-приложений.
Ты отличия языков, фреймворков, готовых библиотек вообще понимаешь?
   Конструктор1С
 
34 - 01.06.21 - 11:54
(30) 1с подобное еле умеет только благодаря системе взаимодействия, но и то через одно место. Попробуй на голой 1с написать мессенджер (забудем о существовании системы взаимодействия). Это будети просто мегауродство. На каждом из клиентских сеансов придётся повещать обработчик ожидания, который раз в секунду будет опрашивать сервер "есть новые сообщения?", "есть новые сообщения?", "есть новые сообщения?"...
   polosov
 
35 - 01.06.21 - 11:55
(34) А ты попробуй на голой жабе сделать бизнес-приложение.
Только без фреймворков.
Ой, уродство же получится.
   Конструктор1С
 
36 - 01.06.21 - 11:56
(33) как бы тебе объяснить... На дворе 2k21 год. Нас уже давно настигла реальность, что бизнес-приложения должны долбиться в интернет
(35) а зачем? На жабе для этого есть вагон готовых фреймворков
   ДенисЧ
 
37 - 01.06.21 - 11:57
(36) Так и на 1с есть фреймворк "система взаимодействия".
Почему ты жабе разрешаешь иметь их, а 1су нет?
Уж не блм-щик ли ты?
   polosov
 
38 - 01.06.21 - 11:58
(36) "На жабе для этого есть вагон готовых фреймворков"
Вот именно. Зоопарк фреймворков. И когда ты собираешь свое бизнес-решение, то оно похоже на монстра Франкинштейна. Это не плохо или хорошо. Это реальность. 1С предоставляет достаточную инфраструктуру для построения решений в одном месте.
   Irbis
 
39 - 01.06.21 - 12:00
(0) Отправить электронное письмо не предлагать?
   Конструктор1С
 
40 - 01.06.21 - 12:10
(37) давно ли он появился? Плюс этот фреймворк покупается отдельно, хотя на жабе есть полно бесплатного
   polosov
 
41 - 01.06.21 - 12:14
(40) Кто мешает сделать свой сервис для оповещений на том же Go?
1С не противопоставляется другим технологиям, а активно развивает средства интеграции с ними.
   Конструктор1С
 
42 - 01.06.21 - 12:22
(38) тут дело в другом. Пока решаются типично 1сные задачи всё хорошо, всё красиво. Но стоит чуть шагнуть в сторону, начинаются боль и слезы. Нарисовать отчетик на СКД - легко и быстро. Запилить интеграцию с интернет-магазином - долго и сложно. Если лет 10 назад интернет-магазины были скорее диковинкой, то в 2021 году они повсюду, в каждом втором ларьке. А мы на 1с как собирали/разбирали JSON ручками, так и продолжаем. Интеграция со сторонними системами давно и серьезно вошла в нашу жизнь. А 1с всё та же "доступно и всерьёз" - пишите ВК, лепите костыли. Всё, прошли те времена когда технологии жили обособленно друг от друга, настала тотальная интеграция всего и вся. Всякие там джавы оказались к наступлению будущего готовы, 1с - нет
   Конструктор1С
 
43 - 01.06.21 - 12:26
(41) мешает то, что 1с не может нормально взаимодействовать с другими сервисами
   ДенисЧ
 
44 - 01.06.21 - 12:28
(40) Достаточно. А покупать его надо, если хочешь свой. Не хочешь - используй диалог
   polosov
 
45 - 01.06.21 - 12:28
(43) Да с чего ты взял. Я кучу интеграций разных написал. Проблем не испытывал. Даже делал эмулятор работы пользователя на сайте, работающего в фоновом задании. Не знаю с чем 1С не может интегрироваться.
   ДенисЧ
 
46 - 01.06.21 - 12:29
(42) "Запилить интеграцию с интернет-магазином - долго и сложно"
Когда руки кривые - и чайник вскипятить сложно.
"мы на 1с как собирали/разбирали JSON ручками, так и продолжаем"
Ну точно, руки из места растут...
   ДенисЧ
 
47 - 01.06.21 - 12:29
"Интеграция со сторонними системами давно и серьезно вошла в нашу жизнь"
Давай, напиши нам на жабе интеграцию с 1с. Не 1с с жабой, а жабу с 1с.
   ДенисЧ
 
48 - 01.06.21 - 12:30
(43) "1с не может нормально взаимодействовать с другими сервисами"
за 4 поста - 4 подтверждения места произрастания рук...

И эти люди нас будут учить ковыряться...
   Конструктор1С
 
49 - 01.06.21 - 12:36
(45) ты просто не видел, как это делают другие. Для меня 1с тоже была центром мироздания, а потом я познакомился с внешним миром...
   polosov
 
50 - 01.06.21 - 12:37
(49) Да знаю я, что проще некоторые вещи делаются. Я тоже не только в 1С умею. Но вот сделать добротную простенькую учетную конфу за денек - это доступно только в 1С.
   DrZombi
 
51 - 01.06.21 - 12:40
Всегда поражало желание сделать оповещение в реальном времени, к примеру оповещения секунда в секунду, как в чате :)))

(0) Пишешь сервер, который получает твои оповещения и кладет все в некий набор данных (лучше Регистр сведений).
А пользователю выводишь оповещения по обработчику ожиданий...

Если можешь, прикрути это все к БСП механизму оповещений... :)
   Конструктор1С
 
52 - 01.06.21 - 12:54
(46) ты как-то иначе с JSON работаешь?
(47) легко. Выгружаешь пакет EnterpriseData в XSD, дальше делаешь вот так:
https://www.youtube.com/watch?v=6yQyEVEK2bc
и вот у тебя готовый Java-код для работы с форматом ED
   Конструктор1С
 
53 - 01.06.21 - 12:57
(50) в 2k21 году "просто учетная система" перестаёт быть простой учетной системой. Непременно захочется учетную систему интегрировать с сайтиком, call-системой, мобильным приложением и ещё много чем
   polosov
 
54 - 01.06.21 - 12:58
(52) https://www.youtube.com/watch?v=6yQyEVEK2bc
Это XDTO для индусов чтоль?
   polosov
 
55 - 01.06.21 - 12:58
(53) Да все нормально интегрируется.
   Конструктор1С
 
56 - 01.06.21 - 13:03
(54) нет, это кодогенерация. На вход затаскивает файлик XSD, на выходе получает готовый Java-код
   polosov
 
57 - 01.06.21 - 13:08
(56) Это кодогенерация для создания класса на основании схемы. Это прорыв?
   Конструктор1С
 
58 - 01.06.21 - 13:08
(55) жигуль тоже кажется нормальной машиной, пока на БМВ не поездишь...
   Конструктор1С
 
59 - 01.06.21 - 13:09
(57) по сравнению с 1с - да, прорыв
   polosov
 
60 - 01.06.21 - 13:12
(59) Ты погугли когда начались в 1С манипуляция объектами на основе xsd-схем.
(58)  У БМВ стоимость владения выше.
 
 
   Конструктор1С
 
61 - 01.06.21 - 13:28
(60) угу. То, что в "примитивной" Java делается добавлением пары аннотаций, мы на 1с делаем в пару сотен строк кода
 >>У БМВ стоимость владения выше

а вот тут ещё вопрос, у кого стомость владения выше. Я же говорю, в тру-программировании многие повседневные вещи делаются гораздо проще, чем в 1с. Фигануть отчет на СКД - тут да, тут 1с красавица, 1сники стоит в белом. Но если дело доходит до интеграции, то тут 1с нифига не лучше других, часто сливает
   polosov
 
62 - 01.06.21 - 13:34
(61) Еще раз. В java core ты ничего толком не сделаешь. Используя чужие пакеты и фремворки ты тупо умножаешь на отрицательный мультипликатор безопасность и работоспособность своего приложения. Поэтому надо держать команду жабакодеров по каждому направлению. Это нормально. Это хорошо. Поэтому жабакодеры и стоят подороже.
   Конструктор1С
 
63 - 01.06.21 - 13:43
(62) на голой жабе никто и не пишет. Нам даже надо завидовать джавистом. Джава она настолько большая, что на каждый чих есть 100500 готовых фреймворков. Мы каждую нестандартную задачу встречаем с голой задницей, начинаем велосипедить что-то своё. А джависты всегда знают, что до них эту задачу уже кто-то решал. Надо только найти готовое решение и добавить в свой проект
   Вафель
 
64 - 01.06.21 - 14:41
да и в 1с интеграций пруд пруди. правда они платные все


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.