Это старая версия документа!
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) Если сфпФормаТелефон <> Неопределено Тогда Участники = ПолучитьСсылкуНаУчастникаИзДокумента(ПараметрКоманды); Если Участники.Количество() > 0 Тогда сфпФормаТелефон.ПозвонитьВыбравТелефон(Участники); Иначе ПоказатьПредупреждение(, "Нет номеров телефона для звонка", 3); КонецЕсли; КонецЕсли; КонецПроцедуры Функция ПолучитьСсылкуНаУчастникаИзДокумента(Ссылка) Участники = Новый Массив; // Определим список справочников, где хранятся контактные данные ВидыСправочников = МИКО_Софтфон.ОпределитьСправочникиСКонтактнойИнформацией(); Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда Участники.Добавить(Ссылка); ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда РеквзитыДокумента = Ссылка.Метаданные().Реквизиты; ТабличныеЧастиДокумента = Ссылка.Метаданные().ТабличныеЧасти; ЕстьТЧУчастники = ТабличныеЧастиДокумента.Найти("Участники") <> Неопределено; // Определим список типов реквизитов для проверки ТипыСправочников = Новый Массив; Для Каждого Вид Из ВидыСправочников Цикл ТипыСправочников.Добавить(Тип("СправочникСсылка." + Вид)); КонецЦикла; // Найдем реквизиты документа, содержащие контактную информацию Для Каждого Реквизит Из РеквзитыДокумента Цикл Если МИКО_Софтфон.РеквизитИмеетТип(Реквизит, ТипыСправочников) Тогда // Выполним дополнительную фильтрацию реквизитов РеквизитСсылка = Ссылка[Реквизит.Имя]; Если ЗначениеЗаполнено(РеквизитСсылка) И Участники.Найти(РеквизитСсылка) = Неопределено И РеквизитСсылка <> ПараметрыСеанса.ТекущийПользователь Тогда Участники.Добавить(РеквизитСсылка); КонецЕсли; КонецЕсли; КонецЦикла; Если ТипЗнч(Ссылка) = Тип("ДокументСсылка.Событие") И ЕстьТЧУчастники Тогда Для каждого ТекСтрока Из Ссылка.Участники Цикл Если ЗначениеЗаполнено(ТекСтрока.Контакт) Тогда Участники.Добавить(ТекСтрока.Контакт); КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; // Определим номера телефонов участников Результат = МИКО_Софтфон.ОпределитьНомераТелефонов(Участники, ВидыСправочников); Возврат Результат; КонецФункции // ПолучитьСсылкуНаУчастникаИзДокумента()