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