Краткая инструкция для программистов 1С по интеграции с АТС.
Все TAPI методы, нужные для работы с АТС преобразуются в понятные для 1С методы нашей программой «Звонарь»
После установки необходимых компонент (TAPI драйвера и библиотек для Вашей АТС, и ключа защиты) нужно настроить компьютер на работу с телефонной станцией.
Проверьте в настройках телефонных вызовов («Пуск — Панель управления — Телефон и модем«) правильность указания префикса выхода на внешнюю линию:
Содержимое файла ats1c.zip нужно распаковать в системный каталог C:\Windows\System32. Библиотеку ats1c.dll необходимо зарегистрировать в системе с помощью служебной программы regsvr32. Для этого необходимо в режиме командной строки («Пуск — Выполнить — cmd«) выполнить от Администратора следующую команду:
C:\>regsvr32 «c:\windows\system32\ats1c.dll»
Переходим непосредственно к 1С:
1. Запускаем 1С в режиме конфигуратора.
2. Открываем текст модуля обычного приложения.
3. В начале модуля объявляем глобальную переменную глATS1C:
Перем глATS1C Экспорт;
4. В тексте модуля ищем процедуру ПриНачалеРаботыСистемы. Если такой процедуры не существует, создаем ее.
Процедура ПриНачалеРаботыСистемы()
Попытка
ProgId = «AddIn.ats1c»;
ProgUrl = «C:\ats1c\ats1c.dll»; // путь к файлу компоненты
ПодключитьВнешнююКомпоненту(ProgId);
глATS1C = СоздатьОбъект(ProgId);
// Следующий фрагмент кода позволяет получить информацию
// о доступных телефонных линиях.
// Рекомендуется сохранить ее для дальнейшей работы с АТС.
// Получаем количество линий
КоличествоЛиний = глATS1C.Соединить();
// Делаем перебор доступных линий в цикле
Для Сч = 1 По КоличествоЛиний Цикл
// Получаем имя линии
ИмяЛинии = глATS1C.ПолучитьИмяЛинии(Сч);
// Получаем уникальный идентификатор линии
ИДЛинии = глATS1C.ОткрытьЛинию(Сч);
Сообщить(«Имя линии = « + ИмяЛинии + «, Id линии = « + ИДЛинии);
КонецЦикла;
Исключение
Сообщить(«Ошибка загрузки компоненты « + ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
5. Ищем процедуру ОбработкаВнешнегоСобытия. Если ее нет, создаем вручную.
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) Экспорт
// Данный код является «слушателем» событий, связанных
// с входящими и исходящими звонками на АТС.
// Строка данных в данном случае имеет вид:
// * : Номер звонящего : Абонент : Имя абонента : Id линии : Статус : Id звонка : Источник : Причина : Транк
Если Источник = «ats1c» Тогда
// Формируем полученные данные в строку данных
СтрокаДанных = СтрЗаменить( Данные, «:», РазделительСтрок );
// Получаем номер, с которого совершается вызов
ВызывающийНомер = СтрПолучитьСтроку(СтрокаДанных, 2);
// Получаем принимающий номер
ПринимающийНомер = СтрПолучитьСтроку(СтрокаДанных, 3);
// Получаем статус вызова. Может принимать значения:
// 1 — вызов сброшен
// 32, 2 — вызов активен и ждет ответа
// 256 — режим разговора, трубка поднята
// 16384 — конец вызова.
СтатусЗвонка = СтрПолучитьСтроку(СтрокаДанных, 6);
// Определяем идентификатор звонка
// Идентификатор нужен для того, чтобы иметь возможность
// сбросить или переадресовать звонок
ИДЗвонка = СтрПолучитьСтроку(СтрокаДанных, 7);
// Исходя из полученных данных, можно написать функцию
// обработки вызовов, например, в момент звонка
// найти в справочнике контрагента с совпадающим номером
// телефона и вывести на экран его карточку.
КонецЕсли;
КонецПроцедуры
6. Компонента позволяет сбрасывать вызов. Для этого необходимо вызвать метод Уничтожить. В качестве параметра. нужно указать идентификатор звонка, полученный в процедуре обработки внешнего события.
глATS1C.Уничтожить(ИДЗвонка);