Имя: Пароль:
1C
1С v8
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с интеграций пруд пруди. правда они платные все