|
Интеграция 1С и АТС ОКТЕЛЛ | ☑ | ||
---|---|---|---|---|
0
Alex_MA
24.06.13
✎
12:10
|
Всем здравствуйте!
Задача: Менеджер звонит по SIP телефону (сигнал идет через сервер ОКТЕЛЛ), сервер ОКТЕЛЛ посылает данные в 1С. Каким образом создать документ в текущем сеансе пользователя ? Есть у кого нибудь какие мысли по решению такой задачи ? За советы премного благодарен. Спасибо за внимание. |
|||
1
1Cv8_accepted
24.06.13
✎
12:12
|
(0) Если какая-нибудь типовая конфигурация, то есть документ "Событие". Создавать при помощи COM-автоматизации, как и любой другой документ из внешнего приложения.
|
|||
2
MaxisUssr
24.06.13
✎
12:14
|
(0)
Недавно занимался подобным. Купили панель телефонии со своей компонентой, которая при событиях в Астериске генерила ВнешнееСобытие, которое в свою очередь успешно обрабатывалось в 1С (также была возможность создать документ "Событие", но я сделал регистр для звонков - это удобнее для составления отчетов) |
|||
3
Alex_MA
24.06.13
✎
12:16
|
(1)дело в том, что сигнал идет изначально не из программы 1С, в от сервера ОКТЕЛЛ, поэтому нужно как то "попасть" в нужный сеанс пользователя и перед его "носом" создать документ "Собятие"
|
|||
4
Alex_MA
24.06.13
✎
12:17
|
(3)+для дальнейшего его заполнения
|
|||
5
MaxisUssr
24.06.13
✎
12:22
|
(4)
Этот сервер ОКТЕЛЛ внешнее событие генерит? (1С это событие видит?) |
|||
6
Alex_MA
24.06.13
✎
12:25
|
(5) Трубка(менеджер) -> ОКТЕЛЛ -> Звонок клиенту и сигнал в 1С
|
|||
7
Alex_MA
24.06.13
✎
12:28
|
(5)Конечно можно заделать через модуль внешнего соединения, но как отобразить у конкретного менеджера создание документа ?
|
|||
8
MaxisUssr
24.06.13
✎
12:32
|
(7)
Судя по описанию (все события генерятся) проблему не понимаю |
|||
9
Alex_MA
24.06.13
✎
12:34
|
(8)каким образом откроется новый документ у менеджера ?
|
|||
10
Alex_MA
24.06.13
✎
12:36
|
(8)ОКТЕЛЛ (стучимся в 1С) -> создаем документ "Событие" - Не проблема.
Дальше как показать документ ? Можно конечно так: Запущено регл. задание, которое открывает последний сделанный звонок конкретным менеджером - но мне не нравится, м.б. есть какие другие варианты ? |
|||
11
MaxisUssr
24.06.13
✎
12:38
|
(10)
Я бы сделал панель телефонии. Подсмотреть ее внешний вид можно у MIKO или Asterisk. В ней отображать все текущие звонки. |
|||
12
Alex_MA
24.06.13
✎
12:40
|
(11)в том то и дело, мне панель телефонии не подойдет. Звонок идет с трубки SIP телефона,а не с панели
|
|||
13
MaxisUssr
24.06.13
✎
12:41
|
(10)
Т.е. никакого "внешнего события" не возникает - тебе вручную (через COM) приходится создавать документ? Ну все равно - через тот же COM можно попробовать запустить метод "Оповестить()" с параметром, равным ссылке на документ, и панель телефонии уже примет это оповещение своим методом "ОбработкаОповещения()" и откроет документ, переданный в параметре |
|||
14
Alex_MA
24.06.13
✎
14:59
|
оповестить() работает ведь в рамках одного сеанса
|
|||
15
Alex_MA
24.06.13
✎
15:08
|
тогда получается все сводится к следующему:
1. какая то сторонняя программа подсоединилась к 1С, что то туда записала 2. Как только записала, в сеансе конкретного пользователя - что то случилось, например Hello World (Без использования регламентных заданий и подключить обработчик ожидания) |
|||
16
MaxisUssr
24.06.13
✎
16:09
|
(14)
А если заюзать метод формы ВнешнееСобытие() - ничего он хорошего не ловит после звонка? |
|||
17
Alex_MA
25.06.13
✎
08:45
|
Подскажите пожалуйста сработает ли таким образом внешнее событие ?
Допустим я написал внешнюю компоненту, при каждом запуске 1С она происходит ее подключение. Менеджер выполняет звонок с телефона, сигнал идет через ОКТЕЛЛ, который в свою очередь подключается к экспортной функции модуля внешнего соединения и передает туда какие то данные, а так же, например, вызывает какую либо функцию внешней компоненты, а она в свою очередь инициализирует ОбработкаВнешнегоСобытия именно у того менеджера который выполняет звонок ? |
|||
18
ИС-2
naïve
25.06.13
✎
09:25
|
(0) ничего не знаю про октелл, но можно сделать - в промежуточную базу выгружать данные об активных звонках и через COM подключение 1C опрашивать о их наличии
|
|||
19
Alex_MA
25.06.13
✎
10:18
|
||||
20
zladenuw
25.06.13
✎
10:28
|
а в октелл, ты знаешь какой менеджер принял звонок ? если да. то можно ведь вызвать внешние событие 1с. передать туда ключ менеджера который обработал звонок. а уже через обработчик ожидание у пользователя открываешь ему документ.
|
|||
21
Alex_MA
25.06.13
✎
10:52
|
(20) регламентные функции и обработчики ожидания - это разрыв по времени.
|
|||
22
zladenuw
25.06.13
✎
10:54
|
(21) почему ? делаешь оповестить пользователя по внешнему событию. если это Уф то можно передать ссылку на документ и пользователь может его сам открыть
|
|||
23
Alex_MA
25.06.13
✎
11:12
|
Т.е. внешнее событие не в рамках одного сеанса ?
|
|||
24
Jonny_Khomich
25.06.13
✎
11:44
|
(0) вообще на форуме (r.oktell.ru) был кусок кода как делать связь с 1с.
|
|||
25
Alex_MA
25.06.13
✎
11:58
|
(24)если вы про это:
http://r.oktell.ru/wiki/category14/175/ то это не решает проблемы а вот тут http://infostart.ru/public/176512/ люди каким то образом решили проблему. ЦИТАТА Для того чтобы получить карточку клиента при входящем звонке нужно сделать так, чтобы во время звонка сервер Asterisk дернул каким-нибудь образом 1С: Предприятие, да еще и клиентский сеанс того пользователя, чей телефон в данный момент зазвонил. КОНЕЦИТАТЫ |
|||
26
Jonny_Khomich
25.06.13
✎
12:03
|
(25) вот надо обращаться к Илье Соколову, человек знающий, я на него работал.
Есть у него проекты (внедрял до меня), где 1ска выдаёт карточку контрагента при входящем звонке в Oktell. |
|||
27
Alex_MA
25.06.13
✎
12:08
|
(26)вот этот момент и интересует, как при входящем или исходящем звонке идентифицируется нужный сеанс где нужно что то сделать...
|
|||
28
Jonny_Khomich
25.06.13
✎
12:27
|
(27) вся работа через com-объект, я этим не занимался, настраивал карточку звонка стандартными решениями октелла.
|
|||
29
Alex_MA
25.06.13
✎
15:33
|
У пользователя постоянно висит какая-то обработка. На внешнее событие формы этой обработки приходит массив данных из сервера 1С. По приходу массива происходит обработка программными средствами 1С.
Каким образом можно осуществить внешнее событие ? |
|||
30
smotritel
25.06.13
✎
15:40
|
реклама: http://www.elit-callcenter.ru/
|
|||
31
MaxisUssr
25.06.13
✎
15:47
|
(29)
Если отправлять событие через Внешнюю Компоненту - в инете есть темы на форумах, поищи по фразе "как отправить внешнее событие 1с". Может поможет. |
|||
32
MaxisUssr
25.06.13
✎
15:49
|
ExternalEvent
|
|||
33
Alex_MA
25.06.13
✎
15:51
|
(30)мне консоль в 1С не нужна.
Звонок будет с трубки телефона. |
|||
34
Alex_MA
25.06.13
✎
15:52
|
(32)уже скачал один проект на VS2010, подключил компоненту для тестов. Пока что работает в рамках одного сеанса.
|
|||
35
MaxisUssr
25.06.13
✎
15:56
|
(34)
Получается, что внешнее событие генерится в винде - естественно оно перехватывается только теми сеансами 1С, которые находятся на том же компе... |
|||
36
smotritel
25.06.13
✎
15:59
|
(33) "консоль" там необязательна, её можно не использовать.
p.s. по ссылке вообще-то можно демо-конфигурацию скачать. она не особо и закрыта. просто для серьезной работы нужен ещё плагин к Октеллу и сценарии для него же описанные в нём же - без них конфа не сильно полезна. но с точки зрения работы с событиями компоненты - ты там что-то сможешь посмотреть. |
|||
37
Alex_MA
25.06.13
✎
16:04
|
(35)я имею ввиду в рамках одного сеанса 1С
|
|||
38
MaxisUssr
25.06.13
✎
16:08
|
(37)
Я к тому, что нужно чтобы некая внешняя компонента, установленная на каждом компьютере, мониторила сервер Октелл и уже по прошествии некоего события отсылала "транзитом" это событие в 1С |
|||
39
Волесвет
25.06.13
✎
16:14
|
эммм, из октелла не вытащить данные кто кому и сколько звонил ? и нафига это в 1с?
|
|||
40
Alex_MA
26.06.13
✎
08:55
|
например есть компонента icq для 1С
http://infostart.ru/public/14457/ а 1С работает много пользователей - каким образом реализована отправка сообщения конкретному пользователю ? |
|||
41
Alex_MA
26.06.13
✎
12:57
|
Каким образом утилита отдает данные в нужный список получателей ? Т.е. как она выдает внешннее событие для всех?
Опишу подробнее: У меня написана внешнаяя компонента, она выполняет деление двух чисел, если мы делим на 0, тогда вызывается внешнее событие в 1С Вот реализация внешнего события во внешней компоненте, если деление на 0 тогда вызывается процедура ExternalEvent - ОбработкаВнешнегоСоединения, которая у меня в модуле управляемого приложения. public int Go(int Param1, int Param2) { try { return (Param1 / Param2); } catch (Exception e) { asyncEvent.ExternalEvent("AddIn", "error", e.ToString()); return 0; } } 1. Открыл 1 сеанс и обработку, которая выполняет подкоючение ВК и выполняет деление при нажатии x/0 (деление на ноль) - вызывается обработка внешнего события - все ОК. Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) Сообщить("123"); КонецПроцедуры 2. Открываем еще сеанс и ту же обработку, которая выполняет подкоючение ВК. При выполнении действия в сеансе №1 деления на 0, ОбработкаВнешнегоСобытия в сеансе №2 не вызывается. Почему ? |
|||
42
Alex_MA
26.06.13
✎
20:56
|
кому интересно завершение дискуссии:
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=613974#613974 |
|||
43
Torquader
28.06.13
✎
01:04
|
А может проблему решать немного по-другому?
Внешняя компонента по TCP-IP общается с сервером телефонии, когда приходит звонок, она посылает сообщение всем клиентам, и у них на форме в 1С светится информация о входящем звонке - кто-то из менеджеров нажимает кнопку принять, и звонок приходит на его рабочее место ? Думаю, что в таком случае не будет ситуации, когда телефон менеджера звонит, а он ответить не может. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |