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

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

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


astpanel:designer:unf:modulecall

Различия

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

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

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