Контактные лица / Модуль менеджера

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.УправлениеДоступом

// Параметры:
//   Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт

	Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(Владелец)";
	
	Ограничение.ТекстДляВнешнихПользователей =
	"ПрисоединитьДополнительныеТаблицы
	|ЭтотСписок КАК ЭтотСписок
	|
	|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнешниеПользователи КАК ВнешниеПользователиПартнеры
	|	ПО ВнешниеПользователиПартнеры.ОбъектАвторизации = ЭтотСписок.Владелец
	|
	|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
	|	ПО КонтактныеЛицаПартнеров.Владелец = ЭтотСписок.Владелец
	|
	|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнешниеПользователи КАК ВнешниеПользователиКонтактныеЛица
	|	ПО ВнешниеПользователиКонтактныеЛица.ОбъектАвторизации = КонтактныеЛицаПартнеров.Ссылка
	|;
	|РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(ВнешниеПользователиПартнеры.Ссылка)
	|	ИЛИ ЗначениеРазрешено(ВнешниеПользователиКонтактныеЛица.Ссылка)";

КонецПроцедуры

// Конец СтандартныеПодсистемы.УправлениеДоступом

#КонецОбласти

#КонецОбласти

#Область ПрограммныйИнтерфейс

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт

КонецПроцедуры

#Область СозданиеНаОсновании

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

// Добавляет команду создания справочника "Контактные лица партнеров".
//
// Параметры:
//  КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании
//
// Возвращаемое значение:
//   СтрокаТаблицыЗначений - описание команды
//
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
	
	МетаданныеСправочника = Метаданные.Справочники.КонтактныеЛицаПартнеров;
	
	Если ПравоДоступа("Добавление", МетаданныеСправочника) Тогда
		КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
		КомандаСоздатьНаОсновании.Менеджер = МетаданныеСправочника.ПолноеИмя();
		КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(МетаданныеСправочника);
		
		Возврат КомандаСоздатьНаОсновании;
		
	КонецЕсли;
	
	Возврат Неопределено;
	
КонецФункции

// Определяет список команд создания на основании.
//
// Параметры:
//  КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании
//  Параметры - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.Параметры
//
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
	
	БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
	
КонецПроцедуры

#КонецОбласти

#Область ШаблоныСообщений

// Вызывается при подготовке шаблонов сообщений и позволяет переопределить список реквизитов и вложений.
//
// Параметры:
//  Реквизиты               - ДеревоЗначений - список реквизитов шаблона:
//         * Имя            - Строка - Уникальное имя общего реквизита.
//         * Представление  - Строка - Представление общего реквизита.
//         * Тип            - Тип    - Тип реквизита. По умолчанию строка.
//         * Формат         - Строка - Формат вывода значения для чисел, дат, строк и булевых значений.
//  Вложения                - ТаблицаЗначений - печатные формы и вложения:
//         * Имя            - Строка - Уникальное имя вложения.
//         * Представление  - Строка - Представление варианта.
//         * ТипФайла       - Строка - Тип вложения, который соответствует расширению файла: "pdf", "png", "jpg", mxl"
//                                      и др.
//  ДополнительныеПараметры - Структура - дополнительные сведения о шаблоне сообщений.
//
Процедура ПриПодготовкеШаблонаСообщения(Реквизиты, Вложения, ДополнительныеПараметры) Экспорт
	
КонецПроцедуры

// Вызывается в момент создания сообщений по шаблону для заполнения значений реквизитов и вложений.
//
// Параметры:
//  Сообщение - Структура - структура с ключами:
//    * ЗначенияРеквизитов - Соответствие из КлючИЗначение- список используемых в шаблоне реквизитов:
//      * Ключ     - Строка - имя реквизита в шаблоне;
//      * Значение - Строка - значение заполнения в шаблоне.
//    * ЗначенияОбщихРеквизитов - Соответствие из КлючИЗначение - список используемых в шаблоне общих реквизитов:
//      * Ключ     - Строка - имя реквизита в шаблоне;
//      * Значение - Строка - значение заполнения в шаблоне.
//    * Вложения - Соответствие из КлючИЗначение - значения реквизитов
//      * Ключ     - Строка - имя вложения в шаблоне;
//      * Значение - ДвоичныеДанные, Строка - двоичные данные или адрес во временном хранилище вложения.
//  ПредметСообщения - ЛюбаяСсылка - ссылка на объект являющийся источником данных.
//  ДополнительныеПараметры - Структура -  Дополнительная информация о шаблоне сообщения.
//
Процедура ПриФормированииСообщения(Сообщение, ПредметСообщения, ДополнительныеПараметры) Экспорт
	
КонецПроцедуры

// Заполняет список получателей SMS при отправке сообщения сформированного по шаблону.
//
// Параметры:
//   ПолучателиSMS - ТаблицаЗначений - список получается SMS:
//     * НомерТелефона - Строка - номер телефона, куда будет отправлено сообщение SMS.
//     * Представление - Строка - представление получателя сообщения SMS.
//     * Контакт       - СправочникСсылка - контакт, которому принадлежит номер телефона.
//  ПредметСообщения - ЛюбаяСсылка - ссылка на объект являющийся источником данных.
//
Процедура ПриЗаполненииТелефоновПолучателейВСообщении(ПолучателиSMS, ПредметСообщения) Экспорт
	
КонецПроцедуры

// Заполняет список получателей письма при отправки сообщения сформированного по шаблону.
//
// Параметры:
//   ПолучателиПисьма - ТаблицаЗначений - список получается письма:
//     * Адрес           - Строка - адрес электронной почты получателя.
//     * Представление   - Строка - представление получается письма.
//     * ВариантОтправки - Строка - Варианты отправки письма: "Кому", "Копия", "СкрытаяКопия", "ОбратныйАдреса";
//  ПредметСообщения - ЛюбаяСсылка - ссылка на объект являющийся источником данных.
//
Процедура ПриЗаполненииПочтыПолучателейВСообщении(ПолучателиПисьма, ПредметСообщения) Экспорт
	
КонецПроцедуры

#КонецОбласти

#Область СозданиеКонтактногоЛица

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

// Создает пустую структуру для создания контактного лица
//
// Возвращаемое значение:
//   Структура - содержит следующие поля:
//    * Наименование          - Строка - наименование контактного лица,
//    * АдресЭлектроннойПочты - Строка - адрес электронной почты,
//    * Телефон               - Строка - номер телефона,
//    * Комментарий           - Строка - произвольный комментарий,
//    * ДолжностьПоВизитке    - Строка - должность контактного лица как указано на визитной карточке,
//    * Пол                   - ПеречислениеСсылка.ПолФизическогоЛица - пол контактного лица,
//    * ДатаРождения          - Дата - дата рождения,
//    * Партнер               - СправочникСсылка.Партнеры - владелец контактного лица.
//
Функция ПараметрыСозданияКонтактногоЛица() Экспорт
	
	ПараметрыСоздания = Новый Структура;
	ПараметрыСоздания.Вставить("Наименование",          "");
	ПараметрыСоздания.Вставить("АдресЭлектроннойПочты", Неопределено);
	ПараметрыСоздания.Вставить("Телефон",               Неопределено);
	ПараметрыСоздания.Вставить("Комментарий",           "");
	ПараметрыСоздания.Вставить("ДолжностьПоВизитке",    "");
	ПараметрыСоздания.Вставить("Пол",                   Перечисления.ПолФизическогоЛица.ПустаяСсылка());
	ПараметрыСоздания.Вставить("ДатаРождения",          Дата(1,1, 1));
	ПараметрыСоздания.Вставить("Партнер",               Неопределено);
	
	Возврат ПараметрыСоздания;
	
КонецФункции

#КонецОбласти

#КонецОбласти

#КонецЕсли

Связанные материалы