Звоним по телефону из 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-ке, если кто знает, подскажите пожалуйста, а то модемы, это не мой конек. Видел недавно на этом форуме публикацию по СОМ-порту но еще не добрался попробовать из нее библиотеку.

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

Файлы обработки:

-