Контактные лица / Модуль менеджера
файл#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
// СтандартныеПодсистемы.УправлениеДоступом
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Владелец)";
Ограничение.ТекстДляВнешнихПользователей =
"ПрисоединитьДополнительныеТаблицы
|ЭтотСписок КАК ЭтотСписок
|
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнешниеПользователи КАК ВнешниеПользователиПартнеры
| ПО ВнешниеПользователиПартнеры.ОбъектАвторизации = ЭтотСписок.Владелец
|
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
| ПО КонтактныеЛицаПартнеров.Владелец = ЭтотСписок.Владелец
|
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнешниеПользователи КАК ВнешниеПользователиКонтактныеЛица
| ПО ВнешниеПользователиКонтактныеЛица.ОбъектАвторизации = КонтактныеЛицаПартнеров.Ссылка
|;
|РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(ВнешниеПользователиПартнеры.Ссылка)
| ИЛИ ЗначениеРазрешено(ВнешниеПользователиКонтактныеЛица.Ссылка)";
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти
#КонецОбласти
#Область ПрограммныйИнтерфейс
// СтандартныеПодсистемы.ВерсионированиеОбъектов
// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
// Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
#Область СозданиеНаОсновании
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
// Добавляет команду создания справочника "Контактные лица партнеров".
//
// Параметры:
// КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений - описание команды
//
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
МетаданныеСправочника = Метаданные.Справочники.КонтактныеЛицаПартнеров;
Если ПравоДоступа("Добавление", МетаданныеСправочника) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = МетаданныеСправочника.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(МетаданныеСправочника);
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
// Определяет список команд создания на основании.
//
// Параметры:
// КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании
// Параметры - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.Параметры
//
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
КонецПроцедуры
#КонецОбласти
#Область ШаблоныСообщений
// Вызывается при подготовке шаблонов сообщений и позволяет переопределить список реквизитов и вложений.
//
// Параметры:
// Реквизиты - ДеревоЗначений - список реквизитов шаблона:
// * Имя - Строка - Уникальное имя общего реквизита.
// * Представление - Строка - Представление общего реквизита.
// * Тип - Тип - Тип реквизита. По умолчанию строка.
// * Формат - Строка - Формат вывода значения для чисел, дат, строк и булевых значений.
// Вложения - ТаблицаЗначений - печатные формы и вложения:
// * Имя - Строка - Уникальное имя вложения.
// * Представление - Строка - Представление варианта.
// * ТипФайла - Строка - Тип вложения, который соответствует расширению файла: "pdf", "png", "jpg", mxl"
// и др.
// ДополнительныеПараметры - Структура - дополнительные сведения о шаблоне сообщений.
//
Процедура ПриПодготовкеШаблонаСообщения(Реквизиты, Вложения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
// Вызывается в момент создания сообщений по шаблону для заполнения значений реквизитов и вложений.
//
// Параметры:
// Сообщение - Структура - структура с ключами:
// * ЗначенияРеквизитов - Соответствие из КлючИЗначение- список используемых в шаблоне реквизитов:
// * Ключ - Строка - имя реквизита в шаблоне;
// * Значение - Строка - значение заполнения в шаблоне.
// * ЗначенияОбщихРеквизитов - Соответствие из КлючИЗначение - список используемых в шаблоне общих реквизитов:
// * Ключ - Строка - имя реквизита в шаблоне;
// * Значение - Строка - значение заполнения в шаблоне.
// * Вложения - Соответствие из КлючИЗначение - значения реквизитов
// * Ключ - Строка - имя вложения в шаблоне;
// * Значение - ДвоичныеДанные, Строка - двоичные данные или адрес во временном хранилище вложения.
// ПредметСообщения - ЛюбаяСсылка - ссылка на объект являющийся источником данных.
// ДополнительныеПараметры - Структура - Дополнительная информация о шаблоне сообщения.
//
Процедура ПриФормированииСообщения(Сообщение, ПредметСообщения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
// Заполняет список получателей SMS при отправке сообщения сформированного по шаблону.
//
// Параметры:
// ПолучателиSMS - ТаблицаЗначений - список получается SMS:
// * НомерТелефона - Строка - номер телефона, куда будет отправлено сообщение SMS.
// * Представление - Строка - представление получателя сообщения SMS.
// * Контакт - СправочникСсылка - контакт, которому принадлежит номер телефона.
// ПредметСообщения - ЛюбаяСсылка - ссылка на объект являющийся источником данных.
//
Процедура ПриЗаполненииТелефоновПолучателейВСообщении(ПолучателиSMS, ПредметСообщения) Экспорт
КонецПроцедуры
// Заполняет список получателей письма при отправки сообщения сформированного по шаблону.
//
// Параметры:
// ПолучателиПисьма - ТаблицаЗначений - список получается письма:
// * Адрес - Строка - адрес электронной почты получателя.
// * Представление - Строка - представление получается письма.
// * ВариантОтправки - Строка - Варианты отправки письма: "Кому", "Копия", "СкрытаяКопия", "ОбратныйАдреса";
// ПредметСообщения - ЛюбаяСсылка - ссылка на объект являющийся источником данных.
//
Процедура ПриЗаполненииПочтыПолучателейВСообщении(ПолучателиПисьма, ПредметСообщения) Экспорт
КонецПроцедуры
#КонецОбласти
#Область СозданиеКонтактногоЛица
// Создает контактное лицо согласно переданным данным заполнения
//
// Параметры:
// ДанныеЗаполнения - см. ПараметрыСозданияКонтактногоЛица
//
// Возвращаемое значение:
// Структура - содержит следующие поля:
// * КонтактноеЛицо - СправочникСсылка.КонтактныеЛицаПартнеров - созданный элемент справочника,
// * Ошибки - Массив - содержит ошибки, возникшие при создании контактного лица.
//
Функция РезультатСозданияКонтактногоЛица(ДанныеЗаполнения) Экспорт
РезультатСоздания = Новый Структура;
РезультатСоздания.Вставить("КонтактноеЛицо", Справочники.КонтактныеЛицаПартнеров.ПустаяСсылка());
РезультатСоздания.Вставить("Ошибки", Новый Массив);
Отказ = Ложь;
Если Не ЗначениеЗаполнено(ДанныеЗаполнения.Наименование) Тогда
ТекстОшибки = НСтр("ru = 'Не заполнено наименование'");
РезультатСоздания.Ошибки.Добавить(ТекстОшибки);
Отказ = Истина;
КонецЕсли;
Если Не ЗначениеЗаполнено(ДанныеЗаполнения.Партнер) Тогда
Если ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровИКонтрагентов") Тогда
ИмяПартнера = НСтр("ru = 'партнер'");
Иначе
ИмяПартнера = НСтр("ru = 'контрагент'");
КонецЕсли;
ТекстОшибки = СтрШаблон(НСтр("ru = 'Не заполнен %1'"), ИмяПартнера);
РезультатСоздания.Ошибки.Добавить(ТекстОшибки);
Отказ = Истина;
КонецЕсли;
Если Отказ Тогда
Возврат РезультатСоздания;
КонецЕсли;
КонтактноеЛицо = Справочники.КонтактныеЛицаПартнеров.СоздатьЭлемент();
КонтактноеЛицо.Наименование = ДанныеЗаполнения.Наименование;
КонтактноеЛицо.Комментарий = ДанныеЗаполнения.Комментарий;
КонтактноеЛицо.ДолжностьПоВизитке = ДанныеЗаполнения.ДолжностьПоВизитке;
КонтактноеЛицо.Пол = ДанныеЗаполнения.Пол;
КонтактноеЛицо.ДатаРождения = ДанныеЗаполнения.ДатаРождения;
КонтактноеЛицо.Владелец = ДанныеЗаполнения.Партнер;
Если ЗначениеЗаполнено(ДанныеЗаполнения.Телефон) Тогда
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(КонтактноеЛицо,
ДанныеЗаполнения.Телефон,
Справочники.ВидыКонтактнойИнформации.ТелефонКонтактногоЛица);
КонецЕсли;
Если ЗначениеЗаполнено(ДанныеЗаполнения.Телефон) Тогда
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(КонтактноеЛицо,
ДанныеЗаполнения.АдресЭлектроннойПочты,
Справочники.ВидыКонтактнойИнформации.EmailКонтактногоЛица);
КонецЕсли;
КонтактноеЛицо.Записать();
РезультатСоздания.КонтактноеЛицо = КонтактноеЛицо.Ссылка;
Возврат РезультатСоздания;
КонецФункции
// Создает пустую структуру для создания контактного лица
//
// Возвращаемое значение:
// Структура - содержит следующие поля:
// * Наименование - Строка - наименование контактного лица,
// * АдресЭлектроннойПочты - Строка - адрес электронной почты,
// * Телефон - Строка - номер телефона,
// * Комментарий - Строка - произвольный комментарий,
// * ДолжностьПоВизитке - Строка - должность контактного лица как указано на визитной карточке,
// * Пол - ПеречислениеСсылка.ПолФизическогоЛица - пол контактного лица,
// * ДатаРождения - Дата - дата рождения,
// * Партнер - СправочникСсылка.Партнеры - владелец контактного лица.
//
Функция ПараметрыСозданияКонтактногоЛица() Экспорт
ПараметрыСоздания = Новый Структура;
ПараметрыСоздания.Вставить("Наименование", "");
ПараметрыСоздания.Вставить("АдресЭлектроннойПочты", Неопределено);
ПараметрыСоздания.Вставить("Телефон", Неопределено);
ПараметрыСоздания.Вставить("Комментарий", "");
ПараметрыСоздания.Вставить("ДолжностьПоВизитке", "");
ПараметрыСоздания.Вставить("Пол", Перечисления.ПолФизическогоЛица.ПустаяСсылка());
ПараметрыСоздания.Вставить("ДатаРождения", Дата(1,1, 1));
ПараметрыСоздания.Вставить("Партнер", Неопределено);
Возврат ПараметрыСоздания;
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецЕсли