Здравствуйте, подскажите плз, есть печатная форма внешняя, при выборе которой открывается форма с выбором сотрудников которых нужно внести в печатную форму, в модуле объекта заполняются параметры шаблона печатной формы, проблема состоит в том, что когда нажимаю кнопку печать на форме, заполняются параметры только которые я указал на форме, а остальные параметры не заполняются которые я взял с запроса. Вот код. помогите пожалуйста ! не пойму ошибку
Это код модуля:
Это код модуля:
функция ПечатьОпринятииОС(МассивОбъектов)
табдок = новый табличныйдокумент;
//табдок.ИмяПараметровПечати = "ПараметрыПечати_приказ";
запрос = новый запрос ();
запрос.текст = "ВЫБРАТЬ
| ПринятиеКУчетуОС.Номер КАК Номер,
| ПринятиеКУчетуОС.Дата КАК Дата,
| ПринятиеКУчетуОС.МОЛБУ КАК МОЛБУ,
| ПринятиеКУчетуОС.СрокПолезногоИспользованияБУ КАК СрокПолезногоИспользованияБУ,
| ПринятиеКУчетуОС.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
| ПринятиеКУчетуОСОС.ОсновноеСредство КАК ОсновноеСредство,
| ПринятиеКУчетуОСОС.ИнвентарныйНомер КАК ИнвентарныйНомер,
| ПринятиеКУчетуОСОС.Ссылка.ДоговорКонтрагента КАК ДоговорКонтрагента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.1 правил обмена данными ЗУП 2.5 -> БП 3.0. Выгрузка ведомостей и банковских счетов. Передача параметров обмена из Источника в Приемник. ВыгрузитьПоПравилу(). ПередатьОдинПараметрВПриемник().
- Отчет на СКД с использованием форм из БСП. Варианты передачи списка значений в параметр СКД
- Параметры открытия формы выбора отборов и параметров СКД ("связи параметров выбора" списочных значений СКД)
- Сбор всех параметров табличного документа с RegExp
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(8) Мне кажется что-то с использованием подсистемы печати не правильно. Сходу не видно, надо отлаживать. Попробуйте сделать функцию ПечатьОпринятииОС в модуле объекта экспортной и вызвать ее непосредственно, не через функцию печать.
НаСервере
Функция ПечатьНаСервере(КомандаПечати)
МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(Объект.СсылканаОбъект);
ОбъектВЗначении = РеквизитФормыВЗначение("Объект");
Возврат ОбъектВЗначении.ПечатьОпринятииОС(МассивОбъектов);
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот