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