Звоним по телефону из 1С


В базах 1С различных конфигураций часто хранятся номера телефонов — контрагенты (контактные лица), сотрудники (соискатели) и т.д.
Можно воспользоваться этими данными для автоматизации набора номера.

Один из моих клиентов, большой чудак, как-то сказал мне: «Видишь, у меня тут в отчете есть номера телефонов? Хочу чтобы мышкой по нужному бяк-бяк, и он набрался…». Мне это показалось интересным, и начала инженерная мысль гонять тараканов в голове, заставляя их работать — искать варианты. Естественно, номер должен кто-то набрать, модем например. Можно конечно через АТС или SIP-сервер но это доп. проблемы и затраты… Вот и решил я через dll-ку для работы с COM-портом прикрутить модем. Из тестовой формы потом сделал что-то типа СофтФона (он на картинке справа), и форму управления (на картинке слева), на которой будут выбираться, собственно, телефоны, кому звонить. Сразу хочу сказать, что работа еще далека от завершения, и некоторые кнопки/галочки/поля могут либо не работать, либо выдавать ошибки, но сам я уже пользуюсь, ну и дописываю по мере возможности…

И так, в упаковку входят:

  1. vk_rs232.dll —  взял или здесь http://stranichko.org.ua/blog/programming/1c-vk-rs232-com-port-sources/ или http://www.kb.mista.ru/article.php?id=77 уже не помню
  2. СофтФон.epf — собственно, обработка, которая пользует модем
  3. Порт.txt — здесь хранится номер порта, сделал сперва так, а по-человечески пока времени не было
  4. Подготовка.cm — текстовый файл с набором команд модема для его настройки перед набором номера. Тут скажу пару слов — вообще задача стояла общаться через гарнитуру, подключенную к внешнему войсовому модему, так что без настройки было ну никак. Я ложу свой файл для примера, он заточен на конкретно мой модем, для другого может не подойти какая-то команда или регистр. Теоретически, для набора номера достаточно АТ, но дальше после набора лучше брать трубку а по модему давать отбой, если они включены последовательно, иначе при подъеме трубки модем начнет общаться. Так что настраивать скорее всего придется. При загрузке, и после каждого отбоя обработка выполняет подготовку, и находится в ожидании номера для набора.
  5. МенеджерКонтактов.epf  — форма, которая при запуске запускает СофтФон и отображает (пока что) справочник сотрудников. На первой закладке все сотрудники, как они есть в справочнике по папкам, на второй — по категориям, принадлежность к которым определяется в справочнике ФизЛица на закладке дополнительно (рис. 2)

Все эти файлы должны лежать в папке с конфигурацией, если база файловая, или в папке с bin, если серверная (только не бейте Embarassed 

сам знаю что криво). Клик*2 по ФИО сотрудника вызывает карточку физ.лица, а по номеру телефона — сразу идет набор. Если телефона в базе нет, набираем на СофтФоне мышкой или с клавиатуры.

Просто по этой работе в цене не сошлись с заказчиком, поэтому теперь стадия вялотекущей шизофрении разработки, а показать кому-то хочется.

Есть, конечно, и проблемки… Например подготовительные команды выполняются недостаточно быстро, секунду-полторы каждая, а где крутить не знаю? Где покрутить — время отклика модема или таймаут в dll-ке, если кто знает, подскажите пожалуйста, а то модемы, это не мой конек. Видел недавно на этом форуме публикацию по СОМ-порту но еще не добрался попробовать из нее библиотеку.

Короче, как-то так. Смотрите, строго не судите… 

31 Comments

  1. sword444

    (1) поставлю + за идею, буду пробовать

    Reply
  2. IDija

    (0) C чем связано ограничение по конфигурациям. В УТ могу же использовать?

    Reply
  3. sound

    Тоже баловался только астериксом. За развитие идеи авансом плюсану.

    Reply
  4. Sybr

    Хм…Лучше запускать скайп с командной строкой соответствующей. Хотя конечно +

    Reply
  5. madkat

    Молодец, за идею и за то что не забросил и начал реализовывать конечно жму руку.

    Reply
  6. wunderland

    (2) IDija, ограничений нет, а нюансы возможны 🙂

    Начинал писать по под УПП — вроде все ОК, а под ЗиУП запустил, а там категория «Все» отсутствует.

    Вот и крутить сразу нужно…

    Форму менеджера можно модифицировать, сейчас там только ФизЛица, контрагентов туда добавить, представителей, банки, налоговые — у всех же есть телефоны…

    Reply
  7. petunov

    Идея,конечно,хороша, но не нова и уже давно реализована более элегантным способом.

    Использовать внешнюю компоненту нет смысла — она предназначена, в первую очередь, для

    чтения данных из COM-порта. Для управления модемом (набор номера, поднятие трубки и т.п.)

    достаточно использовать FSO,который может работать с COM-портом как с текстовым файлом.

    Ниже пример кода из 7-ки (разобраться и переделать под 8-ку,думаю, труда не составит):

    fso=СоздатьОбъект(«Scripting.FileSystemObject»);

    ff=fso.OpenTextFile(«com3:»,8,0);

    ff.writeline(«ATDT»+НомерТелефона+»;»);

    Предупреждение(«Идет набор номера…»,6);

    ff.writeline(«ATZ»);

    Reply
  8. wunderland

    (3) sound, я одно время работал с *, правда не в контексте 1С, за ссылку спасибо, но это немного другое направление — не тянуть же для этого E1+плата+сервер.

    Хотя для дальнейшего развития проекта вполне возможно

    (4) Sybr, это немного другая задача — для этого должен быть всегда подключен интернет, и номера в базе должны быть скайповские, но как вариант…

    Reply
  9. sound

    (8) Да не, это все понятно, что это разные вещи, но по сути-то одни и те же хотелки (собственно звонки) реализованы абсолютно разными подходами. Просто вспомнилось что-то и решил ссылкой поделиться. Там, кстати, и еще один проект оказывается есть, называется originator, не знал.

    Reply
  10. Rustig

    можно ли с помощью этой разработки отправлять, например, счета из 1С по факсу?

    Reply
  11. Rustig

    печатать счета из 1С в ПДФ и отправлять по электронной почте я уже умею, хотелось бы теперь дополнительно на факс отправлять

    Reply
  12. Новиков

    В принципе уже можно и фидошную ноду таким макаром на 1С’е написать 🙂

    Reply
  13. wunderland

    (10) Rustig, пока точно нельзя 🙂

    Я в этом направлении никогда не копал, и пока не планирую. Но если взять библиотеку от VentaFax или от чего другого наверное можно будет…. Но там же еще, как я понимаю нужно подготовить, что отправлять — превратить отчет(печатную форму) в картинку или PDF.

    Я планирую для проекта такое развитие:

    1) Закончить нормально работу с модемом. Не только набирать номера, но и говорить через гарнитуру.

    2) Звонки на мобильный через gsm-шлюз.

    3) СМС через gsm-шлюз(или моб.тел.) и сайты операторов

    4) Сценарии с использованием этих вариантов: обзвон, рассылка….

    5) SIP

    6) Skyp

    Reply
  14. wunderland

    (7) petunov, знаю что так работают в unix/linux, типа echo atdt1234567>com3

    а вот Ваш вариант, для меня новость, так что большое спасибо, обязательно посмотрю.

    Но есть один момент — если работать через COM модем при входящем звонке сделает в 1С

    событие, которое можно обработать, формочку всплыть или в журнал пропущенных записать….

    Reply
  15. petunov

    (14) http://www.forum.mista.ru/topic.php?id=134535

    Тут можно почитать,как перехватывать событие входящего звонка.

    Reply
  16. wunderland

    (15) petunov, Спасибо, обязательно попробую. Особенно интересно записать последовательность команд, как в моём файле подготовки, а то он у меня долго отрабатівае….

    Reply
  17. Flashill

    Меня очень интересует следующее развитие идеи:

    Звонит заказчик. Программа определяет номер телефона, крупными буквами высвечивает на экране:

    — все что заказчик покупал

    — другие товары которые приобретали другие клиенты (если они приобретали то же, что и звонящий)

    — чем недавно интересовался заказчик, с кем он переговаривал и т.п.

    Таким образом менеджер по продажам всегда будет знать что ответить и что предложить.

    Т.е. развитая CRM система. У нас стоит УПП + 1С: Рарус CRM, но либо мы задействовали не весь потенциал, либо потенциал кажущийся. Кто что посоветует?

    Reply
  18. wunderland

    (17) Flashill, все это вполне реально, но решается скорее всего только доработкой …

    Reply
  19. klel

    Спасибо ребята за идею =) хорошо когда что то новое появляется и идею идут 🙂

    Reply
  20. AlexBar

    Однозначно +1 за идею. Надеюсь развитие идеи не за горами и автор реализует все, что задумал. Что касается использования или не использования dll, то это личное дело автора. Я например использую передачи SMS через USB модем без дополнительных внешних компонент, все средствами 1С и windows библиотека com-порта. Мысль об отправке документов по фасу тоже очень интересная и вероятно имеет хорошие шансы на развитие.

    Reply
  21. pt_olga

    идейко! +1

    Reply
  22. Sergey___

    Хотелось бы на SIP. Но все равно молодец. Ставлю +

    Reply
  23. Boudybuilder

    Интересное решение!

    Будем пробовать!

    ++++++++++++++++

    Reply
  24. yoyoman

    Не понял, сейчас эта штука работает через GSM-модем или Dialup-модем?

    Reply
  25. Fanil

    Ставлю плюс за идею

    Reply
  26. wunderland

    (25) yoyoman, пока — да…

    Но комплект запланирован модульный, т.е. к менеджеру контактов(телефонной записной книжке, если точнее) подключаются Софт-телефоны. Сейчас выложен рабочий набросок именно для Dialup. В дальнейшем будет несколько модулей, а менеджер будет направлять вызов, в зависимости от …. (13) вот тут об этом пару слов…

    Reply
  27. yoyoman

    (27) Большое спасибо за пояснение 🙂 будем ждать дополнительные модули 🙂

    Reply
  28. dandrontiy

    Идея хороша. Но хотелось бы чтобы и со скайпом работало.

    Reply
  29. maxlenium

    Не совсем понял назначение программы, но идея понравилась. Сейчас она только номера набирает? Или еще какой функционал работает?

    Reply
  30. KEP

    И мне понравилось спасибо за идею и продвижение прогресса!

    Reply
  31. Гость

    готов заплатить если нам установите и настроите чтоб все работало мой тел 89196209414 айрат эл ящик 333444@mail.ru

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *