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