Внимание!
Эта wiki об устаревших версиях
Документация к актуальной версии интеграции 1С и телефонии доступна по ссылке

Инструменты пользователя

Инструменты сайта


astpanel:designer:unf:modulecall

Это старая версия документа!


Модуль команды "Позвонить"

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
 
	Если сфпФормаТелефон <> Неопределено Тогда
 
		Участники = ПолучитьСсылкуНаУчастникаИзДокумента(ПараметрКоманды);
		Если Участники.Количество() > 0 Тогда
			сфпФормаТелефон.ПозвонитьВыбравТелефон(Участники);
		Иначе
			ПоказатьПредупреждение(, "Нет номеров телефона для звонка", 3);
		КонецЕсли;
 
	КонецЕсли;
 
КонецПроцедуры
 
Функция ПолучитьСсылкуНаУчастникаИзДокумента(Ссылка)
 
	Участники = Новый Массив;
 
	// Определим список справочников, где хранятся контактные данные
	ВидыСправочников = МИКО_Софтфон.ОпределитьСправочникиСКонтактнойИнформацией();
 
	Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда
 
		Участники.Добавить(Ссылка);
 
	ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда
 
		РеквзитыДокумента 		= Ссылка.Метаданные().Реквизиты;
		ТабличныеЧастиДокумента	= Ссылка.Метаданные().ТабличныеЧасти;
		ЕстьТЧУчастники			= ТабличныеЧастиДокумента.Найти("Участники") <> Неопределено;
 
		// Определим список типов реквизитов для проверки
		ТипыСправочников = Новый Массив;
		Для Каждого Вид Из ВидыСправочников Цикл
			ТипыСправочников.Добавить(Тип("СправочникСсылка." + Вид));
		КонецЦикла;
		// Найдем реквизиты документа, содержащие контактную информацию
		Для Каждого Реквизит Из РеквзитыДокумента Цикл
 
			Если МИКО_Софтфон.РеквизитИмеетТип(Реквизит, ТипыСправочников) Тогда
				// Выполним дополнительную фильтрацию реквизитов
				РеквизитСсылка = Ссылка[Реквизит.Имя];
 
				Если ЗначениеЗаполнено(РеквизитСсылка)
				   И Участники.Найти(РеквизитСсылка) = Неопределено
				   И РеквизитСсылка <> ПараметрыСеанса.ТекущийПользователь Тогда
 
				  	Участники.Добавить(РеквизитСсылка);
 
				КонецЕсли;
 
			КонецЕсли;
 
		КонецЦикла;
 
		Если ТипЗнч(Ссылка) = Тип("ДокументСсылка.Событие")
			И ЕстьТЧУчастники Тогда
 
			 Для каждого ТекСтрока Из Ссылка.Участники Цикл
				 Если ЗначениеЗаполнено(ТекСтрока.Контакт) Тогда
					 Участники.Добавить(ТекСтрока.Контакт);
				 КонецЕсли; 
			 КонецЦикла; 
 
		КонецЕсли; 
 
	КонецЕсли;
 
	// Определим номера телефонов участников
	Результат = МИКО_Софтфон.ОпределитьНомераТелефонов(Участники, ВидыСправочников);
 
	Возврат Результат;
 
КонецФункции // ПолучитьСсылкуНаУчастникаИзДокумента()
astpanel/designer/unf/modulecall.1465226071.txt.gz · Последние изменения: 2016/06/06 15:14 — imal