Это старая версия документа!
// Выполняет первичную настройку информационной базы // Процедура ВыполнитьПервичнуюУстановку(НазваниеПанелиТелефонии) Экспорт // устанавливаем новый вид контактной информации для хранения местных номеров ВидКИ_МестныйТелефон = ОпределитьВидКИ_МестныйТелефон(); Если Не ЗначениеЗаполнено(ВидКИ_МестныйТелефон) Тогда ПодготовитьХранилищеМестныхНомеров(); КонецЕсли; // добавляем новые параметры в настройки пользователя Если Метаданные.Имя = "CRM" Или Метаданные.Имя = "УправлениеТорговлей_CRM_2" Тогда пвхНастройкиПользователей = ?(Метаданные.ПланыВидовХарактеристик.Найти("НастройкиПользователей") <> Неопределено, ПланыВидовХарактеристик.НастройкиПользователей, ПланыВидовХарактеристик.CRM_НастройкиПользователей); Отбор = Новый Структура("Наименование", НазваниеПанелиТелефонии); Выборка = пвхНастройкиПользователей.Выбрать(пвхНастройкиПользователей.СофтФон, Отбор); Если ЗначениеПараметраПользователя(НазваниеПанелиТелефонии) = Неопределено Тогда НовЭлм = пвхНастройкиПользователей.СоздатьЭлемент(); НовЭлм.Наименование = НазваниеПанелиТелефонии; НовЭлм.ТипЗначения = Новый ОписаниеТипов("Булево"); НовЭлм.Родитель = пвхНастройкиПользователей.СофтФон; Попытка НовЭлм.Записать(); Исключение Сообщить("Не удалось произвести запись в планы видов характеристик ""НастройкиПользователей""", СтатусСообщения.Важное); КонецПопытки; КонецЕсли; КонецЕсли; КонецПроцедуры Функция Использовать(НазваниеПанелиТелефонии) Экспорт Запрос = Новый Запрос; Запрос.УстановитьПараметр("Пользователь", Пользователи.ТекущийПользователь()); Запрос.УстановитьПараметр("Настройка" , ЗначениеПараметраПользователя(НазваниеПанелиТелефонии)); Запрос.Текст = " |ВЫБРАТЬ | Значение |ИЗ | &рсНастройкиПользователей | |ГДЕ | Пользователь = &Пользователь | И Настройка = &Настройка"; Запрос.Текст = СтрЗаменить(Запрос.Текст, "&рсНастройкиПользователей", ?(Метаданные.РегистрыСведений.Найти("НастройкиПользователей") <> Неопределено, "РегистрСведений.НастройкиПользователей", "РегистрСведений.CRM_НастройкиПользователей")); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.Значение; КонецЕсли; Возврат Ложь; КонецФункции Функция ЗначениеПараметраПользователя(Параметр) пвхНастройкиПользователей = ?(Метаданные.ПланыВидовХарактеристик.Найти("НастройкиПользователей") <> Неопределено, ПланыВидовХарактеристик.НастройкиПользователей, ПланыВидовХарактеристик.CRM_НастройкиПользователей); Отбор = Новый Структура("Наименование", Параметр); Выборка = пвхНастройкиПользователей.Выбрать(пвхНастройкиПользователей.СофтФон, Отбор); Если Выборка.Следующий() Тогда Возврат Выборка.Ссылка; КонецЕсли; Возврат Неопределено; КонецФункции // Производит запись в справочник ВидыКонтактнойИнформации нового элеменнта. // Элемент описывает вид контактной информации - внутренний номер сотрудника. // Процедура ПодготовитьХранилищеМестныхНомеров() НовыйЭлемент = Справочники.ВидыКонтактнойИнформации.СоздатьЭлемент(); НовыйЭлемент.Наименование = "Внутренний телефон"; НовыйЭлемент.Родитель = Справочники.ВидыКонтактнойИнформации.СправочникПользователи; НовыйЭлемент.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон; Попытка НовыйЭлемент.Записать(); Исключение Сообщить("Не удалось произвести запись в справочник ""ВидыКонтактнойИнформации""", СтатусСообщения.Важное); КонецПопытки; КонецПроцедуры // ПодготовитьХранилищеМестныхНомеров() // Определяет вид контактной информации отвечающей за хранение внутренних // номеров сотрудников (элемент справочника ВидыКонтактнойИнформации). Элемент // должен быть предварительно сформирован обработкой. // // Возвращаемое значение [СправочникСсылка] Ссылка на элемент справочника // ВидыКонтактнойИнформации. // Функция ОпределитьВидКИ_МестныйТелефон() Экспорт Запрос = Новый Запрос; Запрос.УстановитьПараметр("Родитель", Справочники.ВидыКонтактнойИнформации.СправочникПользователи); Запрос.Текст = "ВЫБРАТЬ | ВидыКонтактнойИнформации.Ссылка |ИЗ | Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации |ГДЕ | ВидыКонтактнойИнформации.Родитель = &Родитель | И ВидыКонтактнойИнформации.Наименование = ""Внутренний телефон"""; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.Ссылка; КонецЕсли; КонецФункции