В обработчике печати не был сформирован табличный документ для:
Здравствуйте! Помогите пожалуйста, мне требуется реализовать внешнюю печатную форму для документа "Командировка" ЗУП 3.1. Обработка мной сделана, но при попытке открыть появляется ошибка:
Прикладываю модуль обработки и сам файл обработки. Релиз ЗУП 3.1.1.103 платформа 8.3.9.1850
{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(247)}: В обработчике печати не был сформирован табличный документ для:
ВызватьИсключение(ТекстСообщенияОбОшибке);
Прикладываю модуль обработки и сам файл обработки. Релиз ЗУП 3.1.1.103 платформа 8.3.9.1850
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Назначение", ПолучитьНазначениеОбработки());
ПараметрыРегистрации.Вставить("Наименование", "Приказ На Служебную Поездку");
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "Приказ на служебную поездку (внешний)");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
Команды = ПолучитьТаблицуКоманд();
ДобавитьКоманду(Команды, "Приказ на служебную поездку (внешний)",
"ПриказНаСлужебнуюПоездку",
"ВызовСерверногоМетода",
Ложь,
"ПечатьMXL");
ПараметрыРегистрации.Вставить("Команды", Команды);
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьНазначениеОбработки()
Массив= Новый Массив;
Массив.Добавить("Документ.Командировка");
Возврат Массив;
КонецФункции
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Процедура Печать (МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПриказНаСлужебнуюПоездку") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"ПриказНаСлужебнуюПоездку",
НСтр("ru = 'Приказ о направлении в командировку (Т-9)'"),
ТабличныйДокументПриказОНаправленииСотрудникаВКомандировку(УправлениеПечатью.МакетПечатнойФормы("ПФ_MXL_Т9"), МассивОбъектов, ОбъектыПечати), ,
"ПФ_MXL_Т9");
КонецЕсли;
КонецПроцедуры
Функция ТабличныйДокументПриказОНаправленииСотрудникаВКомандировку(Макет, МассивОбъектов, ОбъектыПечати)
НастройкиПечатныхФорм = ЗарплатаКадрыПовтИсп.НастройкиПечатныхФорм();
ДокументРезультат = Новый ТабличныйДокумент;
ДокументРезультат.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Командировка_Т9";
ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ДокументРезультат.АвтоМасштаб = Истина;
// получаем данные для печати
ДанныеДляПечати = ДанныеДляПечатиКомандировки(МассивОбъектов).Выбрать();
ПервыйДокумент = Истина;
Пока ДанныеДляПечати.СледующийПоЗначениюПоля("Ссылка") Цикл
Если ПервыйДокумент Тогда
ПервыйДокумент = Ложь;
Иначе
// Все документы нужно выводить на разных страницах.
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
// Запомним номер строки, с которой начали выводить текущий документ.
НомерСтрокиНачало = ДокументРезультат.ВысотаТаблицы + 1;
ОбластьМакетаПриказ = Макет.ПолучитьОбласть("Приказ");
ОбластьМакетаПриказ.Параметры.Заполнить(ДанныеДляПечати);
ОбластьМакетаПриказ.Параметры.Сотрудник = ДанныеДляПечати.ФИОПолные;
ОбластьМакетаПриказ.Параметры.ТабельныйНомер = ПрефиксацияОбъектовКлиентСервер.УдалитьПрефиксыИзНомераОбъекта(ДанныеДляПечати.ТабельныйНомер, Истина, Истина);
РезультатСклонения = "";
Если ФизическиеЛицаЗарплатаКадры.Просклонять(Строка(ДанныеДляПечати.ФИОПолные), 4, РезультатСклонения, ДанныеДляПечати.Пол) Тогда
ОбластьМакетаПриказ.Параметры.Сотрудник = РезультатСклонения
КонецЕсли;
ОбластьМакетаПриказ.Параметры.НомерДокумента = КадровыйУчетРасширенный.НомерКадровогоПриказа(ДанныеДляПечати.НомерДокумента);
Если НастройкиПечатныхФорм.ВыводитьПолнуюИерархиюПодразделений И ЗначениеЗаполнено(ОбластьМакетаПриказ.Параметры.Подразделение) Тогда
ОбластьМакетаПриказ.Параметры.Подразделение = ОбластьМакетаПриказ.Параметры.Подразделение.ПолноеНаименование();
КонецЕсли;
ДокументРезультат.Вывести(ОбластьМакетаПриказ);
// В табличном документе необходимо задать имя области, в которую был
// выведен объект. Нужно для возможности печати покомплектно.
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ДокументРезультат, НомерСтрокиНачало, ОбъектыПечати, ДанныеДляПечати.Ссылка);
КонецЦикла;
Возврат ДокументРезультат;
КонецФункции
Функция ДанныеДляПечатиКомандировки(МассивОбъектов)
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.Текст =
"ВЫБРАТЬ
| Командировка.Ссылка КАК Ссылка,
| Командировка.Сотрудник КАК Сотрудник,
| Командировка.Организация КАК Организация,
| Командировка.Дата КАК Дата,
| Командировка.Дата КАК ДатаДокумента,
| Командировка.Номер КАК НомерДокумента,
| ВЫБОР
| КОГДА Организации.НаименованиеПолное ПОДОБНО """"
| ТОГДА Организации.Наименование
| ИНАЧЕ Организации.НаименованиеПолное
| КОНЕЦ КАК НазваниеОрганизации,
| Организации.КодПоОКПО КАК КодПоОКПО,
| Командировка.ДатаНачала КАК ДатаНачала,
| Командировка.ДатаНачала КАК Период,
| Командировка.ДатаОкончания КАК ДатаОкончания,
| Командировка.МестоНазначения КАК МестоНазначения,
| Командировка.ОрганизацияНазначения КАК ОрганизацияНазначения,
| Командировка.Основание КАК Основание,
| Командировка.Цель КАК Цель,
| Командировка.ДнейВПути КАК ДнейВПути,
| Командировка.Руководитель КАК Руководитель,
| Командировка.ДолжностьРуководителя КАК ДолжностьРуководителя,
| Командировка.КомандировкаЗаСчетСредств
|ПОМЕСТИТЬ ВТДанныеДокумента
|ИЗ
| Документ.Командировка КАК Командировка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
| ПО Командировка.Организация = Организации.Ссылка
|ГДЕ
| Командировка.Ссылка В(&МассивОбъектов)";
Запрос.Выполнить();
ЗарплатаКадры.СоздатьВТФИООтветственныхЛиц(Запрос.МенеджерВременныхТаблиц, Истина, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("Руководитель"), "ВТДанныеДокумента");
ОписательВременныхТаблиц = КадровыйУчет.ОписательВременныхТаблицДляСоздатьВТКадровыеДанныеСотруднико в(
Запрос.МенеджерВременныхТаблиц,
"ВТДанныеДокумента");
КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников(ОписательВременныхТаблиц, Истина, "ФИОПолные,Подразделение,Должность,ТабельныйНомер,ДокументПредставление,Пол");
Запрос.Текст =
"ВЫБРАТЬ
| Командировка.Ссылка КАК Ссылка,
| Командировка.ДатаДокумента КАК ДатаДокумента,
| Командировка.НомерДокумента КАК НомерДокумента,
| Командировка.Сотрудник КАК Сотрудник,
| Командировка.Организация КАК Организация,
| Командировка.НазваниеОрганизации КАК НазваниеОрганизации,
| Командировка.КодПоОКПО КАК КодПоОКПО,
| Командировка.ДатаНачала КАК ДатаНачала,
| Командировка.ДатаОкончания КАК ДатаОкончания,
| Командировка.МестоНазначения КАК МестоНазначения,
| РАЗНОСТЬДАТ(Командировка.ДатаНачала, Командировка.ДатаОкончания, ДЕНЬ) + 1 КАК Продолжительность,
| РАЗНОСТЬДАТ(Командировка.ДатаНачала, Командировка.ДатаОкончания, ДЕНЬ) + 1 - Командировка.ДнейВПути КАК ПродолжительностьЧистая,
| Командировка.ОрганизацияНазначения КАК ОрганизацияНазначения,
| Командировка.Основание КАК Основание,
| Командировка.КомандировкаЗаСчетСредств КАК КомандировкаЗаСчетСредств,
| Командировка.Цель КАК Цель,
| КадровыеДанныеСотрудников.ФИОПолные КАК ФИОПолные,
| КадровыеДанныеСотрудников.ДокументПредставление КАК ДокументПредставление,
| КадровыеДанныеСотрудников.Подразделение КАК Подразделение,
| КадровыеДанныеСотрудников.Должность КАК Должность,
| КадровыеДанныеСотрудников.ТабельныйНомер КАК ТабельныйНомер,
| КадровыеДанныеСотрудников.Пол КАК Пол,
| Командировка.ДолжностьРуководителя КАК ДолжностьРуководителя,
| ФИООтветственныхЛиц.РасшифровкаПодписи КАК РуководительРасшифровкаПодписи
|ИЗ
| ВТДанныеДокумента КАК Командировка
| ЛЕВОЕ СОЕДИНЕНИЕ ВТФИООтветственныхЛиц КАК ФИООтветственныхЛиц
| ПО Командировка.Ссылка = ФИООтветственныхЛиц.Ссылка
| И Командировка.Руководитель = ФИООтветственныхЛиц.ФизическоеЛицо
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
| ПО Командировка.Сотрудник = КадровыеДанныеСотрудников.Сотрудник
| И Командировка.Период = КадровыеДанныеСотрудников.Период
|
|УПОРЯДОЧИТЬ ПО
| Командировка.Ссылка";
Возврат Запрос.Выполнить();
КонецФункции
ПоказатьПрикрепленные файлы:
ПриказНаСлужебнуюПоездку.epf
По теме из базы знаний
- Отладка внешних печатных форм на тонком клиенте
- Вывод печатных форм с запросом данных в форму "Печать документов" из подсистемы БСП "Печать".
- Практика создания заказной внешней печатной формы для УТ 11.3
- Формирование комплекта печатных форм в типовых конфигурациях для разнотипных документов
- Уведомление пользователя о неоформленных отпусках сотрудников. ЗУП 3.1
Найденные решения
отставить...
а где?
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
а где?
НоваяКоманда.Идентификатор = Идентификатор;
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1)Не видно где сформировалась коллекцияПечатныхФорм. Перед тем как проверить нужно ли печатать форму в коллукцию нужно поместить печатную форму что бы УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПриказНаСлужебнуюПоездку") вернула Истину, иначе печать пролетает с указанной вами ошибкой.
скорее всего в модуле менеджера документа "Командировка" не все функции для обеспечения внешних печатных форм прописаны.
Необходимо посмотреть в модуле менеджера другого документа методы поддержки печатных форм и скопировать в этот
Необходимо посмотреть в модуле менеджера другого документа методы поддержки печатных форм и скопировать в этот
(14) еще раз здравствуйте) через файл-открыть все шикарно, все работает и формируется без проблем но когда я хочу печатать из формы списка или формы документа, у меня ошибка, эта проблема идет у меня еще со вчера:
{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(247)}: В обработчике печати не был сформирован табличный документ для:
ВызватьИсключение(ТекстСообщенияОбОшибке);
отставить...
а где?
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
а где?
НоваяКоманда.Идентификатор = Идентификатор;
Идентификаторы нужны для вызова по расписанию. Как правило это актуально для обработок.
Но печать документов тоже можно выполнять по расписанию с отправкой по почте, причем вариантов вызова
и для регламентного задания, и для печати, и для открытия отчета(обработки) может быть несколько
тут отвлеченный пример из обработки в качестве примера:
Но печать документов тоже можно выполнять по расписанию с отправкой по почте, причем вариантов вызова
и для регламентного задания, и для печати, и для открытия отчета(обработки) может быть несколько
тут отвлеченный пример из обработки в качестве примера:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.0"); // Версия БСП
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Наименование = "Json выгрузка";
ПараметрыРегистрации.Версия = "20.04.2017";
ПараметрыРегистрации.БезопасныйРежим = Ложь;
ПараметрыРегистрации.Информация = "Json выгрузка";
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = НСтр("ru = 'Json выгрузка по поступлению (регламентное задание)'");
Команда.Идентификатор = "JsonВыгрузкаПоПоступлениюПоРасписанию"; // Срока, уникальная в пределах данной обработки
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Команда.ПоказыватьОповещение = Ложь;
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = НСтр("ru = 'Json выгрузка по реализации (регламентное задание)'");
Команда.Идентификатор = "JsonВыгрузкаПоРеализацииПоРасписанию";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Команда.ПоказыватьОповещение = Ложь;
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = НСтр("ru = 'Json выгрузка по поступлению (ручной режим)'");
Команда.Идентификатор = "JsonВыгрузкаПоПоступлениюФорма";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
Команда.ПоказыватьОповещение = Истина;
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = НСтр("ru = 'Json выгрузка по реализации (ручной режим)'");
Команда.Идентификатор = "JsonВыгрузкаПоРеализацииФорма";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
Команда.ПоказыватьОповещение = Истина;
Возврат ПараметрыРегистрации;
КонецФункции
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
// Реализация логики команд вызова по расписанию
Если ИдентификаторКоманды = "JsonВыгрузкаПоПоступлениюПоРасписанию" Тогда
JsonВыгрузкаПоПоступлениюСформировать();
ИначеЕсли ИдентификаторКоманды = "JsonВыгрузкаПоРеализацииПоРасписанию" Тогда
JsonВыгрузкаПоРеализацииСформировать();
КонецЕсли;
КонецПроцедуры
Показать
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)