Untitled

 avatar
unknown
plain_text
2 years ago
15 kB
3
Indexable
Функция СведенияОВнешнейОбработке() Экспорт
	
	Инфо = Новый Структура;
	
	Инфо.Вставить("Вид",             "ПечатнаяФорма");
	Инфо.Вставить("Команды",         Новый ТаблицаЗначений);
	Инфо.Вставить("БезопасныйРежим", Истина);
	Инфо.Вставить("Назначение",      Новый Массив);
	
	Инфо.Вставить("Наименование", НСтр("ru = 'Регистрация агента (печатные формы)'"));
	Инфо.Вставить("Версия",       "1.0");
	Инфо.Вставить("ВерсияБСП",    "1.2.1.4");
	Инфо.Вставить("Информация",    НСтр("ru = 'Регистрация агента (печатные формы)'"));
	
	Колонки = Инфо.Команды.Колонки;
	ТипСтрока = Новый ОписаниеТипов("Строка");
	Колонки.Добавить("Представление", ТипСтрока);
	Колонки.Добавить("Идентификатор", ТипСтрока);
	Колонки.Добавить("Использование", ТипСтрока);
	Колонки.Добавить("Модификатор",   ТипСтрока);
	Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
	
	Команда = Инфо.Команды.Добавить();
	Команда.Представление = НСтр("ru = 'Печать договора об возмездном оказании услуг'");
	Команда.Идентификатор = "ПечатьДВОУ";
	Команда.Использование = "ВызовСерверногоМетода";
	
	Команда = Инфо.Команды.Добавить();
	Команда.Представление = НСтр("ru = 'Печать договора об возмездном оказании услуг для самозанятых'");
	Команда.Идентификатор = "ПечатьДВОУ_Самозанятые";
	Команда.Использование = "ВызовСерверногоМетода";
	
	Команда = Инфо.Команды.Добавить();
	Команда.Представление = НСтр("ru = 'Печать политики конфиденциальности'");
	Команда.Идентификатор = "ПечатьПолитикаКонфиденциальности";
	Команда.Использование = "ВызовСерверногоМетода";
	
	Команда = Инфо.Команды.Добавить();
	Команда.Представление = НСтр("ru = 'Печать пользовательское соглашение'");
	Команда.Идентификатор = "ПечатьПользовательскоеСоглашение";
	Команда.Использование = "ВызовСерверногоМетода";
	
	Возврат Инфо;
	
КонецФункции

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

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

	ПараметрыКоманды.РезультатВыполнения.Вставить("ПечатнаяФорма", ТабДок);
	ПараметрыКоманды.РезультатВыполнения.Вставить("ИмяБезРасширения", ИмяБезРасширения);
	
КонецПроцедуры

Функция ПолучитьВидПрисоединенногоДокумента(ИдентификаторКоманды)
	
	Если ИдентификаторКоманды = "ДВОУ" Тогда
		Возврат Справочники.ВидыПрисоединенныхДокументов.ДВОУ;
	ИначеЕсли ИдентификаторКоманды = "ДВОУСЗ" Тогда
		Возврат Справочники.ВидыПрисоединенныхДокументов.ДВОУ_Самозанятые;
	ИначеЕсли ИдентификаторКоманды = "ПолитикаКонфиденциальности" Тогда
		Возврат Справочники.ВидыПрисоединенныхДокументов.ПолитикаКонфиденциальности;
	ИначеЕсли ИдентификаторКоманды = "ПользовательскоеСоглашение" Тогда
		Возврат Справочники.ВидыПрисоединенныхДокументов.ПользовательскоеСоглашение;
	Иначе 
		Возврат Неопределено;
	КонецЕсли;
	
КонецФункции	
Editor is loading...
Leave a Comment