Наработка объектов эксплуатации / Форма документа / Модуль формы

файл

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

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

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	ПриЧтенииСозданииНаСервере();

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

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

	МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
	
КонецПроцедуры

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

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

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

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

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

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

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

	МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура НаработкиУзелФормыПриИзменении(Элемент)
	
	ТекущиеДанные = Элементы.Наработки.ТекущиеДанные;

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

&НаКлиенте
Процедура НаработкиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	НаработкиОбработкаВыбораНаСервере(ВыбранноеЗначение);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ЗагрузитьДанныеИзТСД(Команда)
	
	ВыполнитьЗагрузкуДанныеИзТСД();
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

// СтандартныеПодсистемы.Свойства 

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

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

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

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

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

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

// Конец СтандартныеПодсистемы.Свойства

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

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

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

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

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

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

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


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

#Область Прочее

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

	УсловноеОформление.Элементы.Очистить();

	//

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

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.НаработкиОбъектФормы.Имя);

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

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

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

&НаСервере
Процедура ЗаполнитьДополнительныеРеквизитыНаработок(Знач ДанныеЗаполнения, Знач Строки = Неопределено)
	
	Запрос = Новый Запрос(
		"ВЫБРАТЬ
		|	(ВЫРАЗИТЬ(ДанныеЗаполнения.НомерСтроки КАК ЧИСЛО)) - 1 КАК ИндексСтроки,
		|	ДанныеЗаполнения.ОбъектЭксплуатации КАК ОбъектЭксплуатации
		|ПОМЕСТИТЬ ДанныеЗаполнения
		|ИЗ
		|	&ДанныеЗаполнения КАК ДанныеЗаполнения
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	ДанныеЗаполнения.ИндексСтроки,
		|	Объекты.Ссылка
		|		КАК ОбъектФормы
		|ИЗ
		|	ДанныеЗаполнения КАК ДанныеЗаполнения
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОбъектыЭксплуатации КАК Объекты
		|		ПО ДанныеЗаполнения.ОбъектЭксплуатации = Объекты.Ссылка
		|");
	
	Запрос.УстановитьПараметр("ИспользоватьУзлы", ИспользоватьУзлыОбъектовЭксплуатации);
	Запрос.УстановитьПараметр(
		"ДанныеЗаполнения",
		ДанныеЗаполнения.Выгрузить(
			Строки,
			"НомерСтроки, ОбъектЭксплуатации"));
	
	Результат = Запрос.Выполнить();
	Если Результат.Пустой() Тогда
		Возврат;
	КонецЕсли;
	
	Выборка = Результат.Выбрать();
	Пока Выборка.Следующий() Цикл
		
		ЗаполнитьЗначенияСвойств(Объект.Наработки[Выборка.ИндексСтроки], Выборка);
		
	КонецЦикла;
	
КонецПроцедуры

&НаСервере
Процедура НаработкиОбработкаВыбораНаСервере(Знач ВыбранноеЗначение)

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

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

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

&НаСервереБезКонтекста
Функция ВладелецУзла(Знач Узел)

	Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Узел, "Владелец");
	
КонецФункции

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

	КонецЦикла;
	
	ЗаполнитьДополнительныеРеквизитыНаработок(Объект.Наработки, ДобавленныеСтроки);
	
КонецПроцедуры

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

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

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

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