|
|
|
1С Предприятие и TCP/UDP. | ☑ | ||
|---|---|---|---|---|
|
0
Halluc
13.08.04
✎
11:19
|
В офисе развернута IP телефония.
Сама по себе задача такая - есть Cisco CallManager (программная АТС), есть шлюз в городскую телефонную сеть - Cisco 1760V, из города приходят линии ISDN, соответственно, по ним к нам приходит CallerID (т.е. АОН, грубо говоря). В офисе все телефоны - Cisco IP Phone разных модификаций. Задача - оператор сидит в 1С, разговаривает с клиентом. Номер клиента известен. CallManager через JTAPI может его сказать нам. Оператор тыкает кнопку где-то в форме выписки документа работая в 1С, и в счет/накладную и т.п. вставляются реквизиты абонента (если он в базе уже есть). Но необходимо чтобы кнопка получить реквизити по номеру телефона была активна только в том случае когда оператор разговаривает с клиентом. И как только он ложит трубку кнопка становилась неактивной. Когда поднимает вновь активной. На сервере где установлен CallManager есть программа на Java которая обрабатывает события от CallManager\\\\\\\'a и может по UDP отдать в сеть номер телефона, или событие нового звонка, или событие окончания звонка. Как в 1С реализовать прослушивание UDP порта? Возможен конечно вариант с ActiveX компонентой но как можно обрабатывать события в 1С поступившие от нее? Рассматривался так же вариант забирать номер по HTTP протоколу, но в этом случае теряется динамичность, придется каждый раз делать запросы чтобы отслеживать состояние телефонной линии. Возможно будут другие пути реализации... Подскажите! |
|||
|
1
ErichKrause
13.08.04
✎
11:55
|
Вопрос конешно интересный, но боюсь на ЭТОМ форуме никто не знает ответ на него :)
|
|||
|
2
skunk
13.08.04
✎
11:57
|
смотреть книжку "технология создания внешних компонент"
http://www.1c.ru/rus/products/1c/v75/1ctexcoz/index.html |
|||
|
3
skunk
13.08.04
✎
11:58
|
||||
|
4
HideMan
13.08.04
✎
11:59
|
(1) Причем здесь "ни кто не знает"? Просто данный вопрос решается либо через DDE либо внешней компонентой. А для этого нужно это уметть делать.
|
|||
|
5
BorisG
13.08.04
✎
12:33
|
(1) Если сам не знаешь, вовсе не значит, что никто не знает ;-)
И совсем другой вопрос... а интересно ли сей весьма специфический вопрос тут обсуждать... Скорее нет... |
|||
|
6
Z1
13.08.04
✎
13:00
|
(0)В 1с ассоциируй справочник сделай спр компьютер ( можно сотрудник )
подчиненый справочник ВнутрениеТелефоны. К спр клиенты хранишь подчиненный спр телефоны клиента Есть специал директорий скажем call от каталога базы. Пришел звонок. Твоя компонента ( вообще отдельный процесс вне 1с) кладет в эту директокторию файл с именем файла внутрений номер. При разрыве соеденения файл удаляешь. Внутри файла храниться внешний номер абонента. При нажатии на свою кнопку в 1с определяешь компьютер. Смотришь подчиненные внутр телефоны и находишь или нет соответствующий файл. По содержимому файла востанавливаешь клиента. Если сотрудник умудряется разговаривать одновременно по двум телефонам то можешь выдать список из двух клиентов. Вроде бы все. У меня все это решено на порядок проще. Все это я могу вытащить из базы тарификатора ( без всякой ip телефонии) одним sql запросом |
|||
|
7
Лось
13.08.04
✎
19:20
|
HideMan, мыло дай , общение на тему DDE.
|
|||
|
8
ErichKrause
13.08.04
✎
21:50
|
вопщим от (1) по (7) ничего не изменилось.. разве что (6) исключение... BorisG как всегда выебнулся, но помочь ниче не смог)) это и понятно) ацтой
|
|||
|
9
MMF
13.08.04
✎
22:58
|
Подобного UDP-клиента сделать очень просто. Взять готовую Дельфи-компоненту от NetMasters, Indy или простой UDPSocket и встроить во внешнюю компоненту. Компоненту с UDP я делал, проблем не было.
|
|||
|
10
Лось
13.08.04
✎
23:13
|
(8) Отлично!
(0) В Acsess 95/97 был пример дозвона из адресной книги на VB 6.0, при желании... (9)внешнюю компоненту с 1С вызовом? |
|||
|
11
Halluc
14.08.04
✎
01:25
|
На (2) и (3) отвечаю:
Я все это прочитал до того как писать сюда, поэтому и интересуюсь реально ли сделать все это на средствах 1C. Я прекрасно понимаю что можно написать софтину запускать ее на этом же компе где сидит 1С и по DDE, OLE и т.д. и т.п. коннектится с 1С и все это рулить. Я имел в виду без промежуточных звений решить данную проблему. Для (4): Делать это можем вопрос другой стоит см. выше. Для (6): Идея ясна, но опять же мы ухищряемся с помощью дополнительной софтины... Для (9): Вопрос не стоит в реализации этой внешней компоненты в какой либо среде разработки, просто не хочется никаких дополнительных компонент. Всем ОГРОМНОЕ спасибо... Вот только для меня остался всего один открытый вопрос. Подскажите как из внешней компоненты сказать 1С-ке какое нить событие. Допустим чтобы кнопка на панели стала активной (не активной). Куда у нас в 1С-ке цепляется это событие??? |
|||
|
12
MMF
14.08.04
✎
09:20
|
(11) средствами 1С не прослушать UDP-порт. Поэтому все-равно нужно писать внешнюю компоненту. Событие цепляется на ОбработкаВнешнегоСобытия(), либо возможно вызвать из ВК экспортируюмую процедуру глобального модуля.
|
|||
|
13
romix
14.08.04
✎
16:54
|
Прослушивание сокета - крайне интересная тема.
Можно либо через ВК, либо запускать в ЖДУЩЕМ РЕЖИМЕ внешнюю софтину. Запуск внещних приложений из 1с (встроенный язык - вопрос) |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |