Объекты эксплуатации / Поиск по штрихкоду / Модуль формы

файл

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

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

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

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

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

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

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

&НаКлиенте
Процедура СнятьФлажки(Команда)
	ИзменитьПометку(Ложь);
КонецПроцедуры

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

	Закрыть(РезультатВыбора);
	
КонецПроцедуры

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

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

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

	Для Каждого ДанныеСтроки Из РезультатПоиска Цикл
		ДанныеСтроки.Пометка = Пометка;
	КонецЦикла;
	
КонецПроцедуры

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

&НаСервере
Процедура ДобавитьРезультатПоиска(МассивОбъектов)

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

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

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