Документы по основным средствам / Документы по основным средствам / Модуль формы

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

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

		ФормыОткрытаПоГиперссылке = Истина;
		
		ОтборОсновноеСредство = Параметры.ОбъектЭксплуатации;

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

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

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

	// НастройкиДинамическихСписков
	УстановитьПараметрыОбновленияСписковДокументов(Ложь, 0);
	// Конец НастройкиДинамическихСписков
	
	НачатьОбновлениеДанныхВФоне();
	
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	Если Не ЗавершениеРаботы Тогда
		СохранитьНастройки();
	КонецЕсли;
	
	МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	// ПодключаемоеОборудование
	Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда
		Если ИмяСобытия = "ScanData" И МенеджерОборудованияУТКлиент.ЕстьНеобработанноеСобытие() Тогда
			ОбработатьШтрихкоды(МенеджерОборудованияУТКлиент.ПреобразоватьДанныеСоСканераВСтруктуру(Параметр));
		КонецЕсли;
	КонецЕсли;
	// Конец ПодключаемоеОборудование
	
	// ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	ПараметрыОповещенияЭДО = ОбменСКонтрагентамиКлиент.ПараметрыОповещенияЭДО_ФормаСписка();
	ПараметрыОповещенияЭДО.Форма = ЭтотОбъект;
	ПараметрыОповещенияЭДО.ИмяДинамическогоСписка = "Список";
	ПараметрыОповещенияЭДО.ЕстьОбработчикОбновленияВидимостиСостоянияЭДО = Истина;
	ОбменСКонтрагентамиКлиент.ОбработкаОповещения_ФормаСписка(ИмяСобытия, Параметр, Источник, ПараметрыОповещенияЭДО);
	// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	
	Если ИмяСобытия = "Запись_Файл" Тогда
		ОбновитьСписки();
	ИначеЕсли СтрНайти(ИмяСобытия, "Запись_") <> 0 Тогда
		
		ТребуетсяОбновитьДанныеОС = Ложь;
		Для Каждого СтрокаДокумент Из ХозяйственныеОперацииИДокументы Цикл
			ИмяСобытияЗаписьДокумента = СтрЗаменить(СтрокаДокумент.ПолноеИмяДокумента, "Документ.", "Запись_");
			Если ИмяСобытияЗаписьДокумента = ИмяСобытия Тогда
				ТребуетсяОбновитьДанныеОС = Истина;
				Прервать;
			КонецЕсли;
		КонецЦикла;

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

		Если ТребуетсяОбновитьДанныеАмортизация Тогда
			// НастройкиДинамическихСписков
			ОбновитьСписокДокументовСобытиеОбработкаОповещения("СписокАмортизация", Параметр);
			// Конец НастройкиДинамическихСписков
		КонецЕсли;
		
	КонецЕсли;
	
	Если ИмяСобытия = "Запись_ПринятиеКУчетуОС2_4"
		ИЛИ ИмяСобытия = "Запись_СписаниеОС2_4"
		ИЛИ ИмяСобытия = "ЗаписьДокументаВЖурналОС" Тогда
		ОбновитьДанныеКогдаФормаСтанетАктивной();
	КонецЕсли;
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ОтборОрганизацияПриИзменении(Элемент)
	
	ПриИзмененииОтбора();
	
	НачатьОбновлениеДанныхВФоне();
	
КонецПроцедуры

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
	
	Отказ = Истина;
	Если Элементы.СписокГруппаСоздатьГенерируемая.ПодчиненныеЭлементы.Количество() <> 0 Тогда 
		Если Копирование Тогда
			ОбщегоНазначенияУТКлиент.СкопироватьЭлемент(Элемент);
		ИначеЕсли ОтборТипыДокументов.Количество() = 1 И ОтборХозяйственныеОперации.Количество() = 1 Тогда 
			СтруктураКоманды = Новый Структура("Имя", Элементы.СписокГруппаСоздатьГенерируемая.ПодчиненныеЭлементы[0].Имя);
			Подключаемый_СоздатьДокумент(СтруктураКоманды);
		Иначе
			Подключаемый_СоздатьДокументЧерезФормуВыбора(Неопределено);
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура СписокДетальноПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
	
	Отказ = Истина;
	Если Элементы.СписокДетальноГруппаСоздатьГенерируемая.ПодчиненныеЭлементы.Количество() <> 0 Тогда 
		Если Копирование Тогда
			ОбщегоНазначенияУТКлиент.СкопироватьЭлемент(Элемент);
		ИначеЕсли ОтборТипыДокументов.Количество() = 1 И ОтборХозяйственныеОперации.Количество() = 1 Тогда 
			СтруктураКоманды = Новый Структура("Имя", Элементы.СписокДетальноГруппаСоздатьГенерируемая.ПодчиненныеЭлементы[0].Имя);
			Подключаемый_СоздатьДокумент(СтруктураКоманды);
		Иначе
			Подключаемый_СоздатьДокументЧерезФормуВыбора(Неопределено);
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

&НаКлиенте
Процедура СписокАмортизацияПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
	
	Отказ = Истина;
	Если Элементы.СписокАмортизацияГруппаСоздатьГенерируемая.ПодчиненныеЭлементы.Количество() <> 0 Тогда 
		Если Копирование Тогда
			ОбщегоНазначенияУТКлиент.СкопироватьЭлемент(Элемент);
		ИначеЕсли ОтборТипыДокументов.Количество() = 1 И ОтборХозяйственныеОперации.Количество() = 1 Тогда 
			СтруктураКоманды = Новый Структура("Имя", Элементы.СписокАмортизацияГруппаСоздатьГенерируемая.ПодчиненныеЭлементы[0].Имя);
			Подключаемый_СоздатьДокумент(СтруктураКоманды);
		Иначе
			Подключаемый_СоздатьДокументЧерезФормуВыбора(Неопределено);
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

#Область Список

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

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

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

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

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

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

&НаКлиенте
Процедура СписокПроводкиМеждународногоУчета(Команда)
	
	
	Возврат;
	
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьДанные(Команда)
	
	ОбновитьДанныеКогдаФормаСтанетАктивной();

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

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

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

#Область СписокДетально

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

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

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

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

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

&НаКлиенте
Процедура СписокДетальноПроводкиМеждународногоУчета(Команда)
	
	
	Возврат;
	
КонецПроцедуры

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

#Область СписокАмортизация

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

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

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

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

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

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

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

&НаКлиенте
Процедура СписокАмортизацияПроводкиМеждународногоУчета(Команда)
	

	Возврат;
	
КонецПроцедуры

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

#Область ПодключаемыеКоманды

&НаКлиенте
Процедура Подключаемый_СоздатьДокумент(Команда)
	
	ОбщегоНазначенияУТКлиент.СоздатьДокументЧерезКоманду(Команда.Имя, ОтборыДляСозданияДокумента());
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура СписокДокументовОбновить(Команда)
	
	// НастройкиДинамическихСписков
	ОбновитьДанныеСпискаДокументовСЗамеромВремени("Список");
	// Конец НастройкиДинамическихСписков
	
КонецПроцедуры

&НаКлиенте
Процедура СписокДокументовАмортизацияОбновить(Команда)
	
	// НастройкиДинамическихСписков
	ОбновитьДанныеСпискаДокументовСЗамеромВремени("СписокАмортизация");
	// Конец НастройкиДинамическихСписков
	
КонецПроцедуры

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

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

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

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

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

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

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

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

	ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
		Список,
		"ТипСсылки",
		ОтборТипыДокументовДляОтбора,
		ВидСравненияКомпоновкиДанных.ВСписке,
		,
		Истина);
		
	ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
		Список,
		"Организация",
		ОтборОрганизация,
		ВидСравненияКомпоновкиДанных.Равно,
		,
		ЗначениеЗаполнено(ОтборОрганизация));
		
	ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
		Список,
		"ДополнительнаяЗапись",
		Ложь,
		ВидСравненияКомпоновкиДанных.Равно,
		,
		НЕ ЗначениеЗаполнено(ОтборОрганизация));
		
	Список.Параметры.УстановитьЗначениеПараметра("НачалоПериода", СписокИнтервал.ДатаНачала);
	
	Список.Параметры.УстановитьЗначениеПараметра("КонецПериода", 
		?(ЗначениеЗаполнено(СписокИнтервал.ДатаОкончания),
			КонецДня(СписокИнтервал.ДатаОкончания),
			КонецДня(Дата(3999, 12, 31))));
			
	Элементы.СписокУстановитьИнтервал.Пометка = 
		ЗначениеЗаполнено(СписокИнтервал.ДатаНачала) ИЛИ ЗначениеЗаполнено(СписокИнтервал.ДатаОкончания);
		
	// НастройкиДинамическихСписков
	РаботаСЖурналамиДокументов.УстановитьВидимостьГруппыНастройкиОбновленияПоУмолчанию(ЭтотОбъект, "Список");
	// Конец НастройкиДинамическихСписков
	
	#КонецОбласти
	
	#Область СписокДетально
	ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
		СписокДетально,
		"ХозяйственнаяОперация",
		ОтборХозяйственныеОперацииДляОтбора,
		ВидСравненияКомпоновкиДанных.ВСписке,
		,
		Истина);

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

	ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
		СписокДетально,
		"Организация",
		ОтборОрганизация,
		ВидСравненияКомпоновкиДанных.Равно,
		,
		ЗначениеЗаполнено(ОтборОрганизация));
		
	ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
		СписокДетально,
		"ДополнительнаяЗапись",
		Ложь,
		ВидСравненияКомпоновкиДанных.Равно,
		,
		НЕ ЗначениеЗаполнено(ОтборОрганизация));
		
	Если ЗначениеЗаполнено(ОСВладелец) Тогда
		
		СписокОтбора = Новый СписокЗначений;
		СписокОтбора.Добавить(ОтборОсновноеСредство);
		СписокОтбора.Добавить(ОСВладелец);
		
		ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
			СписокДетально,
			"ОсновноеСредство",
			СписокОтбора,
			ВидСравненияКомпоновкиДанных.ВСписке,
			,
			Истина);
			
	ИначеЕсли ОтборПоВладельцуИУзлам.Количество() <> 0 Тогда
		
		ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
			СписокДетально,
			"ОсновноеСредство",
			ОтборПоВладельцуИУзлам,
			ВидСравненияКомпоновкиДанных.ВСписке,
			,
			Истина);
				
	Иначе
		
		ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
			СписокДетально,
			"ОсновноеСредство",
			ОтборОсновноеСредство,
			ВидСравненияКомпоновкиДанных.Равно,
			,
			ЗначениеЗаполнено(ОтборОсновноеСредство));
		
	КонецЕсли;
		
	СписокДетально.Параметры.УстановитьЗначениеПараметра("НачалоПериода", СписокДетальноИнтервал.ДатаНачала);
	
	СписокДетально.Параметры.УстановитьЗначениеПараметра("КонецПериода", 
		?(ЗначениеЗаполнено(СписокДетальноИнтервал.ДатаОкончания),
			КонецДня(СписокДетальноИнтервал.ДатаОкончания),
			КонецДня(Дата(3999, 12, 31))));
			
	Элементы.СписокДетальноУстановитьИнтервал.Пометка = 
		ЗначениеЗаполнено(СписокДетальноИнтервал.ДатаНачала) ИЛИ ЗначениеЗаполнено(СписокДетальноИнтервал.ДатаОкончания);
	#КонецОбласти
	
	#Область СписокАмортизация
	ОтборТипыДокументовДляОтбора = ДополнитьТипыДокументовДляОтбора(ОтборТипыДокументовАмортизация);
	
	ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
		СписокАмортизация,
		"ТипСсылки",
		ОтборТипыДокументовДляОтбора,
		ВидСравненияКомпоновкиДанных.ВСписке,
		,
		Истина);
	
	ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
		СписокАмортизация,
		"Организация",
		ОтборОрганизация,
		ВидСравненияКомпоновкиДанных.Равно,
		,
		ЗначениеЗаполнено(ОтборОрганизация));
		
	СписокАмортизация.Параметры.УстановитьЗначениеПараметра("НачалоПериода", СписокАмортизацияИнтервал.ДатаНачала);
	
	СписокАмортизация.Параметры.УстановитьЗначениеПараметра("КонецПериода", 
		?(ЗначениеЗаполнено(СписокАмортизацияИнтервал.ДатаОкончания),
			КонецДня(СписокАмортизацияИнтервал.ДатаОкончания),
			КонецДня(Дата(3999, 12, 31))));
			
	Элементы.СписокАмортизацияУстановитьИнтервал.Пометка = 
		ЗначениеЗаполнено(СписокАмортизацияИнтервал.ДатаНачала) ИЛИ ЗначениеЗаполнено(СписокАмортизацияИнтервал.ДатаОкончания);
		
	// НастройкиДинамическихСписков
	РаботаСЖурналамиДокументов.УстановитьВидимостьГруппыНастройкиОбновленияПоУмолчанию(ЭтотОбъект, "СписокАмортизация");
	// Конец НастройкиДинамическихСписков
	
	#КонецОбласти

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

&НаСервере
Функция ДополнитьТипыДокументовДляОтбора(ОтборТипыДокументовСписка)

	Если СоответствиеДокументов.Количество() = 0 Тогда
		Возврат ОтборТипыДокументовСписка;
	КонецЕсли; 
	
	ОтборТипыДокументовКопия = ОтборТипыДокументовСписка.Скопировать();

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

&НаСервере
Функция ДополнитьХозОперацииДляОтбора(ОтборХозяйственныеОперации)

	ОтборХозяйственныеОперацииКопия = ОтборХозяйственныеОперации.Скопировать();

	Если ОтборХозяйственныеОперацииКопия.НайтиПоЗначению(Перечисления.ХозяйственныеОперации.РеализацияВнеоборотныхАктивов) <> Неопределено Тогда
		ОтборХозяйственныеОперацииКопия.Добавить(Перечисления.ХозяйственныеОперации.РеализацияКлиенту);
	КонецЕсли; 
	Если ОтборХозяйственныеОперацииКопия.НайтиПоЗначению(Перечисления.ХозяйственныеОперации.РеализацияОСсОтложеннымПереходомПрав) <> Неопределено Тогда
		ОтборХозяйственныеОперацииКопия.Добавить(Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности);
	КонецЕсли;
	Если ОтборХозяйственныеОперацииКопия.НайтиПоЗначению(Перечисления.ХозяйственныеОперации.РеализацияУслугПоАренде) <> Неопределено Тогда
		ОтборХозяйственныеОперацииКопия.Добавить(Перечисления.ХозяйственныеОперации.РеализацияУслугПоАренде);
	КонецЕсли;
	
	Возврат ОтборХозяйственныеОперацииКопия;
	
КонецФункции

&НаСервере
Процедура УстановитьТекстЗапросовДинамическихСписков()

	ТекстЗапроса = 
	"ВЫБРАТЬ
	|	РеестрДокументовПереопределяемый.Ссылка КАК Ссылка,
	|	РеестрДокументовПереопределяемый.Организация КАК Организация,
	|	РеестрДокументовПереопределяемый.ДатаДокументаИБ КАК Дата,
	|	РеестрДокументовПереопределяемый.НомерДокументаИБ КАК Номер,
	|	РеестрДокументовПереопределяемый.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
	|	РеестрДокументовПереопределяемый.Подразделение КАК Подразделение,
	|	РеестрДокументовПереопределяемый.Ответственный КАК Ответственный,
	|	РеестрДокументовПереопределяемый.Дополнительно КАК Дополнительно,
	|	РеестрДокументовПереопределяемый.Комментарий КАК Комментарий,
	|	РеестрДокументовПереопределяемый.Проведен КАК Проведен,
	|	РеестрДокументовПереопределяемый.ПометкаУдаления КАК ПометкаУдаления,
	|	ВЫБОР
	|		КОГДА РеестрДокументовПереопределяемый.Проведен
	|			ТОГДА 0
	|		КОГДА РеестрДокументовПереопределяемый.ПометкаУдаления
	|			ТОГДА 1
	|		ИНАЧЕ 2
	|	КОНЕЦ КАК НестандартнаяКартинка,
	|	РеестрДокументовПереопределяемый.ДополнительнаяЗапись КАК ДополнительнаяЗапись,
	|	РеестрДокументовПереопределяемый.ТипСсылки КАК ТипСсылки,
	|	ЕСТЬNULL(ДокументыПоОСПереопределяемый.ОтражатьВУпрУчете, ЛОЖЬ) КАК ОтражатьВУпрУчете,
	|	ЕСТЬNULL(ДокументыПоОСПереопределяемый.ОтражатьВРеглУчете, ЛОЖЬ) КАК ОтражатьВРеглУчете,
	|	&ПоказатьВремяДокументов КАК ПоказатьВремяДокументов,
	|	&СтатусПроверки КАК СтатусПроверки,
	|	ВЫРАЗИТЬ(&ИндикаторПроверки КАК БУЛЕВО) КАК ИндикаторПроверки,
	|	ТИПЗНАЧЕНИЯ(РеестрДокументовПереопределяемый.Ссылка) КАК ТипСсылкиДокумента,
	|	ВЫБОР
	|		КОГДА ДокументыПоОСПереопределяемый.ОтражатьВУпрУчете
	|				И РеестрДокументовПереопределяемый.Проведен
	|			ТОГДА 1
	|		КОГДА ДокументыПоОСПереопределяемый.ОтражатьВУпрУчете
	|				И НЕ РеестрДокументовПереопределяемый.Проведен
	|			ТОГДА 2
	|		ИНАЧЕ 0
	|	КОНЕЦ КАК ОтражатьВУпрУчетеКартинка,
	|	ВЫБОР
	|		КОГДА ДокументыПоОСПереопределяемый.ОтражатьВРеглУчете
	|				И РеестрДокументовПереопределяемый.Проведен
	|			ТОГДА 1
	|		КОГДА ДокументыПоОСПереопределяемый.ОтражатьВРеглУчете
	|				И НЕ РеестрДокументовПереопределяемый.Проведен
	|			ТОГДА 2
	|		ИНАЧЕ 0
	|	КОНЕЦ КАК ОтражатьВРеглУчетеКартинка,
	|	ВЫБОР
	|		КОГДА РеестрДокументовПереопределяемый.ДатаДокументаИБ < &ДатаНачалаУчета
	|				И (РеестрДокументовПереопределяемый.Ссылка ССЫЛКА Документ.ВводОстатковВнеоборотныхАктивов2_4
	|					ИЛИ РеестрДокументовПереопределяемый.Ссылка ССЫЛКА Документ.ИзменениеПараметровОС2_4)
	|			ТОГДА 1
	|		ИНАЧЕ 0
	|	КОНЕЦ КАК СозданДляПереходаНаВерсию24,
	|	ВЫБОР
	|		КОГДА НаличиеФайловПереопределяемый.ЕстьФайлы ЕСТЬ NULL
	|			ТОГДА 0
	|		КОГДА НаличиеФайловПереопределяемый.ЕстьФайлы
	|			ТОГДА 1
	|		ИНАЧЕ 0
	|	КОНЕЦ КАК ЕстьФайлы,
	|	СостоянияЭДПереопределяемый.ПредставлениеСостояния КАК ПредставлениеСостояния,
	|	РеестрДокументовПереопределяемый.ИдентификаторЗаписи КАК ИдентификаторЗаписи,
	|	ЕСТЬNULL(ДокументыПоОСПереопределяемый.СобытиеОС, ЗНАЧЕНИЕ(Справочник.СобытияОС.ПустаяСсылка)) КАК СобытиеОС
	|
	|ИЗ
	|	РегистрСведений.РеестрДокументов КАК РеестрДокументовПереопределяемый
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыПоОС КАК ДокументыПоОСПереопределяемый
	|		ПО (ДокументыПоОСПереопределяемый.ТипСсылки = РеестрДокументовПереопределяемый.ТипСсылки)
	|			И (ДокументыПоОСПереопределяемый.ХозяйственнаяОперация = РеестрДокументовПереопределяемый.ХозяйственнаяОперация)
	|			И (ДокументыПоОСПереопределяемый.НомерЗаписи = 0)
	|			И (ДокументыПоОСПереопределяемый.ДополнительнаяЗапись = ЛОЖЬ)
	|			И (ДокументыПоОСПереопределяемый.Ссылка = РеестрДокументовПереопределяемый.Ссылка)
	|	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайловПереопределяемый
	|	ПО РеестрДокументовПереопределяемый.Ссылка = НаличиеФайловПереопределяемый.ОбъектСФайлами
	|		{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоОбъектамУчетаЭДО КАК СостоянияЭДПереопределяемый
	|		ПО СостоянияЭДПереопределяемый.СсылкаНаОбъект = РеестрДокументовПереопределяемый.Ссылка}
	|{ГДЕ
	|	РеестрДокументовПереопределяемый.Ссылка.* КАК Ссылка,
	|	РеестрДокументовПереопределяемый.Организация.* КАК Организация,
	|	РеестрДокументовПереопределяемый.ДатаДокументаИБ КАК Дата,
	|	РеестрДокументовПереопределяемый.НомерДокументаИБ КАК Номер,
	|	РеестрДокументовПереопределяемый.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
	|	РеестрДокументовПереопределяемый.Подразделение.* КАК Подразделение,
	|	РеестрДокументовПереопределяемый.Ответственный.* КАК Ответственный,
	|	РеестрДокументовПереопределяемый.Дополнительно КАК Дополнительно,
	|	РеестрДокументовПереопределяемый.Комментарий КАК Комментарий,
	|	РеестрДокументовПереопределяемый.Проведен КАК Проведен,
	|	РеестрДокументовПереопределяемый.ПометкаУдаления КАК ПометкаУдаления,
	|	(РеестрДокументовПереопределяемый.ДатаДокументаИБ МЕЖДУ &НачалоПериода И &КонецПериода)
	|	}";
	
	ВнеоборотныеАктивыЛокализация.ДополнитьТекстЗапросаЖурналаОС(ТекстЗапроса);
	
	СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
	СвойстваСписка.ТекстЗапроса = ТекстЗапроса;
	ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка);
	
	Если ОтборОсновноеСредство.Пустая() Тогда
		
		ТекстЗапроса = 
		"ВЫБРАТЬ
		|	РеестрДокументовПереопределяемый.ТипСсылки КАК ТипСсылки,
		|	ТИПЗНАЧЕНИЯ(РеестрДокументовПереопределяемый.Ссылка) КАК ТипСсылкиДокумента,
		|	РеестрДокументовПереопределяемый.Ссылка КАК Ссылка,
		|	РеестрДокументовПереопределяемый.ПометкаУдаления КАК ПометкаУдаления,
		|	РеестрДокументовПереопределяемый.НомерДокументаИБ КАК Номер,
		|	РеестрДокументовПереопределяемый.ДатаДокументаИБ КАК Дата,
		|	РеестрДокументовПереопределяемый.Проведен КАК Проведен,
		|	РеестрДокументовПереопределяемый.Организация КАК Организация,
		|	ЕСТЬNULL(АмортизацияОС2_4Переопределяемый.НомерПакета, 0) КАК НомерПакета,
		|	РеестрДокументовПереопределяемый.Комментарий КАК Комментарий,
		|	РеестрДокументовПереопределяемый.Ответственный КАК Ответственный,
		|	РеестрДокументовПереопределяемый.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
		|	РеестрДокументовПереопределяемый.ИдентификаторЗаписи КАК ИдентификаторЗаписи,
		|	ВЫБОР
		|		КОГДА РеестрДокументовПереопределяемый.Проведен
		|			ТОГДА 0
		|		КОГДА РеестрДокументовПереопределяемый.ПометкаУдаления
		|			ТОГДА 1
		|		ИНАЧЕ 2
		|	КОНЕЦ КАК НестандартнаяКартинка,
		|	ВЫБОР
		|		КОГДА НаличиеФайловПереопределяемый.ЕстьФайлы ЕСТЬ NULL
		|			ТОГДА 0
		|		КОГДА НаличиеФайловПереопределяемый.ЕстьФайлы
		|			ТОГДА 1
		|		ИНАЧЕ 0
		|	КОНЕЦ КАК ЕстьФайлы
		|ИЗ
		|	РегистрСведений.РеестрДокументов КАК РеестрДокументовПереопределяемый
		|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.АмортизацияОС2_4 КАК АмортизацияОС2_4Переопределяемый
		|		ПО (АмортизацияОС2_4Переопределяемый.Ссылка = РеестрДокументовПереопределяемый.Ссылка)
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайловПереопределяемый
		|		ПО РеестрДокументовПереопределяемый.Ссылка = НаличиеФайловПереопределяемый.ОбъектСФайлами
		|{ГДЕ
		|	РеестрДокументовПереопределяемый.Ссылка.* КАК Ссылка,
		|	РеестрДокументовПереопределяемый.Организация.* КАК Организация,
		|	РеестрДокументовПереопределяемый.ДатаДокументаИБ КАК Дата,
		|	РеестрДокументовПереопределяемый.НомерДокументаИБ КАК Номер,
		|	РеестрДокументовПереопределяемый.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
		|	РеестрДокументовПереопределяемый.Подразделение.* КАК Подразделение,
		|	РеестрДокументовПереопределяемый.Ответственный.* КАК Ответственный,
		|	РеестрДокументовПереопределяемый.Дополнительно КАК Дополнительно,
		|	РеестрДокументовПереопределяемый.Комментарий КАК Комментарий,
		|	РеестрДокументовПереопределяемый.Проведен КАК Проведен,
		|	РеестрДокументовПереопределяемый.ПометкаУдаления КАК ПометкаУдаления,
		|	(РеестрДокументовПереопределяемый.ДатаДокументаИБ >= &НачалоПериода
		|		И РеестрДокументовПереопределяемый.ДатаДокументаИБ <= &КонецПериода)}";
		
		СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
		СвойстваСписка.ТекстЗапроса = ТекстЗапроса;
		ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.СписокАмортизация, СвойстваСписка);
		
	Иначе
		
		ТекстЗапроса = 
		"ВЫБРАТЬ
		|	РеестрДокументовПереопределяемый.ТипСсылки КАК ТипСсылки,
		|	ТИПЗНАЧЕНИЯ(РеестрДокументовПереопределяемый.Ссылка) КАК ТипСсылкиДокумента,
		|	РеестрДокументовПереопределяемый.Ссылка КАК Ссылка,
		|	РеестрДокументовПереопределяемый.ПометкаУдаления КАК ПометкаУдаления,
		|	РеестрДокументовПереопределяемый.НомерДокументаИБ КАК Номер,
		|	РеестрДокументовПереопределяемый.ДатаДокументаИБ КАК Дата,
		|	РеестрДокументовПереопределяемый.Проведен КАК Проведен,
		|	РеестрДокументовПереопределяемый.Организация КАК Организация,
		|	ЕСТЬNULL(АмортизацияОС2_4Переопределяемый.НомерПакета, 0) КАК НомерПакета,
		|	РеестрДокументовПереопределяемый.Комментарий КАК Комментарий,
		|	РеестрДокументовПереопределяемый.Ответственный КАК Ответственный,
		|	РеестрДокументовПереопределяемый.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
		|	РеестрДокументовПереопределяемый.ИдентификаторЗаписи КАК ИдентификаторЗаписи,
		|	ВЫБОР
		|		КОГДА РеестрДокументовПереопределяемый.Проведен
		|			ТОГДА 0
		|		КОГДА РеестрДокументовПереопределяемый.ПометкаУдаления
		|			ТОГДА 1
		|		ИНАЧЕ 2
		|	КОНЕЦ КАК НестандартнаяКартинка,
		|	ВЫБОР
		|		КОГДА НаличиеФайловПереопределяемый.ЕстьФайлы ЕСТЬ NULL
		|			ТОГДА 0
		|		КОГДА НаличиеФайловПереопределяемый.ЕстьФайлы
		|			ТОГДА 1
		|		ИНАЧЕ 0
		|	КОНЕЦ КАК ЕстьФайлы
		|ИЗ
		|	РегистрСведений.РеестрДокументов КАК РеестрДокументовПереопределяемый
		|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.АмортизацияОС2_4 КАК АмортизацияОС2_4Переопределяемый
		|		ПО (АмортизацияОС2_4Переопределяемый.Ссылка = РеестрДокументовПереопределяемый.Ссылка)
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайловПереопределяемый
		|		ПО РеестрДокументовПереопределяемый.Ссылка = НаличиеФайловПереопределяемый.ОбъектСФайлами
		|ГДЕ
		|	РеестрДокументовПереопределяемый.Ссылка В
		|			(ВЫБРАТЬ
		|				РегистрАмортизацияОС.Регистратор
		|			ИЗ
		|				РегистрНакопления.АмортизацияОС КАК РегистрАмортизацияОС
		|			ГДЕ
		|				РегистрАмортизацияОС.ОсновноеСредство = &ОсновноеСредство)
		|{ГДЕ
		|	РеестрДокументовПереопределяемый.Ссылка.* КАК Ссылка,
		|	РеестрДокументовПереопределяемый.Организация.* КАК Организация,
		|	РеестрДокументовПереопределяемый.ДатаДокументаИБ КАК Дата,
		|	РеестрДокументовПереопределяемый.НомерДокументаИБ КАК Номер,
		|	РеестрДокументовПереопределяемый.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
		|	РеестрДокументовПереопределяемый.Подразделение.* КАК Подразделение,
		|	РеестрДокументовПереопределяемый.Ответственный.* КАК Ответственный,
		|	РеестрДокументовПереопределяемый.Дополнительно КАК Дополнительно,
		|	РеестрДокументовПереопределяемый.Комментарий КАК Комментарий,
		|	РеестрДокументовПереопределяемый.Проведен КАК Проведен,
		|	РеестрДокументовПереопределяемый.ПометкаУдаления КАК ПометкаУдаления,
		|	(РеестрДокументовПереопределяемый.ДатаДокументаИБ >= &НачалоПериода
		|		И РеестрДокументовПереопределяемый.ДатаДокументаИБ <= &КонецПериода)}";
		
		СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
		СвойстваСписка.ТекстЗапроса = ТекстЗапроса;
		ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.СписокАмортизация, СвойстваСписка);
		
		СписокАмортизация.Параметры.УстановитьЗначениеПараметра("ОсновноеСредство", ОтборОсновноеСредство);
		
	КонецЕсли; 

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

&НаСервере
Процедура ОтборОсновноеСредствоПриИзмененииНаСервере()

	ЗаполнитьОтборПоВладельцуИУзлам();
	УстановитьТекстЗапросовДинамическихСписков();
	ПриИзмененииОтбора();

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

&НаКлиентеНаСервереБезКонтекста
Функция КлючНазначенияФормыПоУмолчанию()
	
	Возврат "ДокументыОС";
	
КонецФункции

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

&НаСервере
Процедура НастроитьКнопкиУправленияДокументами()
	
	СтруктураПараметров = ОбщегоНазначенияУТ.СтруктураПараметровНастройкиКнопокУправленияДокументами();
	СтруктураПараметров.Форма 												= ЭтаФорма;
	СтруктураПараметров.ИмяГруппыСоздать                                    = "СписокГруппаСоздатьГенерируемая";
	СтруктураПараметров.ИмяГруппыСоздатьКонтекст                            = "СписокГруппаСоздатьГенерируемаяКонтекст";
	СтруктураПараметров.ИмяКнопкиСкопировать                                = "СписокСкопировать";
	СтруктураПараметров.ИмяКнопкиСкопироватьКонтекстноеМеню                 = "СписокСкопироватьКонтекст";
	СтруктураПараметров.ИмяКнопкиИзменить                                   = "СписокИзменить";
	СтруктураПараметров.ИмяКнопкиИзменитьКонтекстноеМеню                    = "СписокИзменитьКонтекст";
	СтруктураПараметров.ИмяКнопкиПровести                                   = "СписокПровести";
	СтруктураПараметров.ИмяКнопкиПровестиКонтекстноеМеню                    = "СписокПровестиКонтекст";
	СтруктураПараметров.ИмяКнопкиОтменаПроведения                           = "СписокОтменаПроведения";
	СтруктураПараметров.ИмяКнопкиОтменаПроведенияКонтекстноеМеню            = "СписокОтменаПроведенияКонтекст";
	СтруктураПараметров.ИмяКнопкиУстановитьПометкуУдаления                  = "СписокУстановитьПометкуУдаления";
	СтруктураПараметров.ИмяКнопкиУстановитьПометкуУдаленияКонтекстноеМеню   = "СписокУстановитьПометкуУдаленияКонтекст";
	
	ОбщегоНазначенияУТ.НастроитьКнопкиУправленияДокументами(СтруктураПараметров);

	//
	СтруктураПараметров = ОбщегоНазначенияУТ.СтруктураПараметровНастройкиКнопокУправленияДокументами();
	СтруктураПараметров.Форма 												= ЭтаФорма;
	СтруктураПараметров.ИмяГруппыСоздать                                    = "СписокДетальноГруппаСоздатьГенерируемая";
	СтруктураПараметров.ИмяГруппыСоздатьКонтекст                            = "СписокДетальноГруппаСоздатьГенерируемаяКонтекст";
	СтруктураПараметров.ИмяКнопкиСкопировать                                = "СписокДетальноСкопировать";
	СтруктураПараметров.ИмяКнопкиСкопироватьКонтекстноеМеню                 = "СписокДетальноСкопироватьКонтекст";
	СтруктураПараметров.ИмяКнопкиИзменить                                   = "СписокДетальноИзменить";
	СтруктураПараметров.ИмяКнопкиИзменитьКонтекстноеМеню                    = "СписокДетальноИзменитьКонтекст";
	СтруктураПараметров.ИмяКнопкиПровести                                   = "СписокДетальноПровести";
	СтруктураПараметров.ИмяКнопкиПровестиКонтекстноеМеню                    = "СписокДетальноПровестиКонтекст";
	СтруктураПараметров.ИмяКнопкиОтменаПроведения                           = "СписокДетальноОтменаПроведения";
	СтруктураПараметров.ИмяКнопкиОтменаПроведенияКонтекстноеМеню            = "СписокДетальноОтменаПроведенияКонтекст";
	СтруктураПараметров.ИмяКнопкиУстановитьПометкуУдаления                  = "СписокДетальноУстановитьПометкуУдаления";
	СтруктураПараметров.ИмяКнопкиУстановитьПометкуУдаленияКонтекстноеМеню   = "СписокДетальноУстановитьПометкуУдаленияКонтекст";
	СтруктураПараметров.ПрефиксЭлементов                                    = "СписокДетально";
	
	ОбщегоНазначенияУТ.НастроитьКнопкиУправленияДокументами(СтруктураПараметров);
	
	//
	СтруктураПараметров = ОбщегоНазначенияУТ.СтруктураПараметровНастройкиКнопокУправленияДокументами();
	СтруктураПараметров.Форма 												= ЭтаФорма;
	СтруктураПараметров.ИмяГруппыСоздать                                    = "СписокАмортизацияГруппаСоздатьГенерируемая";
	СтруктураПараметров.ИмяГруппыСоздатьКонтекст                            = "СписокАмортизацияГруппаСоздатьГенерируемаяКонтекст";
	СтруктураПараметров.ИмяКнопкиСкопировать                                = "СписокАмортизацияСкопировать";
	СтруктураПараметров.ИмяКнопкиСкопироватьКонтекстноеМеню                 = "СписокАмортизацияСкопироватьКонтекст";
	СтруктураПараметров.ИмяКнопкиИзменить                                   = "СписокАмортизацияИзменить";
	СтруктураПараметров.ИмяКнопкиИзменитьКонтекстноеМеню                    = "СписокАмортизацияИзменитьКонтекст";
	СтруктураПараметров.ИмяКнопкиПровести                                   = "СписокАмортизацияПровести";
	СтруктураПараметров.ИмяКнопкиПровестиКонтекстноеМеню                    = "СписокАмортизацияПровестиКонтекст";
	СтруктураПараметров.ИмяКнопкиОтменаПроведения                           = "СписокАмортизацияОтменаПроведения";
	СтруктураПараметров.ИмяКнопкиОтменаПроведенияКонтекстноеМеню            = "СписокАмортизацияОтменаПроведенияКонтекст";
	СтруктураПараметров.ИмяКнопкиУстановитьПометкуУдаления                  = "СписокАмортизацияУстановитьПометкуУдаления";
	СтруктураПараметров.ИмяКнопкиУстановитьПометкуУдаленияКонтекстноеМеню   = "СписокАмортизацияУстановитьПометкуУдаленияКонтекст";
	СтруктураПараметров.ПрефиксЭлементов                                    = "СписокАмортизация";
	СтруктураПараметров.ИмяТаблицыХозяйственныхОперацийИДокументов          = "ХозяйственныеОперацииИДокументыАмортизация";
	
	ОбщегоНазначенияУТ.НастроитьКнопкиУправленияДокументами(СтруктураПараметров);
	
КонецПроцедуры

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

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

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

&НаСервере
Функция ПоместитьВоВременноеХранилищеХозяйственныеОперацииИДокументы()
	Возврат ПоместитьВоВременноеХранилище(ХозяйственныеОперацииИДокументы.Выгрузить(), УникальныйИдентификатор);
КонецФункции

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

&НаКлиентеНаСервереБезКонтекста
Функция ТекущийСписок(Форма)

	Если Форма.Элементы.Страницы.ТекущаяСтраница = Форма.Элементы.СтраницаДокументыДетально Тогда
		Возврат Форма.Элементы.СписокДетально;
	ИначеЕсли Форма.Элементы.Страницы.ТекущаяСтраница = Форма.Элементы.СтраницаАмортизация Тогда
		Возврат Форма.Элементы.СписокАмортизация;
	Иначе
		Возврат Форма.Элементы.Список;
	КонецЕсли; 

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

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

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

	#КонецОбласти
	
	#Область Обесценение
	
	Строка = ХозяйственныеОперацииИДокументы.Добавить();
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ОбесценениеОС;
	Строка.ПолноеИмяДокумента			= Метаданные.Документы.ОбесценениеВНА.ПолноеИмя();
	Строка.КлючНазначенияИспользования 	= КлючНазначенияИспользования;
	Строка.ЗаголовокРабочегоМеста	 	= НСтр("ru = 'Обесценение внеоборотных активов'");
	Строка.ДобавитьКнопкуСоздать        = Истина;

	#КонецОбласти
	
	#Область Резервы
	
	Строка = ХозяйственныеОперацииИДокументы.Добавить();
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.НачислениеСписаниеРезервовПредстоящихРасходов;
	Строка.ПолноеИмяДокумента			= Метаданные.Документы.НачислениеСписаниеРезервовПредстоящихРасходов.ПолноеИмя();
	Строка.КлючНазначенияИспользования 	= КлючНазначенияИспользования;
	Строка.ЗаголовокРабочегоМеста	 	= НСтр("ru = 'Резервы по ликвидационным обязательствам'");
	Строка.ДобавитьКнопкуСоздать        = Ложь;

	#КонецОбласти
	
	ВнеоборотныеАктивыЛокализация.ДополнитьХозяйственныеОперацииИДокументыОС(ХозяйственныеОперацииИДокументы, КлючНазначенияИспользования);
	
	ТаблицаЗначенийДоступно = ОбщегоНазначенияУТ.ДоступныеХозяйственныеОперацииИДокументы(
								ХозяйственныеОперацииИДокументы, 
								ОтборХозяйственныеОперации, 
								ОтборТипыДокументов, 
								КлючНазначенияИспользования);
	
	Возврат ТаблицаЗначенийДоступно;
		
КонецФункции

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

&НаКлиенте
Процедура ОбновитьДанныеКогдаФормаСтанетАктивной()

	ПодключитьОбработчикОжидания("Подключаемый_ОбновитьДанныеКогдаФормаСтанетАктивной", 0.8, Истина);

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

&НаКлиенте
Процедура Подключаемый_ОбновитьДанныеКогдаФормаСтанетАктивной()
	
	Если ВводДоступен() Тогда
		
		ОбновитьСписки();
		НачатьОбновлениеДанныхВФоне();
		
	Иначе
		ОбновитьДанныеКогдаФормаСтанетАктивной();
	КонецЕсли;

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

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

	Если Элементы.Список.Видимость Тогда
		// НастройкиДинамическихСписков
		ОбновитьСписокДокументовСобытиеОбработкаОповещения("Список");
		// Конец НастройкиДинамическихСписков
	КонецЕсли;
	
	Если Элементы.СписокДетально.Видимость Тогда
		Элементы.СписокДетально.Обновить();
	КонецЕсли;

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

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

&НаСервере
Процедура ЗаполнитьОтборПоВладельцуИУзлам()

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

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

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

#Область ШтрихкодыИТорговоеОборудование

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

&НаКлиенте
Процедура ОбработатьШтрихкоды(Данные)
	
	Состояние(НСтр("ru = 'Выполняется поиск документа по штрихкоду...'"));
	ДанныеПоШтрихКоду = ДанныеПоШтрихКодуПечатнойФормы(Данные.Штрихкод, "Список");
	ОбщегоНазначенияУТКлиент.ОбработатьШтрихкоды(Данные.Штрихкод, ДанныеПоШтрихКоду, ЭтаФорма, "Список");
	
КонецПроцедуры

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

#Область ГиперссылкаКОформлению

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

&НаСервере
Функция НачатьОбновлениеДанныхВФонеНаСервере()

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

	ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор);
	
	ДлительнаяОперация = ДлительныеОперации.ВыполнитьФункцию(
		ПараметрыВыполнения, "Обработки.ЖурналДокументовОС2_4.ДанныеРабочегоМеста", ПараметрыФункции);
	
	Если ДлительнаяОперация.Статус = "Выполняется" Тогда
		ТекстИдетОбновлениеДанных = НСтр("ru = 'К оформлению: <идет обновление данных>'");
		КОформлению = Новый ФорматированнаяСтрока(ТекстИдетОбновлениеДанных);
	КонецЕсли;

	Возврат ДлительнаяОперация;
	
КонецФункции

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

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

&НаСервере
Процедура ОбновлениеДанныхВФонеЗавершениеНаСервере(Знач АдресРезультата)
	
	Результат = ПолучитьИзВременногоХранилища(АдресРезультата);

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

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

#Область НастройкиДинамическихСписков

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

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

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

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

&НаСервере
Функция ПолучитьИсполняемыеНастройкиКомпоновкиДанных(ИмяСписка)
	
	ИмяЭлемента = РаботаСЖурналамиДокументов.ЗначениеНастройкиСпискаДокументов(ЭтотОбъект, ИмяСписка,
		"ИмяЭлементаСписка");
	ЭлементФормыСписок = Элементы[ИмяЭлемента];
	НастройкиКомпоновкиДанных = ЭлементФормыСписок.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();

	СтруктураВозврата = Новый Структура;
	СтруктураВозврата.Вставить("НастройкиКомпоновкиДанных", НастройкиКомпоновкиДанных);

	СписокПолейСоставногоТипа = РаботаСЖурналамиДокументов.ЗначениеНастройкиСпискаДокументов(ЭтотОбъект,
		ИмяСписка, "СписокПолейСоставногоТипа");

	СтруктураПользовательскихНастроек = РаботаСЖурналамиДокументов.ПроверитьПользовательскиеНастройкиДинамическогоСписка(
		НастройкиКомпоновкиДанных, СписокПолейСоставногоТипа);

	СтруктураВозврата.Вставить("СтруктураПользовательскихНастроек", СтруктураПользовательскихНастроек);
	
	Возврат СтруктураВозврата;
	
КонецФункции

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

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

	Если Не УчитыватьПараметрАвтообновления Тогда

		ТребуетсяОбновлениеСписка = Истина;

	Иначе

		ТребуетсяОбновлениеСписка = РаботаСЖурналамиДокументовКлиент.ЗначениеНастройкиАвтообновленияСпискаДокументов(
			ЭтотОбъект, ИмяСписка);

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

	КонецЕсли;

	Если ТребуетсяОбновлениеСписка Тогда

		РаботаСЖурналамиДокументовКлиент.ОбновитьДанныеСпискаДокументовСЗамеромВремени(ЭтотОбъект, ИмяСписка);
		ОтображениеГруппыПользовательскихОтборовИНастроек(ИмяСписка);

	КонецЕсли;

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

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

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

// Обработка события элемента формы.
// 
// Параметры:
//  Элемент - ПолеФормы
//@skip-check module-unused-method
&НаКлиенте
Процедура СписокДокументовОбработкаСобытияЭлементаФормы(Элемент)

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

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

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

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