///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

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

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

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

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

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

	Если ПроверитьЗаполнение() Тогда
		Закрыть(ОсновнаяПечатнаяФорма - 1);
	КонецЕсли;
	
КонецПроцедуры

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

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

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

&НаСервере
Процедура ОбработатьИдентификаторыКомплекта()
	
	Для Каждого Команда Из Параметры.КомандыПечати Цикл
		Если СтрНайти(Команда.Идентификатор, ",") Тогда
			Команда.Идентификатор = СтрРазделить(Команда.Идентификатор, ",", Ложь)[0];
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры

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