|
HTTP Сервис. Оповещение пользователя на клиенте | ☑ | ||
---|---|---|---|---|
0
YuriEV
28.05.21
✎
11:22
|
Коллеги, добрый день.
Уже второй день мучаю 1С и решил обратиться к экспертам =) Есть HTTP сервис, по нему получаю некое событие методом POST на которое должен реагировать определенный пользователь. Задача как то с сервера толкнуть клиента, понимаю, что это противоречит всему что я учил =) Думал как то сделать через "Оповестить" или "Сообщение пользователю", но логично было предположить, что пользователи будут разные ...... Единственное, что на данный момент приходит в голову это создать регистр сведений, но так не хочется грузить систему ежесекундным обработчиком...... Может подсказать кто то есть какие то варианты? Начал читать, что якобы можно написать некую dll...но я в них не очень разбираюсь и не знаю стоит копать в ту сторону. |
|||
1
RomaH
naïve
28.05.21
✎
11:24
|
так система взаимодействия же
|
|||
2
banco
28.05.21
✎
11:44
|
(0) Если типовая конфигурация на бсп, то можно использовать напоминания пользователя.
|
|||
3
mikecool
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) Пиши в телеграмм. Или в почту.
|
|||
10
polosov
28.05.21
✎
12:28
|
(0) На почту напиши письмо.
|
|||
11
RomaH
naïve
28.05.21
✎
12:30
|
а чем система взаимодействия не устраивает?
|
|||
12
ДНН
28.05.21
✎
12:34
|
(11) зависимость от сервиса 1с
|
|||
13
YuriEV
28.05.21
✎
13:29
|
(1) Понял. Сейчас попробую. Спасибо за совет
|
|||
14
YuriEV
28.05.21
✎
13:30
|
(3) Согласен, аналогично создавать и запись в регистре.
|
|||
15
YuriEV
28.05.21
✎
13:31
|
(5) Спасибо большое за ссылку. Очень интересно, попробую поковырять
|
|||
16
YuriEV
01.06.21
✎
08:40
|
Решил отписаться по результатам.
Сделал все через систему взаимодействия, вообще очень крутая штуковина оказалась, в плане того что спокойно можно передавать сообщение с параметрами, в виде структуры. Конечно несколько часов кода заменило, 5 минут чтения документации =) но зато все пощупал. В итоге при запуске АРМ воспользовался методом "НачатьПодключениеОбработчикаНовыхСообщений" : Ключ = "МоёОбсуждение"; Обсуждение = СистемаВзаимодействия.ПолучитьОбсуждение(Ключ); ДопПараметр = Новый Структура("Ключ",Обсуждение); ОП = Новый ОписаниеОповещения("МояЭкспортнаяПроцедура", ЭтотОбъект, ДопПараметр); СистемаВзаимодействия.НачатьПодключениеОбработчикаНовыхСообщений(,Обсуждение, ОП, Неопределено); Далее просто создавал неотображаемое сообщение в HTTP Сервисе и отрабатывала "МояЭкспортнаяПроцедура". |
|||
17
acht
01.06.21
✎
09:22
|
(16) Люди, которые будут поддерживать твой код, проклянут тебя за букву "ё". Не порть себе карму.
|
|||
18
Конструктор1С
01.06.21
✎
10:12
|
Да, когда требуется повесить "слушателя", начинаются боль и слезы. Хотя в той же "примитивной" Java это как два пальца об асфальт
|
|||
19
aka MIK
01.06.21
✎
10:16
|
"но так не хочется грузить систему ежесекундным обработчиком"
Это не нагрузка |
|||
20
polosov
01.06.21
✎
10:29
|
(18) Вся твоя "простота" в java сделана по типу БСП. Т.е. подключил пакет и пользуешься.
|
|||
21
Конструктор1С
01.06.21
✎
10:41
|
(20) ну, так в 1с это впринципе не сделать, платформа не позволяет
|
|||
22
ДенисЧ
01.06.21
✎
10:44
|
(21) Платформа в лице ВК - вполне позволяет. Только что ты с этой ВК делать будешь на маке в веб-клиенте?
Кстати, твоя жаба в таких условиях тоже квакнет |
|||
23
polosov
01.06.21
✎
10:44
|
(21) Если у тебя будет решение на жабе в виде серверного бэка и пользовательского фронта, по типу УФ 1С, то перед тобой также встала бы проблема передачи оповещений.
|
|||
24
polosov
01.06.21
✎
10:48
|
+(23) И сразу представляй, что клиент может быть отдельным приложением, браузерным пользователем или мобильным приложением.
|
|||
25
Конструктор1С
01.06.21
✎
11:39
|
(22) на жабе ты напишешь что тебе вздумается и без всяких ВК, язык позволяет сделать это. А жабова виртуальная машина кросплатформенная, она исполнит твой код хоть на маке, хоть в винде
(23) не встала бы. На жабе, как и на многих других языках, нет проблем с оповещением сервером клиента. Там это делается довольно тривиально |
|||
26
Конструктор1С
01.06.21
✎
11:45
|
(24) это уже вопрос архитектуры, а не разности интерфейсов. Должен существовать промежуточный слой между сервером и интерфейсом, презентатор (Presenter). Он будет "наблюдать" за сервером, и взаимодействовать с интерфейсом. Интерфейс может быть хоть веб, хоть десктопный. В таком случае не важно, как там работает сервер. Нужно лишь скурить шаблон проектирования MVP:
https://ru.wikipedia.org/wiki/Model-View-Presenter |
|||
27
polosov
01.06.21
✎
11:47
|
(25) "На жабе, как и на многих других языках, нет проблем с оповещением сервером клиента."
Ты пробовал реализовывать такое решение хоть раз? Пробовал уведомлять клиентов на разной инфраструктуре? Как ты будешь уведомлять пользователей подключающихся через веб-сервер к твоему бэку? |
|||
28
polosov
01.06.21
✎
11:47
|
(26) О, да. Взял паттерн и все само собой разрешилось.
|
|||
29
Конструктор1С
01.06.21
✎
11:48
|
(27) погугли как работает Firebase, например. Он делает всё это из коробки и на ура
|
|||
30
polosov
01.06.21
✎
11:50
|
(29) 1С тоже делает из коробки же.
|
|||
31
ДенисЧ
01.06.21
✎
11:51
|
(26) Ну так 1с такой презентер даёт. Называется "система взаимодействия"...
|
|||
32
Конструктор1С
01.06.21
✎
11:51
|
(28) ты придумываешь какие-то искусственные органичения. На самом деле это для 1с задача из разряда сложных, нужно писать ВК, изобретать костыли и наживать геморрой. В "большом" программировании задачи типа (0) решаются легко и с лохматых времён
|
|||
33
polosov
01.06.21
✎
11:53
|
(32) Да потому что платформа 1С это фреймворк для разработки бизнес-приложений.
Ты отличия языков, фреймворков, готовых библиотек вообще понимаешь? |
|||
34
Конструктор1С
01.06.21
✎
11:54
|
(30) 1с подобное еле умеет только благодаря системе взаимодействия, но и то через одно место. Попробуй на голой 1с написать мессенджер (забудем о существовании системы взаимодействия). Это будети просто мегауродство. На каждом из клиентских сеансов придётся повещать обработчик ожидания, который раз в секунду будет опрашивать сервер "есть новые сообщения?", "есть новые сообщения?", "есть новые сообщения?"...
|
|||
35
polosov
01.06.21
✎
11:55
|
(34) А ты попробуй на голой жабе сделать бизнес-приложение.
Только без фреймворков. Ой, уродство же получится. |
|||
36
Конструктор1С
01.06.21
✎
11:56
|
(33) как бы тебе объяснить... На дворе 2k21 год. Нас уже давно настигла реальность, что бизнес-приложения должны долбиться в интернет
(35) а зачем? На жабе для этого есть вагон готовых фреймворков |
|||
37
ДенисЧ
01.06.21
✎
11:57
|
(36) Так и на 1с есть фреймворк "система взаимодействия".
Почему ты жабе разрешаешь иметь их, а 1су нет? Уж не блм-щик ли ты? |
|||
38
polosov
01.06.21
✎
11:58
|
(36) "На жабе для этого есть вагон готовых фреймворков"
Вот именно. Зоопарк фреймворков. И когда ты собираешь свое бизнес-решение, то оно похоже на монстра Франкинштейна. Это не плохо или хорошо. Это реальность. 1С предоставляет достаточную инфраструктуру для построения решений в одном месте. |
|||
39
Irbis
01.06.21
✎
12:00
|
(0) Отправить электронное письмо не предлагать?
|
|||
40
Конструктор1С
01.06.21
✎
12:10
|
(37) давно ли он появился? Плюс этот фреймворк покупается отдельно, хотя на жабе есть полно бесплатного
|
|||
41
polosov
01.06.21
✎
12:14
|
(40) Кто мешает сделать свой сервис для оповещений на том же Go?
1С не противопоставляется другим технологиям, а активно развивает средства интеграции с ними. |
|||
42
Конструктор1С
01.06.21
✎
12:22
|
(38) тут дело в другом. Пока решаются типично 1сные задачи всё хорошо, всё красиво. Но стоит чуть шагнуть в сторону, начинаются боль и слезы. Нарисовать отчетик на СКД - легко и быстро. Запилить интеграцию с интернет-магазином - долго и сложно. Если лет 10 назад интернет-магазины были скорее диковинкой, то в 2021 году они повсюду, в каждом втором ларьке. А мы на 1с как собирали/разбирали JSON ручками, так и продолжаем. Интеграция со сторонними системами давно и серьезно вошла в нашу жизнь. А 1с всё та же "доступно и всерьёз" - пишите ВК, лепите костыли. Всё, прошли те времена когда технологии жили обособленно друг от друга, настала тотальная интеграция всего и вся. Всякие там джавы оказались к наступлению будущего готовы, 1с - нет
|
|||
43
Конструктор1С
01.06.21
✎
12:26
|
(41) мешает то, что 1с не может нормально взаимодействовать с другими сервисами
|
|||
44
ДенисЧ
01.06.21
✎
12:28
|
(40) Достаточно. А покупать его надо, если хочешь свой. Не хочешь - используй диалог
|
|||
45
polosov
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 подтверждения места произрастания рук... И эти люди нас будут учить ковыряться... |
|||
49
Конструктор1С
01.06.21
✎
12:36
|
(45) ты просто не видел, как это делают другие. Для меня 1с тоже была центром мироздания, а потом я познакомился с внешним миром...
|
|||
50
polosov
01.06.21
✎
12:37
|
(49) Да знаю я, что проще некоторые вещи делаются. Я тоже не только в 1С умею. Но вот сделать добротную простенькую учетную конфу за денек - это доступно только в 1С.
|
|||
51
DrZombi
гуру
01.06.21
✎
12:40
|
Всегда поражало желание сделать оповещение в реальном времени, к примеру оповещения секунда в секунду, как в чате :)))
(0) Пишешь сервер, который получает твои оповещения и кладет все в некий набор данных (лучше Регистр сведений). А пользователю выводишь оповещения по обработчику ожиданий... Если можешь, прикрути это все к БСП механизму оповещений... :) |
|||
52
Конструктор1С
01.06.21
✎
12:54
|
(46) ты как-то иначе с JSON работаешь?
(47) легко. Выгружаешь пакет EnterpriseData в XSD, дальше делаешь вот так: https://www.youtube.com/watch?v=6yQyEVEK2bc и вот у тебя готовый Java-код для работы с форматом ED |
|||
53
Конструктор1С
01.06.21
✎
12:57
|
(50) в 2k21 году "просто учетная система" перестаёт быть простой учетной системой. Непременно захочется учетную систему интегрировать с сайтиком, call-системой, мобильным приложением и ещё много чем
|
|||
54
polosov
01.06.21
✎
12:58
|
(52) https://www.youtube.com/watch?v=6yQyEVEK2bc
Это XDTO для индусов чтоль? |
|||
55
polosov
01.06.21
✎
12:58
|
(53) Да все нормально интегрируется.
|
|||
56
Конструктор1С
01.06.21
✎
13:03
|
(54) нет, это кодогенерация. На вход затаскивает файлик XSD, на выходе получает готовый Java-код
|
|||
57
polosov
01.06.21
✎
13:08
|
(56) Это кодогенерация для создания класса на основании схемы. Это прорыв?
|
|||
58
Конструктор1С
01.06.21
✎
13:08
|
(55) жигуль тоже кажется нормальной машиной, пока на БМВ не поездишь...
|
|||
59
Конструктор1С
01.06.21
✎
13:09
|
(57) по сравнению с 1с - да, прорыв
|
|||
60
polosov
01.06.21
✎
13:12
|
(59) Ты погугли когда начались в 1С манипуляция объектами на основе xsd-схем.
(58) У БМВ стоимость владения выше. |
|||
61
Конструктор1С
01.06.21
✎
13:28
|
(60) угу. То, что в "примитивной" Java делается добавлением пары аннотаций, мы на 1с делаем в пару сотен строк кода
>>У БМВ стоимость владения выше а вот тут ещё вопрос, у кого стомость владения выше. Я же говорю, в тру-программировании многие повседневные вещи делаются гораздо проще, чем в 1с. Фигануть отчет на СКД - тут да, тут 1с красавица, 1сники стоит в белом. Но если дело доходит до интеграции, то тут 1с нифига не лучше других, часто сливает |
|||
62
polosov
01.06.21
✎
13:34
|
(61) Еще раз. В java core ты ничего толком не сделаешь. Используя чужие пакеты и фремворки ты тупо умножаешь на отрицательный мультипликатор безопасность и работоспособность своего приложения. Поэтому надо держать команду жабакодеров по каждому направлению. Это нормально. Это хорошо. Поэтому жабакодеры и стоят подороже.
|
|||
63
Конструктор1С
01.06.21
✎
13:43
|
(62) на голой жабе никто и не пишет. Нам даже надо завидовать джавистом. Джава она настолько большая, что на каждый чих есть 100500 готовых фреймворков. Мы каждую нестандартную задачу встречаем с голой задницей, начинаем велосипедить что-то своё. А джависты всегда знают, что до них эту задачу уже кто-то решал. Надо только найти готовое решение и добавить в свой проект
|
|||
64
Вафель
01.06.21
✎
14:41
|
да и в 1с интеграций пруд пруди. правда они платные все
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |