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