Шаблоны ввода исходных данных / Печатные формы / Модуль формы

файл

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

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

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

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

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

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

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

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

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

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

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

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

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