новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Интеграция 1С и Skype

  • Добавить свою публикацию
  • для этого требуется регистрация

Интеграция  1С и Skype

 

Положа руку на сердце, практическое удобство данной интеграции лично у меня вызывает сомнения.  По той простой причине, что в этом случае вольно или невольно вы выходите «за пределы» Скайпа и возникает угроза конфиденциальности  данных. Но, наверное, с точки зрения заказчика, это очень удобно, находясь в форме 1С одним кликом мышки связаться с контрагентом, отправить ему текстовое сообщение, и совсем уж здорово, прослушать последний разговор с клиентом.

 

Должен предупредить, что сам Скайп записи разговоров не поддерживает, записывать и воспроизводить разговор придется сторонними средствами. Лично для меня вопрос конфиденциальности остро не стоит, поэтому у меня все разговоры по Скайпу пишутся сторонней утилитой Free Video Call Recorder for Skype. Почему именно этой утилитой – а бог его знает, просто первой попалась на глаза, их в интернете  есть целый зверинец, выбирай любую. Мне для экспериментов подошла эта.

Но, приступим.

Для интеграции Скайпа в 1С потребуется библиотека «Skype4Com.dll». Скачать ее можно как с сайта самого Скайпа, так и из любого другого места. Ссылок на скачивание в инете великое множество.

 

Следующий шаг – регистрация библиотеки в системе.

 

Тут все как обычно, библиотека регистрируется утилитой Regsrv32, далее указываете путь и больше не заморачиваетесь. Для простоты положил библиотеку в корень диска и регистрация прошла без проблем.

 

И вот после этих манипуляций переходим, собственно, к кодированию:

 

Тут тоже все достаточно банально :

 

 

Скайп = ПолучитьCOMОбъект("", "Skype4COM.Skype");// Сообщение об ошибке создания объекта
Если Скайп = Неопределено Тогда
	Сообщить("Ошибка создания объекта!");
КонецЕсли;

 

 

Раскрывая объект Скайп в отладчике видим все,  что нам доступно, первое необходимое нам свойство – IsRunning

Если Скайп не запущен, то запускаем:

 

 

Если Не Скайп.Client.IsRunning Тогда
	Скайп.Client.Start(True,True);
	// Что бы окно Скайпа не мельтишило на экране на скорую руку придумал такой способ, 
	//запускаем пустой цикл на 10 секунд, если этого не сделать, 
	//то Скайп не успеет загрузиться и следующая команда 1С выдаст ошибку
	НачВремя = ТекущаяДата();
    Пока 1 = 1 Цикл
    	Если ТекущаяДата() - НачВремя > 10 Тогда
        	Прервать;
        КонецЕсли;
	КонецЦикла;
	// и запускаем Скайп со свернутым окном
	Скайп.Client.Minimize();
КонецЕсли;

 

 

 

 

Скайп запустится с текущими установками, то есть под ником и паролем, с которыми он запускался в последний раз, естественно, если он настроен таким образом.

 

Следующий шаг – читаем список контактов, для удобства создадим ТаблицуЗначений с тремя колонками.

 

 

ПользователиСкайп = Новый ТаблицаЗначений;
ПользователиСкайп.Колонки.Добавить("ИДСкайп",Новый ОписаниеТипов("Строка"));
ПользователиСкайп.Колонки.Добавить("ИМЯ",Новый ОписаниеТипов("Строка"));
ПользователиСкайп.Колонки.Добавить("Статус", Новый ОписаниеТипов("Строка"));

 

 

 

В последней строке может быть и Булево, но мне проще со Строкой

И запускаем цикл

 

 

 Для каждого Контакт ИЗ Скайп.Friends ЦИКЛ
	СТР = ПользователиСкайп.Добавить();
	СТР.ИДСкайп= Контакт.Handle;
	Если СОКРЛП(Контакт.FullName)="" тогда
		СТР.ИМЯ= Контакт.Handle;
	Иначе
		СТР.ИМЯ= Контакт.FullName;
	Конецесли;
	СТР.Статус = Контакт.OnlineStatus;
КонецЦикла;

 

 

Что дальше делать с этой таблицей – дело вкуса, можно обойтись и без таблицы значений и сразу все вывести в табличное поле на форме, но для первых шагов лучше вывести в таблицу и смотреть ее в отладчике.

 

И финал наших манипуляций – звонок по Скайпу:

 

 

Скайп.PlaceCall(ИДСкайп);

 

 

В том случае, если нужно позвонить на произвольный номер, то пишем строку формата "+71234567890" и подставляем ее вместо «ИДСкайп». Выскочит окошко Скайп, и пойдет звонок на указанный номер.

 

Здесь приведена самая общая схема работы со Скайпом, не более того. Будет время, расскажу, как записывать звонки и, самое главное, как их воспроизводить. Но, напоминаю, в этом случае мы выходим за пределы Скайпа, и Скайп конфиденциальность не гарантирует.

 

В разделе "Разработкт" опубликовал рабочую версию обработки. Адрес http://1clancer.ru/catalog/1497

 

 
0
Еще от автора
≡ к списку статей