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