Это старая версия документа!
Обратно, к списку конфигураций...
Необходимо включить возможность изменения конфигурации.
Порядок действий следующий:
Конфигурация готова к внесению изменений.
Процедура ПриНачалеРаботыСистемы(Знач ОбрабатыватьПараметрыЗапуска = Ложь) Экспорт //{{ВНИМАНИЕ!!! Пропущена часть кода}} //**********************************// //+СофтФон // PT1C / Панель телефонии Asterisk / Начало НазваниеПанелиТелефонии = "Панель телефонии Asterisk (МИКО)"; МИКО_Софтфон.ВыполнитьПервичнуюУстановку(НазваниеПанелиТелефонии); Если НЕ ПользователиКлиентСервер.ЭтоСеансВнешнегоПользователя() И МИКО_Софтфон.Использовать(НазваниеПанелиТелефонии) Тогда Отказ = Ложь; Попытка // Версии 1.4.25.10+ обработка переименована в "МИКО_ПанельТелефонииДля1С" сфпФормаТелефонВнешняяПанель = ПолучитьФорму("Обработка.МИКО_ПанельТелефонииДля1С.Форма.Форма"); сфпФормаТелефонВнешняяПанель.ИнициализироватьПанельТелефонии(Истина, Отказ); Исключение Отказ = Истина; КонецПопытки; Если Отказ Тогда Сообщить("Не удалось запустить ""Панель телефонии Asterisk"""); Иначе сфпОбработаноВнешнееСобытие = Истина; КонецЕсли; Возврат; КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец //{{ВНИМАНИЕ!!! Пропущена часть кода}} //**********************************// //-СофтФон КонецПроцедуры
// PT1C / Панель телефонии Asterisk / Начало Если МИКО_Софтфон.Использовать("Панель телефонии Asterisk (МИКО)") Тогда Если сфпФормаТелефонВнешняяПанель = Неопределено Тогда Попытка // Версии 1.4.25.10+ обработка переименована в "МИКО_ПанельТелефонииДля1С" сфпФормаТелефонВнешняяПанель = ПолучитьФорму("Обработка.МИКО_ПанельТелефонииДля1С.Форма.Форма"); сфпФормаТелефонВнешняяПанель.ИнициализироватьПанельТелефонии(Истина, Ложь); Исключение Сообщить("Не удалось запустить ""Панель телефонии Asterisk (МИКО)""!"); Возврат; КонецПопытки; Иначе // Переопределение обработки команды Если сфпФормаТелефонВнешняяПанель.Открыта() Тогда сфпФормаТелефонВнешняяПанель.Активизировать(); Иначе сфпФормаТелефонВнешняяПанель.Открыть(); КонецЕсли; КонецЕсли; Возврат; КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец
// PT1C / Панель телефонии Asterisk / Начало Если МИКО_Софтфон.Использовать("Панель телефонии Asterisk (МИКО)") Тогда Возврат Истина; КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец
// PT1C / Панель телефонии Asterisk / Начало Если МИКО_Софтфон.Использовать("Панель телефонии Asterisk (МИКО)") Тогда Возврат; КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец
// PT1C / Панель телефонии Asterisk / Начало МИКО_Софтфон.ДобавитьКнопкиФаксаНаФормуПечати(ЭтаФорма); // PT1C / Панель телефонии Asterisk / Конец
&НаКлиенте Процедура МИКО_ОтправитьКакФакс() Если НЕ МИКО_Софтфон.Использовать("Панель телефонии Asterisk (МИКО)") ИЛИ сфпФормаТелефонВнешняяПанель = Неопределено Тогда Возврат; КонецЕсли; ТабличныеДокументы = Новый СписокЗначений; Для Каждого НастройкаПечатнойФормы Из НастройкиПечатныхФорм Цикл Если Элементы[НастройкаПечатнойФормы.ИмяРеквизита].Вывод = ИспользованиеВывода.Разрешить И НастройкаПечатнойФормы.Печатать Тогда ТабличныеДокументы.Добавить(ЭтотОбъект[НастройкаПечатнойФормы.ИмяРеквизита], НастройкаПечатнойФормы.Представление); КонецЕсли; КонецЦикла; Если ТабличныеДокументы.Количество()=0 Тогда Возврат; Иначе ТабДок = ТабличныеДокументы[0].Значение; КонецЕсли; // отсылаем факс сфпФормаТелефонВнешняяПанель.ОтправитьФайлПоФаксу(,ТабДок); КонецПроцедуры // МИКО_ОтправитьКакФакс() &НаКлиенте Процедура МИКО_Позвонить() Если НЕ МИКО_Софтфон.Использовать("Панель телефонии Asterisk (МИКО)") ИЛИ сфпФормаТелефонВнешняяПанель = Неопределено Тогда Возврат; КонецЕсли; ПараметрыПечати = Неопределено; Если Параметры.Свойство("ПараметрыПечати",ПараметрыПечати) И ТипЗнч(ПараметрыПечати) = Тип("Структура") Тогда Если ПараметрыПечати.Свойство("ОбъектыПечати") И ТипЗнч(ПараметрыПечати.ОбъектыПечати) = Тип("Массив") И ПараметрыПечати.ОбъектыПечати.Количество()>0 Тогда Участник = МИКО_Софтфон.ПолучитьСсылкуНаУчастникаИзДокумента(ПараметрыПечати.ОбъектыПечати[0]); Если ТипЗнч(Участник) = Тип("Массив") И Участник.Количество()>0 Тогда сфпФормаТелефонВнешняяПанель.ПозвонитьВыбравТелефон(Участник); ИначеЕсли Участник <> Неопределено Тогда СписокУчастников = Новый Массив(1); СписокУчастников[0] = Участник; сфпФормаТелефонВнешняяПанель.ПозвонитьВыбравТелефон(СписокУчастников); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры
// PT1C / Панель телефонии Asterisk / Начало Если МИКО_Софтфон.Использовать("Панель телефонии Asterisk (МИКО)") И сфпФормаТелефонВнешняяПанель <> Неопределено Тогда СписокУчастников = ПолучитьСсылкуНаУчастникаИзДокумента(ПараметрКоманды); Если СписокУчастников <> Неопределено Тогда сфпФормаТелефонВнешняяПанель.ПозвонитьВыбравТелефон(СписокУчастников); КонецЕсли; Возврат; КонецЕсли; // PT1C / Панель телефонии Asterisk / Конец
// PT1C / Панель телефонии Asterisk / Начало // Для документов будет возвращено значение реквизита "Контрагент" // Для справочников - возвращается ссылка на элемент // В случае ошибки возвращается "Неопределено" // Функция ПолучитьСсылкуНаУчастникаИзДокумента(Знач Ссылка) Экспорт Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда МассивОбъектов = Новый Массив(1); МассивОбъектов[0] = Ссылка; Возврат МассивОбъектов; ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка)) Тогда МассивОбъектов = Новый Массив; ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "Контрагент"); ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "Партнер"); ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "КонтактноеЛицо"); ДобавитьЗначениеРеквизитаВМассив(Ссылка, МассивОбъектов, "АбонентКонтакт"); Возврат МассивОбъектов; КонецЕсли; КонецФункции // ПолучитьСсылкуНаУчастникаИзДокумента() // Получате значение раквизита, если значение заполнено - добавляет его в массив. // Функция ДобавитьЗначениеРеквизитаВМассив(Знач Ссылка, Массив, ИмяРеквизита) Экспорт Если Ссылка.Метаданные().Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда Возврат Ложь; КонецЕсли; Если ЗначениеЗаполнено(Ссылка[ИмяРеквизита]) Тогда Массив.Добавить(Ссылка[ИмяРеквизита]); КонецЕсли; Возврат Истина; КонецФункции // ДобавитьЗначениеРеквизитаВМассив() // PT1C / Панель телефонии Asterisk / Конец
В форму документа с именем «ФормаДокумента», в начало процедуры «ОбработкаОповещения» добавить:
&НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) // PT1C // + Если ИмяСобытия = "PT1C_ИсходящийВызовНеУдался" И Параметр <> Неопределено И Параметр.ОснованиеЗвонка = Объект.Ссылка Тогда врТекстСообщения = ""+Формат(ТекущаяДата(),"ДЛФ=DDT") + " : Пытались позвонить клиету на номер "+Параметр.НомерТелефона+" - не дозвонились."; Объект.Результат = Объект.Результат + ?(ЗначениеЗаполнено(Объект.Результат), Символы.ПС, "") + врТекстСообщения; ИначеЕсли ИмяСобытия = "PT1C_ЗаписьСобытия" И Параметр <> Неопределено И Параметр.Ссылка = Объект.Ссылка Тогда Если Параметр.НеДозвонились = Истина Тогда врТекстСообщения = ""+Формат(ТекущаяДата(),"ДЛФ=DDT") + " : " + "Звонок клиенту на номер "+Параметр.НомерТелефона+" - дозвонились, но требуется перезвонить"+Символы.ПС + Параметр.Содержание+Символы.ПС; Иначе врТекстСообщения = ""+Формат(ТекущаяДата(),"ДЛФ=DDT") + " : " + "Успешно дозвонились клиенту на номер "+Параметр.НомерТелефона+". Создан документ """+Источник+""", см. структуру подчиненности"+Символы.ПС + Параметр.Содержание+Символы.ПС; КонецЕсли; Объект.Результат = Объект.Результат + ?(ЗначениеЗаполнено(Объект.Результат), Символы.ПС, "") + врТекстСообщения; КонецЕсли; // PT1C // -
В общие картинки добавить