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

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

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


astpanel:designer:unf:modulecall

Различия

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

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

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