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