проблемы с заполнением параметров

1. pororun56 25.12.20 07:42 Сейчас в теме
Здравствуйте, подскажите плз, есть печатная форма внешняя, при выборе которой открывается форма с выбором сотрудников которых нужно внести в печатную форму, в модуле объекта заполняются параметры шаблона печатной формы, проблема состоит в том, что когда нажимаю кнопку печать на форме, заполняются параметры только которые я указал на форме, а остальные параметры не заполняются которые я взял с запроса. Вот код. помогите пожалуйста ! не пойму ошибку

Это код модуля:





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

	запрос = запрос.Выполнить();
	выборка = запрос.Выбрать();
	выборка.Следующий();
	
	макет = получитьмакет("Макет");
	
	Секцияшапка = макет.ПолучитьОбласть("Шапка");
	Секциятело = макет.ПолучитьОбласть("тело");
	Секцияподвал = макет.ПолучитьОбласть("подвал");
	
	

	
	
	Секцияшапка.Параметры.датадок = формат(выборка.дата,"ДФ=dd.MM.yyyy") ;
	секцияшапка.Параметры.номердог = прав(выборка.номер, 6);
	секцияшапка.параметры.основныесредства = выборка.ОсновноеСредство;
	секцияшапка.параметры.инвномер = Прав(выборка.ИнвентарныйНомер, 6);
	секцияшапка.Параметры.номердоговор = выборка.ДоговорКонтрагента1;
	табдок.Вывести(Секцияшапка);
	
	
	Секциятело.Параметры.оснсредства = выборка.ОсновноеСредство;
	Секциятело.параметры.датадок = формат(выборка.дата,"ДФ=dd.MM.yyyy");
	секциятело.параметры.группаос = выборка.ОсновноеСредствоГруппаОС;
	Секциятело.параметры.кодокоф = выборка.ОсновноеСредствоКодПоОКОФ;
	Секциятело.Параметры.срокос = выборка.срокполезногоиспользованиябу;
	Секциятело.Параметры.оснсредства = выборка.ОсновноеСредство;
	Секциятело.параметры.инвномер = прав(выборка.ИнвентарныйНомер,6);
	Секциятело.Параметры.матответственный = выборка.молбу;
	Секциятело.параметры.местоэксплуатации = выборка.подразделениеорганизации;
	Секциятело.Параметры.местонахожденияос = выборка.МестонахождениеОС;
	табдок.Вывести(секциятело);
	
	
	Секцияподвал.Параметры.Сотрудник1 = Сотрудник1;
	Секцияподвал.Параметры.сотрудник2 = Сотрудник2;
	Секцияподвал.Параметры.сотрудник3 = Сотрудник3;
	Секцияподвал.Параметры.Должность1 = должность1;
	Секцияподвал.Параметры.Должность2 = должность2;
	Секцияподвал.Параметры.Должность3 = должность3;
	Табдок.Вывести(Секцияподвал);
	
	
	
	возврат табдок;					
	
	
конецфункции

Функция СведенияОВнешнейОбработке() Экспорт

	Назначение = Новый Массив;
	Назначение.Добавить("Документ.ПринятиеКУчетуОС");

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

	НоваяКоманда = ТаблицаКоманд.Добавить();
	НоваяКоманда.Представление = "Договор о приобретении ОС";
	НоваяКоманда.Идентификатор = "Договор о приобретении ОС";
	НоваяКоманда.Использование = "ОткрытиеФормы";
	НоваяКоманда.ПоказыватьОповещение = Истина;
	НоваяКоманда.Модификатор = "ПечатьMXL";


	ПараметрыРегистрации = Новый Структура;

	ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
	ПараметрыРегистрации.Вставить("Назначение", Назначение);
	ПараметрыРегистрации.Вставить("Наименование", НСтр("Договор о приобретении ОС"));
	ПараметрыРегистрации.Вставить("Версия", "1.0");
	ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
	ПараметрыРегистрации.Вставить("Информация", "Печатная форма приобретения ОС ");
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

	Возврат ПараметрыРегистрации;

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


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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление; 
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры


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

КонецПроцедуры 


Это код в самой форме 



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

&НаСервере
Функция ПечатьНаСервере(КомандаПечати)
    
    МассивОбъектов = Новый Массив();
    МассивОбъектов.Добавить(Объект.СсылканаОбъект);
    
    КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(КомандаПечати);
    ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();    
    
    ОбъектыПечати = Новый СписокЗначений;
    
    ОбъектВЗначении = РеквизитФормыВЗначение("Объект");
    ОбъектВЗначении.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);    
	
	Возврат ОбщегоНазначения.ТаблицаЗначенийВМассив(КоллекцияПечатныхФорм);
     
КонецФункции
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. pororun56 25.12.20 07:45 Сейчас в теме
При работе такого кода заполнение печатной формы происходит только секции "Подвал" а секция "шапка" и "тело" не заполняется параметрами
3. pororun56 25.12.20 08:06 Сейчас в теме
в каком месте я не передал эти параметры?
4. gzharkoj 523 25.12.20 08:35 Сейчас в теме
(3) Скорее всего выборка пустая
5. pororun56 25.12.20 08:39 Сейчас в теме
(4) через консоль запросов проверяю все работает, в самом макете тоже все хорошо прописано(все параметры) у меня предположение что я их как то просто не передал , только так могу обьяснить
6. pororun56 25.12.20 08:42 Сейчас в теме
(5) с массивом объектов что то моим
7. gzharkoj 523 25.12.20 08:43 Сейчас в теме
(6) Через консоль проверять не то же самое, так как надо проверять параметры запроса, а не сам запрос, сделай в своей печатной форме код
Результат = запрос.Выполнить();
Если Результат.Пустой() Тогда
сообщить("Что-то пошло не так");
КонецЕсли;
8. pororun56 25.12.20 08:49 Сейчас в теме
(7) Вы правы результат пустой, подскажите пожалуйста что нужно делать
11. gzharkoj 523 25.12.20 09:49 Сейчас в теме
(8) Посмотреть, что у вас приходит в МассивОбъектов для начала, если ничего то посмотреть правильно ли организована внешний отчет/печатная форма/обработка
9. andy_zhav 197 25.12.20 09:05 Сейчас в теме
(8) Мне кажется что-то с использованием подсистемы печати не правильно. Сходу не видно, надо отлаживать. Попробуйте сделать функцию ПечатьОпринятииОС в модуле объекта экспортной и вызвать ее непосредственно, не через функцию печать.

НаСервере
Функция ПечатьНаСервере(КомандаПечати)

МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(Объект.СсылканаОбъект);

ОбъектВЗначении = РеквизитФормыВЗначение("Объект");
Возврат ОбъектВЗначении.ПечатьОпринятииОС(МассивОбъектов);

КонецФункции
Показать
10. andy_zhav 197 25.12.20 09:06 Сейчас в теме
(8) И проверьте тип Объект.СсылкаНаОбъект. Может у вас там не ДокументСсылка?
12. pororun56 25.12.20 10:19 Сейчас в теме
(10)
Прикрепленные файлы:
13. pororun56 25.12.20 10:20 Сейчас в теме
(10)Не пойму как посмотреть что приходит в массивобъектов, простите) скорей всего ничего не приходит, может я что то неправильно указываю или написал
Оставьте свое сообщение

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