====== Текст общего модуля для панели телефонии УТ 11 ====== [[astpanel:designer:ut11|К инструкции по встраиванию...]] &НаСервере Функция ИспользоватьПанельТелефонии() Экспорт Возврат РольДоступна("МИКО_ИспользованиеСофтфона") ИЛИ РольДоступна("ПолныеПрава"); КонецФункции // ИспользоватьПанельТелефонии() &НаСервере // Получение списка номеров объекта контактной информации // Функция ПолучитьНомераТелефоновСервер(Источник, СписокНомеров = Неопределено) Экспорт Если НЕ ТипЗнч(СписокНомеров) = Тип("СписокЗначений") Тогда СписокНомеров = Новый СписокЗначений; КонецЕсли; Для каждого Контакт Из Источник.КонтактнаяИнформация Цикл // только телефоны Если Контакт.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда СтруктураНомера = ПолучитьЗначениеСвойстваСтруктуры(Контакт.ЗначенияПолей); Если ЗначениеЗаполнено(СтруктураНомера.КодСтраны) ИЛИ ЗначениеЗаполнено(СтруктураНомера.КодГорода) ИЛИ ЗначениеЗаполнено(СтруктураНомера.НомерТелефона) Тогда // внешний номер СписокНомеров.Добавить("" + СтруктураНомера.КодСтраны + СтруктураНомера.КодГорода + СтруктураНомера.НомерТелефона, " • ("+Контакт.Вид+") " + Контакт.Представление); ИначеЕсли ЗначениеЗаполнено(СтруктураНомера.Добавочный) Тогда // внутренний СписокНомеров.Добавить(СтруктураНомера.Добавочный, Контакт.Представление); Иначе // номер пуст Продолжить; КонецЕсли; КонецЕсли; // Проверка на тип контактной информации КонецЦикла; // Обход контактной информации Возврат СписокНомеров; КонецФункции // ПолучитьНомераТелефоновСервер() &НаСервере Функция ПолучитьЗначениеСвойстваСтруктуры(ЗначенияПолей) СписокПолейНомера = Неопределено; СтруктураНомера = Новый Структура("КодСтраны,КодГорода,НомерТелефона,Добавочный","","","",""); // для УТ 11 старых версий // СписокПолейНомера = УправлениеКонтактнойИнформацией.ПреобразоватьСтрокуВСписокПолей(ЗначенияПолей); // для УТ 11.1.1.17 СписокПолейНомера = УправлениеКонтактнойИнформациейКлиентСервер.ПреобразоватьСтрокуВСписокПолей(ЗначенияПолей); Если ТипЗнч(СписокПолейНомера) = Тип("СписокЗначений") Тогда Для каждого ПолеНомера Из СписокПолейНомера Цикл Если ПолеНомера.Представление = "КодСтраны" ИЛИ ПолеНомера.Представление = "КодГорода" ИЛИ ПолеНомера.Представление = "НомерТелефона" ИЛИ ПолеНомера.Представление = "Добавочный" Тогда СтруктураНомера[ПолеНомера.Представление] = УбратьИзСтрокиВсеБуквы(ПолеНомера.Значение); Иначе Продолжить; КонецЕсли; КонецЦикла; КонецЕсли; Возврат СтруктураНомера; КонецФункции // ПолучитьЗначениеСвойстваСтруктуры() &НаСервере // Оставляет в номере телефона только цифры, все остальные символы удаляются // Функция УбратьИзСтрокиВсеБуквы(НомерТелефона) ТолькоЦифрыНомера = ""; Для а=1 По СтрДлина(НомерТелефона) Цикл Если СтрЧислоВхождений("1234567890",Сред(НомерТелефона,а,1)) > 0 Тогда ТолькоЦифрыНомера = ТолькоЦифрыНомера + Сред(НомерТелефона,а,1); КонецЕсли; КонецЦикла; Возврат ТолькоЦифрыНомера; КонецФункции // Процедура добавляет декорацию - гиперссылку на форму // &НаСервере Процедура ДобавитьДействиеПозвонитьНаФорму(Форма, полеСледЭлемента = Неопределено)Экспорт Если Форма.Элементы.Найти("декорация_МИКО_Позвонить") = Неопределено Тогда Если полеСледЭлемента = Неопределено Тогда полеСледЭлемента = Форма.Элементы.Найти("Комментарии"); КонецЕсли; Попытка декорация_МИКО_Позвонить = Форма.Элементы.Вставить("декорация_МИКО_Позвонить", Тип("ДекорацияФормы"), ,полеСледЭлемента); Исключение // может возникнуть при неверном типе полеСледЭлемента Возврат; КонецПопытки; декорация_МИКО_Позвонить.Вид = ВидДекорацииФормы.Надпись; декорация_МИКО_Позвонить.Заголовок = "Набрать номер контакта"; декорация_МИКО_Позвонить.Гиперссылка = Истина; декорация_МИКО_Позвонить.УстановитьДействие("Нажатие", "МИКО_КомандаПозвонить"); декорация_МИКО_Позвонить.РастягиватьПоГоризонтали = Истина; КонецЕсли; КонецПроцедуры // ДобавитьДействиеПозвонитьНаФорму() [[astpanel:designer:ut11|К инструкции по встраиванию...]]