Статьи расходов / Разблокирование реквизитов / Модуль формы

файл

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

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

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

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

&НаКлиенте
Процедура РазрешитьРедактирование(Команда)

	Результат = РедактируемыеРеквизиты();
	Закрыть(Результат);

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

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

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

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