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

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

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


astpanel:designer:unf:modulecall

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
astpanel:designer:unf:modulecall [2013/08/06 16:05]
127.0.0.1 внешнее изменение
astpanel:designer:unf:modulecall [2016/06/06 15:16] (текущий)
imal
Строка 1: Строка 1:
-=== Модуль команды "​Позвонить" ​обработки MIKO_Asterisk ​===+=== Модуль команды "​Позвонить"​ ===
 <code 1c>&​НаКлиенте <code 1c>&​НаКлиенте
 Процедура ОбработкаКоманды(ПараметрКоманды,​ ПараметрыВыполненияКоманды) Процедура ОбработкаКоманды(ПараметрКоманды,​ ПараметрыВыполненияКоманды)
- + 
  Если сфпФормаТелефон <> Неопределено Тогда  Если сфпФормаТелефон <> Неопределено Тогда
-  +  
- Участник = ПолучитьСсылкуНаУчастникаИзДокумента(ПараметрКоманды);​ + СписокУчастников = ПолучитьСсылкуНаУчастникаИзДокумента(ПараметрКоманды);​ 
- Если Участник <> Неопределено Тогда + Если ​СписокУчастников <> Неопределено Тогда
- СписокУчастников = Новый Массив(1);​ +
- СписокУчастников[0] = Участник;​+
  сфпФормаТелефон.ПозвонитьВыбравТелефон(СписокУчастников);​  сфпФормаТелефон.ПозвонитьВыбравТелефон(СписокУчастников);​
  КонецЕсли;​  КонецЕсли;​
- + 
  КонецЕсли;​  КонецЕсли;​
- + 
 КонецПроцедуры КонецПроцедуры
- +  
-Функция ПолучитьСсылкуНаУчастникаИзДокумента(Ссылка) +// Для документов будет возвращено значение реквизита "​Контрагент"​ 
- +// Для справочников - возвращается ссылка на элемент 
 +// В случае ошибки возвращается "​Неопределено"​ 
 +//  
 +Функция ПолучитьСсылкуНаУчастникаИзДокумента(Знач ​Ссылка) ​Экспорт 
 + 
  Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда  Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда
- Возврат Ссылка;​+ Если ТипЗнч(Ссылка) = Тип("​СправочникСсылка.Контрагенты"​) Тогда //​Звонок контрагенту,​ найдем всех его контактных лиц. 
 +  
 + МассивОбъектов = ПолучитьКонтактныеЛицаКонтрагента(Ссылка);​ 
 + МассивОбъектов.Добавить(Ссылка);​ 
 +  
 + Возврат ​МассивОбъектов;​ 
 +  
 + Иначе //​Звонов конкретному конт. лицу или другому объекту. 
 + МассивОбъектов = Новый Массив(1);​ 
 + МассивОбъектов[0] = Ссылка
 +  
 + Возврат МассивОбъектов;​ 
 +  
 + КонецЕсли
  ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда  ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда
- Попытка + МассивОбъектов = Новый Массив;​ 
- Возврат Ссылка.Контрагент; +  
- Исключение + ТабличныеЧастиДокумента = Ссылка.Метаданные().ТабличныеЧасти;​ 
- КонецПопытки;+ ЕстьТЧУчастники = ТабличныеЧастиДокумента.Найти("​Участники"​) <> Неопределено;​ 
 + 
 +  
 + ДобавитьЗначениеРеквизитаВМассив(Ссылка,​ МассивОбъектов, "​Контрагент"​);​ 
 + ДобавитьЗначениеРеквизитаВМассив(Ссылка,​ МассивОбъектов,​ "Партнер"​);​ 
 + ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов,​ "КонтактноеЛицо"​);​ 
 + ДобавитьЗначениеРеквизитаВМассив(Ссылка,​ МассивОбъектов,​ "​АбонентКонтакт"​)
 +  
 + Если ТипЗнч(Ссылка) = Тип("​ДокументСсылка.Событие"​) 
 + И ЕстьТЧУчастники Тогда 
 +  
 + Для каждого ТекСтрока Из Ссылка.Участники Цикл 
 + Если ЗначениеЗаполнено(ТекСтрока.Контакт) Тогда 
 + МассивОбъектов.Добавить(ТекСтрока.Контакт);​ 
 + КонецЕсли;​  
 + КонецЦикла;​  
 +  
 + КонецЕсли; 
 + Возврат МассивОбъектов;
  КонецЕсли; ​  КонецЕсли; ​
 +КонецФункции // ПолучитьСсылкуНаУчастникаИзДокумента()
 + 
 +// Получате значение раквизита,​ если значение заполнено - добавляет его в массив.
 +// 
 +Функция ДобавитьЗначениеРеквизитаВМассив(Знач Ссылка,​ Массив,​ ИмяРеквизита) Экспорт
 + Если Ссылка.Метаданные().Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда
 + Возврат Ложь;
 + КонецЕсли;​
 + Если ЗначениеЗаполнено(Ссылка[ИмяРеквизита]) Тогда
 + Массив.Добавить(Ссылка[ИмяРеквизита]);​
 + КонецЕсли;​
 + 
 + Возврат Истина;​
 +КонецФункции // ДобавитьЗначениеРеквизитаВМассив()
  
-КонецФункции // ПолучитьСсылкуНаУчастникаИзДокумента()</​code>​+// Возвращает массив со ссылками на контактных лиц контрагента 
 +Функция ПолучитьКонтактныеЛицаКонтрагента(КонтрагентСсылка) 
 + 
 + МассивОбъектов = Новый Массив;​ 
 + Если НЕ ЗначениеЗаполнено(КонтрагентСсылка) Тогда 
 + Возврат МассивОбъектов;​ 
 + КонецЕсли;  
 + 
 + Запрос = Новый Запрос;​ 
 + Запрос.Текст = "​ВЫБРАТЬ РАЗРЕШЕННЫЕ 
 +                ​| КонтактныеЛица.Ссылка 
 +                |ИЗ 
 +                ​| Справочник.КонтактныеЛица КАК КонтактныеЛица 
 +                |ГДЕ 
 +                | КонтактныеЛица.Владелец = &​Владелец";​ 
 + Запрос.УстановитьПараметр("​Владелец",​ КонтрагентСсылка);​ 
 +  
 + Результат = Запрос.Выполнить();​ 
 + Если Результат.Пустой() Тогда 
 + Возврат МассивОбъектов;​ 
 + КонецЕсли;​  
 +  
 + МассивОбъектов = Результат.Выгрузить().ВыгрузитьКолонку("​Ссылка"​);​ 
 +  
 + Возврат МассивОбъектов;​ 
 +  
 +КонецФункции // ПолучитьКонтактныеЛицаКонтрагента()</​code>​
astpanel/designer/unf/modulecall.1375805139.txt.gz · Последние изменения: 2014/11/14 22:32 (внешнее изменение)