ВПФ ДЛЯ ЗУП 3.1.4 не выводит параметры в макет

1. excess713 17.02.18 17:46 Сейчас в теме
Подскажите, почему запрос выводится пустым?
Ссылка на объект "Сотрудник" передается, ошибок нет, ВПФ выводится на печать.

Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("3.1.14.167");
	
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
	ПараметрыРегистрации.Версия = "1.0.1";
	ПараметрыРегистрации.Назначение.Добавить("Справочник.Сотрудники");
	ПараметрыРегистрации.БезопасныйРежим = Истина;
	
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = НСтр("ru = 'Договор БВС'");
	НоваяКоманда.Идентификатор = "ДоговорБВС";
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
	НоваяКоманда.ПоказыватьОповещение = Истина;
Возврат ПараметрыРегистрации;  
КонецФункции

Функция СформироватьЗапросДляПечатиТрудовогоДоговора(СсылкаНаОбъект)

	Запрос = Новый Запрос;

	//Установим параметры запроса
	Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
	Запрос.УстановитьПараметр("ВидДокумента", Справочники.ВидыДокументовФизическихЛиц.ПаспортРФ);

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

КонецФункции // СформироватьЗапросДляПечати()

Функция СформироватьЗапросРуководительДляПечатиТрудовогоДоговора(СсылкаНаОбъект)

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

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

КонецФункции 

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
	
	Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ДоговорБВС") Тогда
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ДоговорБВС", "Договор БВС", 
			СформироватьПечатнуюФормуДоговорБВС(МассивОбъектов, ОбъектыПечати));
	КонецЕсли;
КонецПроцедуры


Функция СформироватьПечатнуюФормуДоговорБВС(МассивОбъектов, ОбъектыПечати) Экспорт
	СсылкаНаОбъект = МассивОбъектов[0];
	Сообщить(СсылкаНаОбъект);
	

	
	ТабДокумент = Новый ТабличныйДокумент;
	ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТрудовойДоговор_Печать";
		
	// получаем данные для печати
	Выборка = СформироватьЗапросДляПечатиТрудовогоДоговора(СсылкаНаОбъект).Выбрать();
		
		// получаем макет
	МакетДоговора = ПолучитьМакет("Макет");
	Макет = МакетДоговора.ПолучитьОбласть("Договор");
		
		// выводим данные 
		Пока Выборка.Следующий() Цикл
			Макет.Параметры.ФИОРаботника = "" + Выборка.Фамилия + " " + Выборка.Имя + " " + Выборка.Отчество;
			Макет.Параметры.ПолноеНазваниеОрганизации = Выборка.ГоловнаяОрганизацияНаименованиеПолное;
			Макет.Параметры.НомерДок = Выборка.НомерДоговораКонтракта;
			Макет.Параметры.ДатаДок = Выборка.ДатаДоговораКонтракта;
			Макет.Параметры.АдресОрганизации = Выборка.ГоловнаяОрганизацияАдресЭП;
			Макет.Параметры.ТелефоныОрганизации = Выборка.ГоловнаяОрганизацияНомерТелефона;
			Макет.Параметры.АдресРегистрации = Выборка.АдресЭП;
			Макет.Параметры.Телефоны = Выборка.НомерТелефона;
			Макет.Параметры.ДокументНомер = "" + Выборка.Серия + " " + Выборка.Номер;
			Макет.Параметры.ДокументДатаВыдачи = Выборка.ДатаВыдачи;
			Макет.Параметры.ДокументКемВыдан = Выборка.КемВыдан;
			
			//Макет.Параметры.ИспытательныйСрокСтрокой = ?(НЕ ЗначениеЗаполнено(Выборка.ИспытательныйСрок),"", "" + Выборка.ИспытательныйСрок + " месяца(ев)" );
			//Макет.Параметры.РежимРаботы = "" + Выборка.ВидГрафика + "; " + Выборка.ДлительностьРабочейНедели + " - часовая рабочая неделя";
			//Макет.Параметры.ФормаОплаты = "Форма оплаты: " + Выборка.ВидРасчета + "; Оклад (тариф) = " + Выборка.ТарифнаяСтавка + " ("+Выборка.ВалютаТарифнойСтавки+")";  
			//Макет.Параметры.ПолноеНазваниеОрганизации = СокрЛП(Макет.Параметры.ПолноеНазваниеОрганизации);
			//Макет.Параметры.ДокументКемВыдан = СокрЛП(Макет.Параметры.ДокументКемВыдан);
			//
			//ВыборкаПерсональныхНадбавок = Выборка.ПерсональныеНадбавки.Выбрать();
			//Если ВыборкаПерсональныхНадбавок.Количество()>0 Тогда
			//	СтрокаНадбавки = "Персональные надбавки: ";
			//	Пока ВыборкаПерсональныхНадбавок.Следующий() Цикл
			//		СтрокаНадбавки = СтрокаНадбавки + ВыборкаПерсональныхНадбавок.Надбавка + "- " + ВыборкаПерсональныхНадбавок.Показатель1 + "; ";
			//	КонецЦикла; 
			//	Макет.Параметры.Надбавки = СтрокаНадбавки;
			//КонецЕсли; 
		
		
		// выводим готовый документ
		ВыборкаРуководитель = СформироватьЗапросРуководительДляПечатиТрудовогоДоговора(Выборка.ГоловнаяОрганизация1).Выбрать();
		Пока ВыборкаРуководитель.Следующий() Цикл
			Макет.Параметры.ДолжностьРуководителя = ВыборкаРуководитель.ДолжностьРуководителяНаименование;
			Макет.Параметры.ФИОРуководителя = ВыборкаРуководитель.РуководительФИО; 
		КонецЦикла;
		КонецЦикла;

		ТабДокумент.Вывести(Макет);
		
	Возврат ТабДокумент;
	
КонецФункции // Печать
Показать
Найденные решения
5. excess713 18.02.18 18:25 Сейчас в теме
Решилась проблема, можно смеяться и плакать.
Проблема была все таки в передачи ссылки на объект.
Чтобы все заработало надо было сделать следующие магические манипуляции:
вместо этого
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ДоговорБВС") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ДоговорБВС", "Договор БВС", 
            СформироватьПечатнуюФормуДоговорБВС(МассивОбъектов, ОбъектыПечати));
    КонецЕсли;
КонецПроцедуры


Функция СформироватьПечатнуюФормуДоговорБВС(МассивОбъектов, ОбъектыПечати) Экспорт
    СсылкаНаОбъект = МассивОбъектов[0];
Показать

написать это
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ДоговорБВС") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ДоговорБВС", "Договор БВС", 
            СформироватьПечатнуюФормуДоговорБВС(МассивОбъектов[0], ОбъектыПечати));
    КонецЕсли;
КонецПроцедуры


Функция СформироватьПечатнуюФормуДоговорБВС(СсылкаНаОбъект, ОбъектыПечати) Экспорт
    
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. leosoft 165 17.02.18 19:01 Сейчас в теме
Может попробовать безопасный режим переключить в Ложь?
3. user705522_constantin_h 35 17.02.18 19:29 Сейчас в теме
А у вас в РегистрСведений.СведенияКонтрактаДоговораСотрудника.СрезПоследних есть записи, проверяли через контроль запросов?

И условия:
Сотрудники.Ссылка = &Ссылка
И ДокументыФизическихЛицСрезПоследних.ВидДокумента = &ВидДокумента
И СведенияКонтрактаДоговораСотрудникаСрезПоследних.Сотрудник = &Ссылка";
соответствуют имеющимся данным в базе?
4. excess713 18.02.18 07:16 Сейчас в теме
Безопасный режим сменила, ничего не поменялось.
В РС во всех есть данные, вывела даже простой запрос:
Запрос.Текст =
	"ВЫБРАТЬ
	|	Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация
	|ИЗ
	|	Справочник.Сотрудники КАК Сотрудники
	|ГДЕ
	|	Сотрудники.Ссылка = &Ссылка";


Он также в цикл заполнения макета не зашел
 Пока Выборка.Следующий() Цикл
            Макет.Параметры.ФИОРаботника = "" + Выборка.Фамилия + " " + Выборка.Имя + " " + Выборка.Отчество;
            Макет.Параметры.ПолноеНазваниеОрганизации = Выборка.ГоловнаяОрганизацияНаименованиеПолное;
            Макет.Параметры.НомерДок = Выборка.НомерДоговораКонтракта;
            Макет.Параметры.ДатаДок = Выборка.ДатаДоговораКонтракта;
            Макет.Параметры.АдресОрганизации = Выборка.ГоловнаяОрганизацияАдресЭП;
            Макет.Параметры.ТелефоныОрганизации = Выборка.ГоловнаяОрганизацияНомерТелефона;
            Макет.Параметры.АдресРегистрации = Выборка.АдресЭП;
            Макет.Параметры.Телефоны = Выборка.НомерТелефона;
            Макет.Параметры.ДокументНомер = "" + Выборка.Серия + " " + Выборка.Номер;
            Макет.Параметры.ДокументДатаВыдачи = Выборка.ДатаВыдачи;
            Макет.Параметры.ДокументКемВыдан = Выборка.КемВыдан;         
           
КонецЦикла;
Показать


Похоже, что проблема в передаче ссылки на объект, но что не так понять не могу. Проверяла и на демке, данные параметров тоже не выводит.
5. excess713 18.02.18 18:25 Сейчас в теме
Решилась проблема, можно смеяться и плакать.
Проблема была все таки в передачи ссылки на объект.
Чтобы все заработало надо было сделать следующие магические манипуляции:
вместо этого
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ДоговорБВС") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ДоговорБВС", "Договор БВС", 
            СформироватьПечатнуюФормуДоговорБВС(МассивОбъектов, ОбъектыПечати));
    КонецЕсли;
КонецПроцедуры


Функция СформироватьПечатнуюФормуДоговорБВС(МассивОбъектов, ОбъектыПечати) Экспорт
    СсылкаНаОбъект = МассивОбъектов[0];
Показать

написать это
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ДоговорБВС") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ДоговорБВС", "Договор БВС", 
            СформироватьПечатнуюФормуДоговорБВС(МассивОбъектов[0], ОбъектыПечати));
    КонецЕсли;
КонецПроцедуры


Функция СформироватьПечатнуюФормуДоговорБВС(СсылкаНаОбъект, ОбъектыПечати) Экспорт
    
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот