Записки программиста 1с

Контактная информация в типовых конфигурациях 1с

Контактная информация в типовых конфигурациях 1с чаще всего реализована с помощью табличной части.

Контактная информация в 1с
Табличная часть «Контактная информация»

Выше рассматривается пример справочника «Физические лица» и табличной части «Контактная информация».

Реквизит «Тип» имеет тип «ПеречислениеСсылка.ТипыКонтактнойИнформации».

Контактная информация в 1с
Реквизит Тип

Следующий Реквизит «Вид» имеет тип «СправочникСсылка.ВидыКонтактнойИнформации».

Контактная информация в 1с
Вид контактной информации

Справочник «Виды контактной информации» содержит следующие данные:

Контактная информация в 1с
Справочник «Виды контактной информации»

Получение контактной информации можно выполнить с помощью запроса:

Рассмотрим пример получения контактной информации о сотрудниках организации:

Для этого создадим запрос по одному Регистру Сведений и Табличной Части «Контактная Информация».

Во-первых выберем Виртуальную таблицу Срез последних Регистра Сведений «Кадровая история сотрудников»:

Таблица Регистра сведений
Таблица Регистра сведений

Во-вторых возьмём Табличную часть «Контактная информация» Справочника «Физические лица».

Табличная часть Справочника
Табличная часть Справочника «Физические лица»

В-третьих установим связь между таблицами по полю «Ссылка» справочника «Физические лица».

Контактная информация в 1с
Связи между таблицами в запросе.

Далее заполним Вкладку «Условия». В качестве Параметров запроса для наглядности будем использовать рассмотренные ранее «Тип» и «Вид». Другими параметрами будут Начальная и конечная дата для свойства «Период» Регистра сведений.

Запрос получение контактной информации
Заполнение Вкладки Условия Запроса

При работе с Начальной и Конечной датами будем использовать Стандартный Период.

Контактная информация о сотрудниках в 1с получена с помощью следующего запроса. Полный текст запроса представлен ниже.

ВЫБРАТЬ
	КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
	КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
	ФизическиеЛицаКонтактнаяИнформация.Представление КАК Представление
ИЗ
	РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
		ПО КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.ФизическоеЛицо.Ссылка = ФизическиеЛицаКонтактнаяИнформация.Ссылка
ГДЕ
	ФизическиеЛицаКонтактнаяИнформация.Тип = &Тип
	И ФизическиеЛицаКонтактнаяИнформация.Вид = &Вид
	И КадроваяИсторияСотрудниковСрезПоследних.Период >= &НачДата
	И КадроваяИсторияСотрудниковСрезПоследних.Период <= &КонДата

Результат выполнения запроса выполняющего выбор «Контактной информации» сотрудников.

Результат запроса к Табличной части «Контактная информация»

Ссылка на внешний отчет примера

Программное создание контактной информации в 1с.

Программное создание контактной информации в 1с : Предприятие 8.0 производиться с помощью функций БСП. Пример приведен ниже.

&НаСервере
Процедура ЗаполянемЕмайлКЛНаСервере(КонтакноеЛицоССылка,ЕмайлКонтакногоЛица)
	ОбъектКЛ=КонтакноеЛицоССылка.ПолучитьОбъект();
	КонтакнаяИнформация=ОбъектКЛ.КонтактнаяИнформация;
	
	Вид=Справочники.ВидыКонтактнойИнформации.EmailКонтактногоЛица;
	Тип=Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
	АдресЭП=ЕмайлКонтакногоЛица;
	Представление=ЕмайлКонтакногоЛица;
    
	ОбъектXDTOКИ = УправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияXDTOПоПредставлению(АдресЭП, Тип);
	ЗначенияПолей = УправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияXDTOВXML(ОбъектXDTOКИ);
	УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(ОбъектКЛ, ЗначенияПолей, Вид, Тип);
				
	ОбъектКЛ.Записать();

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *