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

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Параметры.Свойство("ПериодРегистрации", ПериодРегистрации);
	Параметры.Свойство("Организация", Организация);
	Если Организация.Пустая() Тогда
		МассивОрганизаций = Новый Массив();
		Параметры.Свойство("МассивОрганизаций", МассивОрганизаций);
		Если МассивОрганизаций.Количество() <> 0 Тогда
			Организация = МассивОрганизаций[0];
		КонецЕсли;
	КонецЕсли;
	
	ПредставлениеПериодаРегистрации = ОбщегоНазначенияУТКлиентСервер.ПолучитьПредставлениеПериодаРегистрации(ПериодРегистрации);
	
	ОбновитьНастройкиУчетныхПолитик();
	УстановитьУсловноеОформление();
	
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	ОбновитьСписокИсследований();
	
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура ПредставлениеПериодаРегистрацииОчистка(Элемент, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
КонецПроцедуры

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

&НаКлиенте
Процедура НастройкиУчетнойПолитикиБухНажатие(Элемент)
	
	//++ Локализация
	ОткрытьФорму("РегистрСведений.УчетнаяПолитикаБухУчета.ФормаЗаписи",
		Новый Структура("Организация", Организация),
		ЭтотОбъект,,,,
		Новый ОписаниеОповещения("НастройкиУчетнойПолитикиНажатиеЗавершение", ЭтотОбъект),
		РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	//-- Локализация
		
	Возврат;
	
КонецПроцедуры

&НаКлиенте
Процедура ОрганизацииПриИзменении(Элемент)

	ОбновитьНастройкиУчетныхПолитик();
	ОбновитьСписокИсследованийКОтнесениюРасходовНаСервере();
	ОбновитьНастройкиУчетныхПолитик();
	
КонецПроцедуры

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

#Область ОбработчикиСобытийТаблицыФормыСписокИсследованийКОтнесениюРасходов

&НаКлиенте
Процедура СписокИсследованийКОтнесениюРасходовВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)

	Если Поле = Элементы.СписокИсследованийКОтнесениюРасходовТемаЭтапИсследований Тогда
		СтандартнаяОбработка = Ложь;
		ОткрытьОбъект(Элемент.ТекущиеДанные.ТемаЭтапИсследований, СтандартнаяОбработка);
	ИначеЕсли Поле = Элементы.СписокИсследованийКОтнесениюРасходовДокументПризнания Тогда
		СтандартнаяОбработка = Ложь;
		ОткрытьОбъект(Элемент.ТекущиеДанные.ДокументПризнания, СтандартнаяОбработка);
	ИначеЕсли Поле = Элементы.СписокИсследованийКОтнесениюРасходовПодразделение Тогда
		СтандартнаяОбработка = Ложь;
		ОткрытьОбъект(Элемент.ТекущиеДанные.Подразделение, СтандартнаяОбработка);
	ИначеЕсли Поле = Элементы.СписокИсследованийКОтнесениюРасходовСтатьяРасходовБУ Тогда
		СтандартнаяОбработка = Ложь;
		ОткрытьОбъект(Элемент.ТекущиеДанные.СтатьяРасходовБУ, СтандартнаяОбработка);
	ИначеЕсли Поле = Элементы.СписокИсследованийКОтнесениюРасходовАналитикаРасходовБУ Тогда
		СтандартнаяОбработка = Ложь;
		ОткрытьОбъект(Элемент.ТекущиеДанные.АналитикаРасходовБУ, СтандартнаяОбработка);
	ИначеЕсли Поле = Элементы.СписокИсследованийКОтнесениюРасходовНаправлениеДеятельности Тогда
		СтандартнаяОбработка = Ложь;
		ОткрытьОбъект(Элемент.ТекущиеДанные.НаправлениеДеятельности, СтандартнаяОбработка);
	КонецЕсли;

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

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

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

&НаКлиенте
Процедура ОбновитьСписокИсследованийКОтнесениюРасходов(Команда)
	
	ОбновитьСписокИсследований();
	
КонецПроцедуры

&НаКлиенте
Процедура ОформитьДокументПризнания(Команда)
	
	ОчиститьСообщения();

	СписокКОформлению = Элементы.СписокИсследованийКОтнесениюРасходов;
	ТекущаяСтрокаКОформлению = СписокКОформлению.ТекущиеДанные;

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

	ИсследованияКПризнанию = Новый Массив();

	Для Каждого ТекущаяСтрокаКОформлению Из СписокКОформлению.ВыделенныеСтроки Цикл

		ТекущиеДанныеПоСтроке = СписокКОформлению.ДанныеСтроки(ТекущаяСтрокаКОформлению);

		Если ТекущиеДанныеПоСтроке.ДокументПризнания.Пустая() Тогда
			ИсследованияКПризнанию.Добавить(ТекущиеДанныеПоСтроке.ТемаЭтапИсследований);
		Иначе
			ТекстСообщения = НСтр("ru = 'Для %1 уже введен документ завершения. Элемент не может быть включен в состав нового документа'");
			ОбщегоНазначенияКлиент.СообщитьПользователю(
				СтрШаблон(ТекстСообщения, ТекущиеДанныеПоСтроке.ТемаЭтапИсследований),,
				"СписокИсследованийКОтнесениюРасходов[" + СписокИсследованийКОтнесениюРасходов.Индекс(ТекущаяСтрокаКОформлению) + "].ТемаЭтапИсследований");
		КонецЕсли;

	КонецЦикла;

	Если ИсследованияКПризнанию.Количество() > 0 Тогда
		ЗначенияЗаполнения = Новый Структура;
		ЗначенияЗаполнения.Вставить("ТемыЭтапы", ИсследованияКПризнанию);
		ЗначенияЗаполнения.Вставить("Организация", Организация);
		ЗначенияЗаполнения.Вставить("ХозяйственнаяОперация", ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПризнаниеРасходовПоИсследованиям"));

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

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

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


#Область ДлительныеОперации

&НаКлиенте
Процедура ОбновитьСписокИсследований()

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

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

&НаСервере
Функция ОбновитьСписокИсследованийКОтнесениюРасходовНаСервере()

	СписокИсследованийКОтнесениюРасходов.Очистить();

	Если ЗначениеЗаполнено(Организация) Тогда

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

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

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

&НаСервере
Процедура ЗагрузитьПодготовленныеДанные(АдресРезультата, ДополнительныеПараметры)
	
	Данные = ПолучитьИзВременногоХранилища(АдресРезультата);
	
	Для Каждого Строка Из Данные Цикл
		СтрокаТаблицы = СписокИсследованийКОтнесениюРасходов.Добавить();
		ЗаполнитьЗначенияСвойств(СтрокаТаблицы, Строка);
	КонецЦикла;	
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура ОтображениеСостоянияДлительнойОперации(Форма, ВыполнениеОперации)
	
	Элементы = Форма.Элементы;

	Элементы.ГруппаОтборы.Доступность = НЕ ВыполнениеОперации;
	Элементы.ГруппаВыполнениеРасчетаВФоне.Видимость = ВыполнениеОперации;
	
КонецПроцедуры

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

&НаКлиенте
Процедура ПредставлениеПериодаРегистрацииНачалоВыбораЗавершение(ВыбранныйПериод, ДополнительныеПараметры) Экспорт 
	
	Если ВыбранныйПериод <> Неопределено Тогда
		
		ПериодРегистрации = ВыбранныйПериод;
		ПредставлениеПериодаРегистрации =
			ОбщегоНазначенияУТКлиентСервер.ПолучитьПредставлениеПериодаРегистрации(ПериодРегистрации);
		
	КонецЕсли;
	
	ОбновитьСписокИсследованийКОтнесениюРасходовНаСервере();
	ОбновитьНастройкиУчетныхПолитик();
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьОбъект(Ссылка, СтандартнаяОбработка)

	Если ЗначениеЗаполнено(Ссылка) Тогда
		ПоказатьЗначение(Неопределено, Ссылка);
	КонецЕсли;

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

&НаСервере
Процедура УстановитьУсловноеОформление()

	//Условное оформление полей "по настройкам учетной политики"
	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
	
	ПолеЭлемента = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СписокИсследованийКОтнесениюРасходовАналитикаРасходовУУ.Имя);
	ПолеЭлемента = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СписокИсследованийКОтнесениюРасходовАналитикаРасходовБУ.Имя);
	ПолеЭлемента = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СписокИсследованийКОтнесениюРасходовСтатьяРасходовБУ.Имя);
	ПолеЭлемента = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СписокИсследованийКОтнесениюРасходовСтатьяРасходовУУ.Имя);
	
	ОтборЭлемента = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СписокИсследованийКОтнесениюРасходов.ПараметрОтображенияРаспределения");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = "ПоПараметрамУП";

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

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

	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<по распределению>'"));
	
	//Условное оформление подразделения "по текущему значению"
	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

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

&НаКлиенте
Процедура СформироватьДокументПризнанияЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	ОбновитьСписокИсследованийКОтнесениюРасходовНаСервере();
	
КонецПроцедуры

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

	ОбновитьНастройкиУчетныхПолитик();

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

&НаСервере
Процедура ОбновитьНастройкиУчетныхПолитик()

	Организации = Новый Массив();
	Организации.Добавить(Организация);
	
	НастройкиПризнанияИсследований = УчетРасходовПоИсследованиямИРазработкам.НастройкиПризнанияРасходовПоИсследованиямОрганизаций(
		ПериодРегистрации,
		Организации);

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

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

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