Классификатор ТН ВЭД / Форма элемента / Модуль формы

файл

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
	
	Если Объект.Ссылка.Пустая() Тогда
		ЗаполнитьФормуПоОбъекту();
	КонецЕсли;
	
	// Обработчик подсистемы запрета редактирования реквизитов объектов
	ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);

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

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

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
	
	// Обработчик подсистемы запрета редактирования реквизитов объектов
	ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
	
	Если ИзменитьРеквизитыПрослеживаемостиНоменклатуры Тогда
		ИзменитьРеквизитыПрослеживаемостиНоменклатуры();
	КонецЕсли;
	
КонецПроцедуры

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

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ЕдиницаИзмеренияПриИзменении(Элемент)
	
	ПроверитьРеквизитыПрослеживаемостиНоменклатуры();
	
КонецПроцедуры

&НаКлиенте
Процедура ПрослеживаемыйТоварПриИзменении(Элемент)
	
	ПроверитьРеквизитыПрослеживаемостиНоменклатуры();
	
КонецПроцедуры

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

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
	
	ЗапретРедактированияРеквизитовОбъектовКлиент.РазрешитьРедактированиеРеквизитовОбъекта(ЭтотОбъект);
	
КонецПроцедуры

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

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

&НаСервере
Процедура ЗаполнитьФормуПоОбъекту()
	
	ЗаполнитьЗначенияСвойств(Объект, Параметры.ЗначенияЗаполнения);
	
КонецПроцедуры

&НаКлиенте
Процедура ПроверитьРеквизитыПрослеживаемостиНоменклатуры()
	
	Если НЕ ИзменитьРеквизитыПрослеживаемостиНоменклатуры Тогда
	
		ТребуетсяИзменение = Ложь;
		
		ПроверитьРеквизитыПрослеживаемостиНоменклатурыСервер(ТребуетсяИзменение);
		
		Если ТребуетсяИзменение И НЕ ИзменитьРеквизитыПрослеживаемостиНоменклатуры Тогда
				
			ТекстВопроса = Нстр("ru = 'Изменить реквизиты прослеживаемости в связанной номенклатуре?'");
			
			ПоказатьВопрос(Новый ОписаниеОповещения("ПроверитьРеквизитыПрослеживаемостиНоменклатурыЗавершение", ЭтотОбъект),
				ТекстВопроса,
				РежимДиалогаВопрос.ДаНет);
				
		КонецЕсли;
			
	КонецЕсли;

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

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

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

&НаКлиенте
Процедура ПроверитьРеквизитыПрослеживаемостиНоменклатурыЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
		
		ИзменитьРеквизитыПрослеживаемостиНоменклатуры = Истина;
		
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Функция НачатьИзменениеРеквизитовПрослеживаемостиНоменклатуры()

	ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияПроцедуры();
	Возврат ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения,
		"Справочники.КлассификаторТНВЭД.ИзменитьРеквизитыПрослеживаемостиНоменклатуры",
		Объект.Ссылка);

КонецФункции

&НаКлиенте
Процедура ПриЗавершенииИзмененияРеквизитовПрослеживаемостиНоменклатуры(Результат, ДополнительныеПараметры) Экспорт

	Если Результат = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	Если Результат.Статус = "Ошибка" Тогда
		СтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(Результат.ИнформацияОбОшибке);
		Возврат;
	КонецЕсли;
 
	Если Результат.Статус = "Выполнено" Тогда
		Возврат;
	КонецЕсли;

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

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

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

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