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

файл

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);

	#Область СтандартныеПодсистемы

	// СтандартныеПодсистемы.ВерсионированиеОбъектов
	ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтаФорма);
	// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	// ИнтеграцияС1СДокументооборотом
	ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец ИнтеграцияС1СДокументооборотом

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

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

	ПараметрыВыбораСтатейИАналитик = Документы.ПризнаниеРасходовПоИсследованиямИРазработкам.ПараметрыВыбораСтатейИАналитик(Объект.ХозяйственнаяОперация);
	ДоходыИРасходыСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);

	ПереключательРасшифровки = ?(Объект.Распределение.Количество() = 1, 0, 1);

	НастроитьХозяйственныеОперации();

	ЗаполнитьСпискиВыбораВидовПризнанияРасходов();
	
	УстановитьУсловноеОформление();
	
	УправлениеЭлементамиФормыНаСервере();
	
	ИзменитьЗаголовкиПоХозОперации();
	
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.УправлениеДоступом

	// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.УправлениеДоступом

	ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);

	СобытияФорм.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);

	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
	ПараметрыВыбораСтатейИАналитик = Документы.ПризнаниеРасходовПоИсследованиямИРазработкам.ПараметрыВыбораСтатейИАналитик(Объект.ХозяйственнаяОперация);
	ДоходыИРасходыСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)

	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
	УправлениеЭлементамиФормыНаКлиенте();

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

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)

	СобытияФормКлиент.ПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи);

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

&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)

	Если ИсточникВыбора.ИмяФормы = "Справочник.ТемыЭтапыИсследованийИРазработок.Форма.ФормаВыбора" Тогда
		Если ВыбранноеЗначение.Количество() > 0 Тогда
			Для Каждого ЭлементМассива Из ВыбранноеЗначение Цикл
				Объект.ТемыЭтапыИсследованийИРазработок.Добавить().ТемаЭтап = ЭлементМассива;
			КонецЦикла;
		КонецЕсли;
	КонецЕсли;

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

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

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

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

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

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

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
	// ИнтеграцияС1СДокументооборотом
	ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(
		ЭтотОбъект,
		ТекущийОбъект,
		ПараметрыЗаписи);
	// Конец ИнтеграцияС1СДокументооборотом
	
КонецПроцедуры

&НаКлиенте
Процедура СтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)

// СтандартныеПодсистемы.Свойства
	Если ЭтотОбъект.ПараметрыСвойств.Свойство(ТекущаяСтраница.Имя)
			И Не ЭтотОбъект.ПараметрыСвойств.ВыполненаОтложеннаяИнициализация Тогда

		СвойстваВыполнитьОтложеннуюИнициализацию();
		УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	КонецЕсли;
	// Конец СтандартныеПодсистемы.Свойства
КонецПроцедуры

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

	// СтандартныеПодсистемы.ПодключаемыеКоманды
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
		МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
		МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
	КонецЕсли;
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
КонецПроцедуры

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)

	// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
	// Конец СтандартныеПодсистемы.УправлениеДоступом
	
	ДоходыИРасходыСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
	
	ИзменитьЗаголовкиПоХозОперации();
	
	СобытияФорм.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ХозяйственнаяОперацияПриИзменении(Элемент)

	ХозяйственнаяОперацияПриИзмененииНаСервере();
		
	УправлениеЭлементамиФормыНаКлиенте();

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

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

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

	УправлениеЭлементамиФормыНаКлиенте();

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

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

&НаКлиенте
Процедура ВидПризнанияРасходовБУЗавершенияЭтапаПриИзменении(Элемент)

	ПроверитьВидРаспределенияРасходовНУ();
	
	ОчиститьСтатьюРасходов("СтатьяРасходовБУЗавершенияЭтапа", "РаспределениеЗавершенияЭтапа");

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

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

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

&НаКлиенте
Процедура ВидПризнанияРасходовНУЗавершенияЭтапаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

	СформироватьСписокВыбораВидовПризнанияНУ(Элемент.Имя, Элементы.РаспределениеЗавершенияЭтапа.ТекущиеДанные.ВидПризнанияРасходовБУ);

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

&НаКлиенте
Процедура СтатьяРасходовБУЗавершенияЭтапаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

	ОбновитьПараметрыВыбораСтатьиРасхода(Элемент, Элементы.РаспределениеЗавершенияЭтапа.ТекущиеДанные.ВидПризнанияРасходовБУ);
	
КонецПроцедуры

&НаКлиенте
Процедура СтатьяРасходовБУЗавершенияЭтапаПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);

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

&НаКлиенте
Процедура СтатьяРасходовУУЗавершенияЭтапаПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);

	НастроитьОтображениеПодсказокЭлементовФормы();

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

&НаКлиенте
Процедура РаспределениеСтатьяРасходовУУПоИсследованиямПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);

	НастроитьОтображениеПодсказокЭлементовФормы();

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

&НаКлиенте
Процедура СтатьяРасходовУУЗавершенияЭтапаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

	ОбновитьПараметрыВыбораСтатьиРасхода(Элемент, Элементы.РаспределениеЗавершенияЭтапа.ТекущиеДанные.ВидПризнанияРасходовУУ);

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

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

	ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

&НаКлиенте
Процедура РаспределениеАналитикаРасходовБУПоИсследованиямПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.АналитикаРасходовПриИзменении(ЭтотОбъект, Элемент);

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

&НаКлиенте
Процедура РаспределениеАналитикаРасходовУУПоИсследованиямПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.АналитикаРасходовПриИзменении(ЭтотОбъект, Элемент);

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

&НаКлиенте
Процедура РаспределениеАналитикаРасходовБУПоИсследованиямАвтоПодбор(Элемент,
		Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание,
		СтандартнаяОбработка)

	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

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

	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

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

	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

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

	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

&НаКлиенте
Процедура АналитикаРасходовБУЗавершенияЭтапаНачалоВыбора(Элемент,
		ДанныеВыбора, СтандартнаяОбработка)

	ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

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

	ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

&НаКлиенте
Процедура АналитикаРасходовУУЗавершенияЭтапаНачалоВыбора(Элемент,
		ДанныеВыбора, СтандартнаяОбработка)

	ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

&НаКлиенте
Процедура АналитикаРасходовБУЗавершенияЭтапаАвтоПодбор(Элемент, Текст,
		ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)

	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

&НаКлиенте
Процедура АналитикаРасходовУУЗавершенияЭтапаАвтоПодбор(Элемент, Текст,
		ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)

	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

&НаКлиенте
Процедура АналитикаРасходовБУЗавершенияЭтапаОкончаниеВводаТекста(Элемент,
		Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)

	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

&НаКлиенте
Процедура АналитикаРасходовУУЗавершенияЭтапаОкончаниеВводаТекста(Элемент,
		Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)

	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

&НаКлиенте
Процедура АналитикаРасходовБУЗавершенияЭтапаПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.АналитикаРасходовПриИзменении(ЭтотОбъект, Элемент);

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

&НаКлиенте
Процедура АналитикаРасходовУУЗавершенияЭтапаПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.АналитикаРасходовПриИзменении(ЭтотОбъект, Элемент);

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

&НаКлиенте
Процедура АналитикаРасходовНУЗавершенияЭтапаПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.АналитикаРасходовПриИзменении(ЭтотОбъект, Элемент);

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

&НаКлиенте
Процедура АналитикаРасходовНУЗавершенияЭтапаАвтоПодбор(Элемент, Текст,
		ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)

	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

&НаКлиенте
Процедура АналитикаРасходовНУЗавершенияЭтапаОкончаниеВводаТекста(Элемент,
		Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)

	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

&НаКлиенте
Процедура АналитикаРасходовНУЗавершенияЭтапаНачалоВыбора(Элемент,
		ДанныеВыбора, СтандартнаяОбработка)

	ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

&НаКлиенте
Процедура СтатьяРасходовНУЗавершенияЭтапаПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);

	НастроитьОтображениеПодсказокЭлементовФормы();

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

&НаКлиенте
Процедура СтатьяРасходовНУЗавершенияЭтапаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

	ОбновитьПараметрыВыбораСтатьиРасхода(Элемент, Элементы.РаспределениеЗавершенияЭтапа.ТекущиеДанные.ВидПризнанияРасходовНУ);

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

&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
	
	ОрганизацияПриИзмененииНаСервере();
	
	Для Каждого Строка Из Объект.Распределение Цикл
		ЗаполнитьРеквизитыПоУмолчанию(Строка);
	КонецЦикла;	
	
	УправлениеЭлементамиФормыНаКлиенте();
	
КонецПроцедуры

&НаСервере
Процедура ОрганизацияПриИзмененииНаСервере()
	
	НастроитьХозяйственныеОперации();
	
	ЗаполнитьСпискиВыбораВидовПризнанияРасходов();
	
	УправлениеЭлементамиФормыНаСервере();
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура РаспределениеАналитикаРасходовБУАвтоПодбор(Элемент, Текст,
		ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)

	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

&НаКлиенте
Процедура РаспределениеАналитикаРасходовУУАвтоПодбор(Элемент, Текст,
		ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)

	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

&НаКлиенте
Процедура РаспределениеАналитикаРасходовБУОкончаниеВводаТекста(Элемент, Текст,
		ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)

	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

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

	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

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

	ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

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

	ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

&НаКлиенте
Процедура РаспределениеАналитикаРасходовНУАвтоПодбор(Элемент, Текст,
		ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)

	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

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

	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

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

	ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

&НаКлиенте
Процедура РаспределениеСтатьяРасходовБУПоИсследованиямПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);

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

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

	ОбновитьПараметрыВыбораСтатьиРасхода(Элемент);

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

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

	ОбновитьПараметрыВыбораСтатьиРасхода(Элемент);

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

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

	СформироватьСписокВыбораВидовПризнанияНУ(Элемент.Имя, Элементы.РаспределениеЗавершенияЭтапа.ТекущиеДанные.ВидПризнанияРасходовБУ);

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

&НаКлиенте
Процедура РаспределениеВидПризнанияРасходовБУПриИзменении(Элемент)

	ПроверитьВидРаспределенияРасходовНУ();
	
	ОчиститьСтатьюРасходов("РаспределениеЗавершенияЭтапаСтатьяРасходовБУ", "РаспределениеЗавершенияЭтапа");
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура РаспределениеСтатьяРасходовБУПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);

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

&НаКлиенте
Процедура РаспределениеСтатьяРасходовУУПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);

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

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

	ОбновитьПараметрыВыбораСтатьиРасхода(Элемент, Элементы.РаспределениеЗавершенияЭтапа.ТекущиеДанные.ВидПризнанияРасходовБУ);

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

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

	ОбновитьПараметрыВыбораСтатьиРасхода(Элемент, Элементы.РаспределениеЗавершенияЭтапа.ТекущиеДанные.ВидПризнанияРасходовУУ);

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

&НаКлиенте
Процедура РаспределениеСтатьяРасходовНУПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);

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

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

	ОбновитьПараметрыВыбораСтатьиРасхода(Элемент, Элементы.РаспределениеЗавершенияЭтапа.ТекущиеДанные.ВидПризнанияРасходовНУ);

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

&НаКлиенте
Процедура РаспределениеПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)

	ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, Элемент.ТекущиеДанные, "Объект.Распределение");

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

&НаКлиенте
Процедура РаспределениеПоИсследованиямПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
	
	ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, Элемент.ТекущиеДанные, "Объект.Распределение");
	
КонецПроцедуры

&НаКлиенте
Процедура РаспределениеПоИсследованиямСтатьяРасходовПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);

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

&НаКлиенте
Процедура РаспределениеПоИсследованиямСтатьяРасходовУУПриИзменении(Элемент)

	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);

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

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

	ОбновитьПараметрыВыбораСтатьиРасхода(Элемент);

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

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

	ОбновитьПараметрыВыбораСтатьиРасхода(Элемент);

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

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

	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

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

	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

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

	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(
		ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

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

	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(
		ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);

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

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

	ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

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

	ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

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

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

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

&НаКлиенте
Процедура ЗаписатьДокумент(Команда)

	ОбщегоНазначенияУТКлиент.Записать(ЭтаФорма, Истина);

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

&НаКлиенте
Процедура ПровестиДокумент(Команда)

	ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма, Истина);

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

&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)

	ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтаФорма, Ложь);

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

&НаКлиенте
Процедура Подбор(Команда)

	ПодобратьТему(ЭтаФорма, Истина);

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

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

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

#Область СтандартныеПодсистемы

// СтандартныеПодсистемы.Свойства
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда,
		НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)

	УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);

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

// Конец СтандартныеПодсистемы.Свойства
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)

	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтотОбъект, Команда);

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

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры

// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
	
	// ИнтеграцияС1СДокументооборотом
	ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
	// Конец ИнтеграцияС1СДокументооборотом
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура УправлениеЭлементамиФормыНаКлиенте()

	ПриИзмененииПереключателяРасшифровкиРазбиения(ПереключательРасшифровки);

	НастроитьОтображениеПодсказокЭлементовФормы();
	НастроитьОтображениеОтнесенияРасходов(ЭтотОбъект);

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

&НаСервере
Процедура УправлениеЭлементамиФормыНаСервере()

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

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

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

&НаКлиенте
Процедура ПриИзмененииПереключателяРасшифровкиРазбиения(ЗначениеПереключателя)

	Если ПереключательРасшифровки = 0 Тогда
		Если Объект.Распределение.Количество() = 0 Тогда
			НоваяСтрока = Объект.Распределение.Добавить();
			НоваяСтрока.Коэффициент = 1;
			ЗаполнитьРеквизитыПоУмолчанию(НоваяСтрока);
			ИдентификаторСтроки = НоваяСтрока.ПолучитьИдентификатор();
		ИначеЕсли Объект.Распределение.Количество() = 1 Тогда
			Если Элементы.РаспределениеЗавершенияЭтапа.ТекущаяСтрока = Неопределено Тогда
				ИдентификаторСтроки = Объект.Распределение[0].ПолучитьИдентификатор();
			КонецЕсли;
			Если Объект.Распределение[0].Коэффициент = 0 Тогда
				Объект.Распределение[0].Коэффициент = 1;
			КонецЕсли;
		КонецЕсли;
		Элементы.РаспределениеЗавершенияЭтапа.ТекущаяСтрока = ИдентификаторСтроки;
		Элементы.РаспределениеПоИсследованиям.ТекущаяСтрока = ИдентификаторСтроки;
	КонецЕсли;

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

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

&НаКлиенте
Процедура НастроитьОтображениеПодсказокЭлементовФормы()

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

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

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

&НаКлиенте
Процедура НастроитьОтображениеОтнесенияРасходов(Форма)

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

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

&НаКлиенте
Процедура СформироватьСписокВыбораВидовПризнанияНУ(ИмяЭлемента, ВидПризнанияБУ)

	СписокПризнанийНУ = ПолучитьВидыПризнанияНУ(ВидПризнанияБУ);

	Элементы[ИмяЭлемента].СписокВыбора.ЗагрузитьЗначения(СписокПризнанийНУ);

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

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

	Возврат СписокВидовПризнания;

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

&НаСервереБезКонтекста
Функция ПолучитьВидыПризнанияНУ(ВидПризнанияБУ)
	
	СписокПризнанийНУ = Новый Массив();

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

	Возврат СписокПризнанийНУ;

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

&НаКлиенте
Процедура ПроверитьВидРаспределенияРасходовНУ()

	СписокПризнанийНУ = ПолучитьВидыПризнанияНУ(Элементы.РаспределениеЗавершенияЭтапа.ТекущиеДанные.ВидПризнанияРасходовБУ);

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

	Если СписокПризнанийНУ.Количество() = 1 Тогда
		Элементы.РаспределениеЗавершенияЭтапа.ТекущиеДанные.ВидПризнанияРасходовНУ = СписокПризнанийНУ[0];
	КонецЕсли;

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

// СтандартныеПодсистемы.Свойства 
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()

	УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);

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

&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()

	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);

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

&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)

	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);

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

&НаСервере
Процедура СвойстваВыполнитьОтложеннуюИнициализацию()

	УправлениеСвойствами.ЗаполнитьДополнительныеРеквизитыВФорме(ЭтотОбъект);

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

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

	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РаспределениеПоИсследованиямНаправлениеДеятельности.Имя);

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

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

	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

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

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

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

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

&НаСервере
Процедура ЗаполнитьСпискиВыбораВидовПризнанияРасходов()

#Область БУ_УУ
	СписокВыбора = ПолучитьВидыПризнанияБУ_УУ();

	Элементы.ВидПризнанияРасходовБУЗавершенияЭтапа.СписокВыбора.Очистить();
	Элементы.ВидПризнанияРасходовБУЗавершенияЭтапа.СписокВыбора.ЗагрузитьЗначения(СписокВыбора);

	Элементы.РаспределениеЗавершенияЭтапаВидПризнанияРасходовБУ.СписокВыбора.Очистить();
	Элементы.РаспределениеЗавершенияЭтапаВидПризнанияРасходовБУ.СписокВыбора.ЗагрузитьЗначения(СписокВыбора);

	Элементы.ВидПризнанияРасходовУУЗавершенияЭтапа.СписокВыбора.Очистить();
	Элементы.ВидПризнанияРасходовУУЗавершенияЭтапа.СписокВыбора.ЗагрузитьЗначения(СписокВыбора);

	Элементы.РаспределениеЗавершенияЭтапаВидПризнанияРасходовУУ.СписокВыбора.Очистить();
	Элементы.РаспределениеЗавершенияЭтапаВидПризнанияРасходовУУ.СписокВыбора.ЗагрузитьЗначения(СписокВыбора);

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

#Область НУ

	ВидПризнанияБУ = ?(Объект.Распределение.Количество() <> 0, Объект.Распределение[0].ВидПризнанияРасходовБУ, Неопределено);

	СписокВыбора = ПолучитьВидыПризнанияНУ(ВидПризнанияБУ);

	Элементы.ВидПризнанияРасходовНУЗавершенияЭтапа.СписокВыбора.Очистить();
	Элементы.ВидПризнанияРасходовНУЗавершенияЭтапа.СписокВыбора.ЗагрузитьЗначения(СписокВыбора);
	
	Элементы.РаспределениеЗавершенияЭтапаВидПризнанияРасходовНУ.СписокВыбора.Очистить();
	Элементы.РаспределениеЗавершенияЭтапаВидПризнанияРасходовНУ.СписокВыбора.ЗагрузитьЗначения(СписокВыбора);

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

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

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

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

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

&НаСервере
Процедура ИзменитьЗаголовкиПоХозОперации()
	
	АвтоЗаголовок = Истина;
	Заголовок = "";

	Если ЗначениеЗаполнено(Объект.ХозяйственнаяОперация) Тогда
		
		АвтоЗаголовок = Ложь;
		Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
			Шаблон = НСтр("ru='%1 %2 от %3'");
		Иначе
			Шаблон = НСтр("ru='%1 (создание)'");
		КонецЕсли;
		Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			Шаблон, Объект.ХозяйственнаяОперация, Объект.Номер, Объект.Дата);
		
	КонецЕсли;
	
КонецПроцедуры

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

	ПараметрыФормы = Новый Структура;
	ПараметрыФормы.Вставить("Отбор", ПараметрыОтбор);
	ПараметрыФормы.Вставить("МножественныйВыбор", МножественныйВыбор);

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

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

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