===== Добавление кнопки "Позвонить" на закладку контактной информации справочников =====
В формах некоторых справочников (например, //"Контрагент"//) присутствует закладка //"Контактная информация"//. Для полей адреса и электронной почты уже разработан механизм добавляющий кнопку с соответствующим действием. Добавим для поля телефон аналогичную кнопку с действием //"Позвонить"//.
Порядок действий следующий.
- Откройте окно настройки поддержки и установите правило поддержки на //"Объект поставщика редактируется с сохранением поддержки"// для объектов:
* //ОбщийМодуль.УправлениеКонтактнойИнформацией//;
* //ОбщийМодуль.УправлениеКонтактнойИнформациейКлиент//.
- Откройте модуль //"УправлениеКонтактнойИнформацией"// и перейдите к функции //"Действие"//.
- Измените текст функции как показано ниже. Добавьте текст, выделенный в комментарий ** PT1C**Функция Действие(Форма, Тип, ИмяРеквизита, ГруппаДействий, КоличествоАдресов, ЕстьКомментарий = Ложь)
МожноСоздаватьДействие = Истина;
Если Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда
МодульРаботаСПочтовымиСообщениями = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениями");
Если НЕ МодульРаботаСПочтовымиСообщениями.ДоступнаОтправкаПисем() Тогда
МожноСоздаватьДействие = Ложь;
КонецЕсли;
Иначе
МожноСоздаватьДействие = Ложь;
КонецЕсли;
КонецЕсли;
Если МожноСоздаватьДействие И ((Тип = Перечисления.ТипыКонтактнойИнформации.ВебСтраница
// PT1C / Панель телефонии Asterisk / Начало
Или Тип = Перечисления.ТипыКонтактнойИнформации.Телефон
// PT1C / Панель телефонии Asterisk / Конец
Или Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
Или (Тип = Перечисления.ТипыКонтактнойИнформации.Адрес И КоличествоАдресов > 1)) Тогда
// Есть действие
...
Если Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
...
ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.ВебСтраница Тогда
...
ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты Тогда
...
// PT1C / Панель телефонии Asterisk / Начало
ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
Элемент.Заголовок = НСтр("ru='Позвонить'");
Команда.Подсказка = НСтр("ru='Позвонить'");
Команда.Картинка = БиблиотекаКартинок.МИКО_Телефон;
// PT1C / Панель телефонии Asterisk / Конец
КонецЕсли;
...
Иначе
...
КонецЕсли;
Возврат Элемент;
КонецФункции
- Откройте модуль //"УправлениеКонтактнойИнформациейКлиент"// и перейдите к функции //"ПодключаемаяКоманда"//.
- Измените текст процедуры как показано ниже. Добавьте текст, выделенный в комментарий ** PT1C**Функция ПодключаемаяКоманда(Форма, Знач ИмяКоманды) Экспорт
...
Если КомандаКонтекстногоМеню Тогда
...
ИначеЕсли ТипКонтактнойИнформации = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда
...
ИначеЕсли ТипКонтактнойИнформации = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда
...
ИначеЕсли ТипКонтактнойИнформации = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.ВебСтраница") Тогда
...
// PT1C / Панель телефонии Asterisk / Начало
ИначеЕсли ТипКонтактнойИнформации = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон") Тогда
ПозвонитьПоТелефону(Форма, ИмяРеквизита);
// PT1C / Панель телефонии Asterisk / Конец
КонецЕсли;
Возврат Неопределено;
КонецФункции
- Затем добавьте в этот модуль процедуру //"ПозвонитьПоТелефону"// с [[astpanel:designer:unf:proccall|текстом, расположенным по данной ссылке]].