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