Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 июл 2022, 09:30

Не формируется табличный документ

Автор Kerbert, 04 дек 2017, 17:48

0 Пользователей и 1 гость просматривают эту тему.

Kerbert

Конфигурация ЗУП 3.1
Делаю ВПФ. Пытаюсь вывести что получилось,но вылетает ошибка.
Что делаю не так?

Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ПриемНаРаботу");

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

Возврат ПараметрыРегистрации;
КонецФункции

Функция УказатьНаименованиеВнешнейПечатнойФормы()
Наименование = ЭтотОбъект.Метаданные().Представление();
Возврат Наименование;
КонецФункции

Функция УказатьНаименованиеКомандыПечати()
Наименование = ЭтотОбъект.Метаданные().ПолноеИмя();
Возврат Наименование;
КонецФункции



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

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

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

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

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


Функция ПечатьДокумента(МассивОбъектов) Экспорт
УстановитьПривилегированныйРежим(Истина);
ТабДок = Новый ТабличныйДокумент;

Макет = ПолучитьМакет("ПФ_MXL_ТрудовойДоговор");

Шапка = Макет.ПолучитьОбласть("Шапка");
ШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаб");
СтрокаТаблицы = Макет.ПолучитьОбласть("Строка");
Подвал = Макет.ПолучитьОбласть("Подвал");

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

Запрос.УстановитьПараметр("МассивОбъектов",МассивОбъектов);

Выборка = Запрос.Выполнить().Выгрузить();
АдресаОрганизаций = УправлениеКонтактнойИнформациейЗарплатаКадры.АдресаОрганизаций(Выборка.ВыгрузитьКолонку("Организация"));

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

Макет.Параметры.ОрганизацияГородФактическогоАдреса = ОписаниеФактическогоАдреса.Город;

Макет.Параметры.РуководительДолжностьВПадеже = СклонениеПредставленийОбъектов.ПросклонятьПредставление(Строка(Строка.ДолжностьРуководителя), 2);
РезультатСклонения ="";
Если ФизическиеЛицаЗарплатаКадры.Просклонять(Строка(Строка.Руководитель.ФИО), 2, РезультатСклонения, Строка.Руководитель.Пол)  Тогда
Макет.Параметры.РуководительФИОПолные = РезультатСклонения;
КонецЕсли;
Макет.Параметры.ОснованиеРуководителя = " на основании Устава";

РезультатСклонения = "";
Если ФизическиеЛицаЗарплатаКадры.Просклонять(Строка(Строка.Сотрудник.ФизическоеЛицо.ФИО), 3, РезультатСклонения, Строка.Сотрудник.ФизическоеЛицо.Пол) Тогда
Макет.Параметры.ФИОПолные = РезультатСклонения;
КонецЕсли;
Макет.Параметры.ПаспортныеДаные = РегистрыСведений.ДокументыФизическихЛиц.ДокументУдостоверяющийЛичностьФизлица(Строка.Сотрудник.ФизическоеЛицо);

Макет.Параметры.Должность = Строка.Должность;
Макет.Параметры.ОрганизацияНаименование = Строка.Организация;
Макет.Параметры.ДатаПриема =  Строка.ДатаПриема;
Макет.Параметры.ИспытательныйСрок = Строка(Строка.ДлительностьИспытательногоСрока) + "месяца";

ТабДок.Вывести(Шапка);
ТабДок.Вывести(ШапкаТаблицы);
ТабДок.Вывести(СтрокаТаблицы);
ТабДок.Вывести(Подвал);
КонецЦикла;

Если ПривилегированныйРежим() Тогда
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Возврат ТабДок;
КонецФункции


Zverff

Может я неправильно понял, но зачем писал это:
Шапка = Макет.ПолучитьОбласть("Шапка");
    ШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаб");
    СтрокаТаблицы = Макет.ПолучитьОбласть("Строка");
    Подвал = Макет.ПолучитьОбласть("Подвал");


Если у тебя все Макет.Параметры идут, и вроде "ТабДок" пустой. Попробуй так:
ШапкаТаблицы .Параметры.ТрудовойДоговорНомер = Строка.ТрудовойДоговорНомер;
        ШапкаТаблицы .Параметры.Дата = Строка.Дата;
        ШапкаТаблицы .Параметры.ОрганизацияНаименованиеПолное = Строка.ОрганизацияНаименованиеПолное;
Табдок.Вывести(ШапкаТаблицы )

Kerbert

Ошибка вылетает до сих пор, но если  через форму проверяю ,то все выводится и формируется ,а если как доп обработку подгружать к документу ,то ошибка остается.
Я как то не так передаю Табличный документ ? 

Kironten

Посмотри, вообще в коллекциипечатныхформ есть такая - "ПФ_MXL_ТРУДОВОЙДОГОВОР"?

Kerbert

Цитата: Kironten от 05 дек 2017, 16:09
Посмотри, вообще в коллекциипечатныхформ есть такая - "ПФ_MXL_ТРУДОВОЙДОГОВОР"?
Да там и нашел что названия не совподают по этому ничего и не выводилось

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск