Партнеры / Модуль объекта

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

#Область ОбработчикиСобытий

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

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

Процедура ПриКопировании(ОбъектКопирования)
	
	ОсновнойМенеджер = ПользователиКлиентСервер.ТекущийПользователь();
	ДатаРегистрации = ТекущаяДатаСеанса();
	
	НазначениеПереработчика = Неопределено;
	
	ИндивидуальныйВидЦены   = Справочники.ВидыЦен.ПустаяСсылка();
	
КонецПроцедуры

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
	
	МассивНепроверяемыхРеквизитов = Новый Массив;
	
	Если Не Клиент И Не Конкурент И Не Поставщик И Не ПрочиеОтношения И Не Предопределенный Тогда
		Текст = НСтр("ru = 'Необходимо определить хотя бы один тип бизнес-отношений'");
		ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
			Текст,
			ЭтотОбъект,
			"Клиент",
			,
			Отказ);
	КонецЕсли;
	
	Если Не Справочники.ГруппыДоступаПартнеров.ИспользуютсяГруппыДоступа() Тогда
		МассивНепроверяемыхРеквизитов.Добавить("ГруппаДоступа");
	КонецЕсли;
	
	Если ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов") Тогда
		МассивНепроверяемыхРеквизитов.Добавить("НаименованиеПолное");
		Если ПустаяСтрока(НаименованиеПолное) Тогда
			Если ЮрФизЛицо = Перечисления.КомпанияЧастноеЛицо.ЧастноеЛицо Тогда
				ТекстСообщения = НСтр("ru = 'Поле ""Фамилия, имя, отчество"" не заполнено'");
			Иначе
				ТекстСообщения = НСтр("ru = 'Поле ""Сокр. юр. наименование"" не заполнено'");
			КонецЕсли;
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
			ТекстСообщения,
			ЭтотОбъект,
			"НаименованиеПолное",
			,
			Отказ);
		КонецЕсли;
	КонецЕсли;
	
	ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);
	
КонецПроцедуры

Процедура ПередЗаписью(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;

	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
	
	ОбщегоНазначенияУТ.ПодготовитьДанныеДляСинхронизацииКлючей(ЭтотОбъект, ПараметрыСинхронизацииКлючей());	
	
	// Обработка смены пометки удаления.
	Если Не ЭтоНовый() И Не ЭтоГруппа Тогда
		
		ПометкаУдаленияДоЗаписи = ОбщегоНазначенияУТ.ЗначениеРеквизитаДоЗаписиИзДополнительныхСвойств("ПометкаУдаления", ДополнительныеСвойства);
		Если ПометкаУдаления <> ПометкаУдаленияДоЗаписи Тогда
			
			Если ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов") Тогда
				КонтрагентПартнера = ПартнерыИКонтрагенты.ПолучитьКонтрагентаПартнераПоУмолчанию(Ссылка);
				Если НЕ КонтрагентПартнера.Пустая() Тогда
					КонтрагентПартнера.ПолучитьОбъект().УстановитьПометкуУдаления(ПометкаУдаления);
				КонецЕсли;
			КонецЕсли;
			
			
		КонецЕсли;
		
	КонецЕсли;
	
	Если ЮрФизЛицо = Перечисления.КомпанияЧастноеЛицо.Компания Тогда
		
		Пол = Перечисления.ПолФизическогоЛица.ПустаяСсылка();
		ДатаРождения = Дата(1,1,1);
		
	КонецЕсли;
	
	//++ НЕ УТ
	ШаблонНазначенияПереработчика = Справочники.Партнеры.ШаблонНазначенияПереработчика(ЭтотОбъект);
	Справочники.Назначения.ПроверитьЗаполнитьПередЗаписью(НазначениеПереработчика, ШаблонНазначенияПереработчика, ЭтотОбъект, "", Отказ, Истина);
	//-- НЕ УТ
	
КонецПроцедуры

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

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

Процедура ПриЧтенииПредставленийНаСервере() Экспорт
	
	МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
	
КонецПроцедуры

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

#Область СлужебныеПроцедурыИФункции


Функция ПараметрыСинхронизацииКлючей()
	
	Результат = Новый Соответствие;
	
	Результат.Вставить("Справочник.ВидыЗапасов", "ПометкаУдаления");
	Результат.Вставить("Справочник.КлючиАналитикиУчетаНоменклатуры", "ПометкаУдаления");
	Результат.Вставить("Справочник.КлючиАналитикиУчетаПартий", "ПометкаУдаления");
	Результат.Вставить("Справочник.КлючиАналитикиУчетаПоПартнерам", "ПометкаУдаления");
	Результат.Вставить("Справочник.КлючиРеестраДокументов", "ПометкаУдаления,Наименование");
	
	Возврат Результат;
	
КонецФункции
#КонецОбласти

#КонецЕсли

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