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

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

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


astpanel:designer:unf:modulecall

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


&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

Если сфпФормаТелефон <> Неопределено Тогда

СписокУчастников = ПолучитьСсылкуНаУчастникаИзДокумента(ПараметрКоманды);

	Если СписокУчастников <> Неопределено Тогда
		сфпФормаТелефон.ПозвонитьВыбравТелефон(СписокУчастников);
	КонецЕсли;

КонецЕсли;

КонецПроцедуры

Для документов будет возвращено значение реквизита «Контрагент» Для справочников - возвращается ссылка на элемент В случае ошибки возвращается «Неопределено» Функция ПолучитьСсылкуНаУчастникаИзДокумента(Знач Ссылка) Экспорт

Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда

	Если ТипЗнч(Ссылка) = Тип("СправочникСсылка.Контрагенты") Тогда //Звонок контрагенту, найдем всех его контактных лиц.
	
		МассивОбъектов = ПолучитьКонтактныеЛицаКонтрагента(Ссылка);
		МассивОбъектов.Добавить(Ссылка);
		
		Возврат МассивОбъектов;
		
	Иначе //Звонов конкретному конт. лицу или другому объекту.
		МассивОбъектов = Новый Массив(1);
		МассивОбъектов[0] = Ссылка;
 
		Возврат МассивОбъектов;
		
	КонецЕсли; 
ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда
	МассивОбъектов = Новый Массив;
	
	ТабличныеЧастиДокумента	= Ссылка.Метаданные().ТабличныеЧасти;
	ЕстьТЧУчастники			= ТабличныеЧастиДокумента.Найти("Участники") <> Неопределено;
	
	ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "Контрагент");
	ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "Партнер");
	ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "КонтактноеЛицо");
	ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "АбонентКонтакт");
	
	Если ТипЗнч(Ссылка) = Тип("ДокументСсылка.Событие")
		И ЕстьТЧУчастники Тогда

Для каждого ТекСтрока Из Ссылка.Участники Цикл

			 Если ЗначениеЗаполнено(ТекСтрока.Контакт) Тогда
				 МассивОбъектов.Добавить(ТекСтрока.Контакт);
			 КонецЕсли; 
		 КонецЦикла; 

КонецЕсли;

	Возврат МассивОбъектов;
КонецЕсли; 

КонецФункции ПолучитьСсылкуНаУчастникаИзДокумента() Получате значение раквизита, если значение заполнено - добавляет его в массив. Функция ДобавитьЗначениеРеквизитаВМассив(Знач Ссылка, Массив, ИмяРеквизита) Экспорт Если Ссылка.Метаданные().Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда Возврат Ложь; КонецЕсли; Если ЗначениеЗаполнено(Ссылка[ИмяРеквизита]) Тогда Массив.Добавить(Ссылка[ИмяРеквизита]); КонецЕсли; Возврат Истина; КонецФункции ДобавитьЗначениеРеквизитаВМассив()

Возвращает массив со ссылками на контактных лиц контрагента Функция ПолучитьКонтактныеЛицаКонтрагента(КонтрагентСсылка) МассивОбъектов = Новый Массив; Если НЕ ЗначениеЗаполнено(КонтрагентСсылка) Тогда Возврат МассивОбъектов; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = «ВЫБРАТЬ | КонтактныеЛица.Ссылка |ИЗ | Справочник.КонтактныеЛица КАК КонтактныеЛица |ГДЕ | КонтактныеЛица.Владелец = &Владелец»; Запрос.УстановитьПараметр(«Владелец», КонтрагентСсылка); Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда Возврат МассивОбъектов; КонецЕсли; МассивОбъектов = Результат.Выгрузить().ВыгрузитьКолонку(«Ссылка»); Возврат МассивОбъектов; КонецФункции ПолучитьКонтактныеЛицаКонтрагента()

astpanel/designer/unf/modulecall.1465226006.txt.gz · Последние изменения: 2016/06/06 15:13 — imal