Темы, этапы исследований и разработок / Форма элемента / Модуль формы

файл
#Область ОписаниеПеременных

&НаКлиенте
Перем ЗначенияРеквизитовДоИзменения; // см. СохранитьЗначенияРеквизитовДоИзменения 

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

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
	
	// Обработчик подсистемы "Свойства"
	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("Объект", Объект);
	ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
	УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры);
		
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	// СтандартныеПодсистемы.РаботаСФайлами
	ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
	ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
	РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
	// Конец СтандартныеПодсистемы.РаботаСФайлами
	
	// Обработчик подсистемы запрета редактирования реквизитов объектов
	ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
	
	//++ Локализация
	
	НаименованиеОКВЭД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;
	
КонецФункции

//-- Локализация

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

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