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