Доброго времени суток!
Столкнулся с проблемой в коде обработки внешней печатной формы.
Сразу скажу, что азы программирования в 1с я только постигаю, и не владею им как некоторые на этом форуме.
Собственно перейду к сути, печатная форма выводит список сотрудников, дату регистрации документа, номер, и наименование.
Последняя функция и немного текста кода из последней процедуры добавлены мной.
Функцию добавил в конце с целью с помощью неё добавить вывод наименования документа, что напишет пользователь при его создании, на данную печатную форму, что бы его не пришлось писать в ручкой на бумаге.
Знаю что можно как то добавить параметр в коде, и наименование документа будет выводится, но как именно пока не понял.
Строки в последней функции которые я закомментировал, взяты были с другого примера, и вместо них нужно что-то другое, насчёт пути к справочнику, и элементу формы тоже не уверен, правильно ли я его написал.
Во вложении скриншот того, как форма выводится на печать, без наименования и других реквизитов.
Вот сам код обработки:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Назначение", ВернутьОбъектыНазначенияПФ());
ПараметрыРегистрации.Вставить("Наименование", "Указатель рассылки");
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
ПараметрыРегистрации.Вставить("Версия", "1.01");
ПараметрыРегистрации.Вставить("Информация", "УказательРассылки");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, "Указатель рассылки", "УказательРассылки", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
Функция ВернутьОбъектыНазначенияПФ()
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Справочник.ВнутренниеДокументы");
Возврат МассивНазначений;
КонецФункции
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ВнДокумент = МассивОбъектов[0];
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ШаблоныОзнакомленияИсполнители.НомерСтроки КАК НомерСтроки,
| ШаблоныОзнакомленияИсполнители.Исполнитель КАК Исполнитель,
| КомплексныйПроцессПредметы.Ссылка.Автор КАК Автор
|ИЗ
| Справочник.ШаблоныОзнакомления.Исполнители КАК ШаблоныОзнакомленияИсполнители
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ БизнесПроцесс.КомплексныйПроцесс.Предметы КАК КомплексныйПроцессПредметы
| ПО ШаблоныОзнакомленияИсполнители.Ссылка.ВладелецШаблона = КомплексныйПроцессПредметы.Ссылка
| И (КомплексныйПроцессПредметы.Предмет = &Предмет)";
Запрос.УстановитьПараметр("Предмет", ВнДокумент);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
ТабДок = Новый ТабличныйДокумент;
Макет = ЭтотОбъект.ПолучитьМакет("УказательРассылки");
ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка");
ВидДокумента = "";
Если ВнДокумент.ВидДокумента.Наименование = "Приказы" Или ВнДокумент.ВидДокумента.Наименование = "Приказы по административно-хозяйственной деятельности" Или ВнДокумент.ВидДокумента.Наименование = "Приказы по вопросам основной деятельности" Тогда
ВидДокумента = "приказу";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Распоряжения (общезаводские)" ИЛИ ВнДокумент.ВидДокумента.Наименование = "Распоряжения (по подразделению)" Тогда
ВидДокумента = "распоряжению";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Локальные нормативные акты" Тогда
ВидДокумента = "локально-нормативному акту";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Служебные записки" Тогда
ВидДокумента = "служебной записке";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Акт" Тогда
ВидДокумента = "акту";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Акт о несоответствии" Тогда
ВидДокумента = "акту о несоответствии";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Доверенности" Тогда
ВидДокумента = "доверенности";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Договор" Тогда
ВидДокумента = "договору";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Должностная инструкция" Тогда
ВидДокумента = "должностной инструкции";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Протоколы совещаний" Тогда
ВидДокумента = "протоколу совещаний";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Расписка" Тогда
ВидДокумента = "расписке";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Протокол разногласий к договору" Тогда
ВидДокумента = "протоколу разногласий к договору";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Положение" Тогда
ВидДокумента = "положению";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Заявка на оплату заказа" Тогда
ВидДокумента = "заявке на оплату заказа";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Заявка на открытие ззказа" Тогда
ВидДокумента = "заявке на открытие заказа";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Дополнительное соглашение к договору" Тогда
ВидДокумента = "дополнительному соглашению к договору";
ИначеЕсли ВнДокумент.ВидДокумента.Наименование = "Бланк замены" Тогда
ВидДокумента = "бланку замены";
КонецЕсли;
ОбластьМакетаШапка.Параметры.ВидДокумента = ВидДокумента;
Табдок.Вывести(ОбластьМакетаШапка);
ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка");
Для Каждого Стр Из РезультатЗапроса Цикл
ОбластьМакетаСтрока.Параметры.НомерПП = Стр.НомерСтроки;
ОбластьМакетаСтрока.Параметры.Ответственный = ?(Стр.Исполнитель = "Автор процесса", Стр.Автор, Стр.Исполнитель);
Табдок.Вывести(ОбластьМакетаСтрока);
КонецЦикла;
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УказательРассылки", "Указатель рассылки", ТабДок);
КонецПроцедуры
Функция ПолучитьНаименованиеДокумента(Заголовок)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
//| ФизическиеЛицаУдалитьТрудоваяДеятельность.Ссылка КАК Ссылка,
//| ФизическиеЛицаУдалитьТрудоваяДеятельность.Должность КАК Должность
|ИЗ
| Справочник.ВнутренниеДокументы.Форма.ФормаЭлемента.Заголовок КАК Заголовок
|ГДЕ
//| ФизическиеЛицаУдалитьТрудоваяДеятельность.Ссылка = &ФизЛицо";
Запрос.УстановитьПараметр("Заголовок", Заголовок);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат ВыборкаДетальныеЗаписи.Заголовок;
КонецЕсли;
КонецФункции