|
ВПФ ругается на отсутствие поля "КоличествоЭкземпляров". | ☑ | ||
---|---|---|---|---|
0
VID1234
03.08.22
✎
13:59
|
Здравствуйте. Готовлю печатные формы, для публикации в ЛК сотрудника, необходимо выполнить ряд условий. Условие выполнил, но теперь ругается на отсутствие поля количествоЭкземпляров при выполнении этого участка: ПечатнаяФорма.ТабличныйДокумент.КоличествоЭкземпляров = ПечатнаяФорма.Экземпляров;
Вроде в ТД прописал количество, а толку нет. Что может быть? Ниже код модуля ВПФ Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт //VID добавляем требуемые элементы кода для формирования в ЛК сотрудника МассивОбъектовДляПечати = ОбщегоНазначения.СкопироватьРекурсивно(МассивОбъектов); ПараметрыПечати = Новый Структура; ПараметрыПечати.Вставить("РеквизитыДетализации", "Сотрудник"); ЗарплатаКадры.ПриОпределенииОбъектовПечатнойФормы(МассивОбъектовДляПечати,"ТДОбходнойЛист", "", ПараметрыПечати); ТабДокумент = ТабличныйДокументНаПечать(ПараметрыПечати, МассивОбъектовДляПечати, ОбъектыПечати, ПараметрыВывода); ////Обходной лист, отдельно! //ТабДокумент = Новый ТабличныйДокумент; //ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Приказ2"; //СсылкаНаДокумент = МассивОбъектов[0]; //Сотрудник = СсылкаНаДокумент.Сотрудник; // //МакетикОЛ = ПолучитьОбщийМакет("ОбходнойЛист"); //Обходной = МакетикОЛ.ПолучитьОбласть("Обходной"); // //Обходной.Параметры.ФИОРаботника = Сотрудник.ФизическоеЛицо.Наименование; //Обходной.Параметры.ДатаРождения = формат(Сотрудник.ФизическоеЛицо.ДатаРождения,"ДФ=dd.MM.yyyy"); //Обходной.Параметры.ДатаДок = формат(СсылкаНаДокумент.Дата,"ДЛФ=DD"); //Обходной.Параметры.Подразделение = СсылкаНаДокумент.Подразделение; //Обходной.Параметры.Должность = СсылкаНаДокумент.Должность; //Обходной.Параметры.ДатаПриема = формат(СсылкаНаДокумент.ДатаПриема,"ДЛФ=DD"); // //ТабДокумент.Вывести(Обходной); // УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТДОбходнойЛист", "ТДОбходнойЛист", ТабДокумент); ЗарплатаКадры.ПриПечати(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыВывода); ПараметрыВывода.Вставить("ПараметрыПечатиВнешнейПечатнойФормы", ПараметрыПечати); КонецПроцедуры // Печать() Функция ТабличныйДокументНаПечать(ПараметрыПечати, МассивОбъектовДляПечати, ОбъектыПечати, ПараметрыВывода); //Обходной лист, отдельно! ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Приказ2"; //НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1; СсылкаНаДокумент = МассивОбъектовДляПечати[0]; Сотрудник = СсылкаНаДокумент.Сотрудник; МакетикОЛ = ПолучитьОбщийМакет("ОбходнойЛист"); Обходной = МакетикОЛ.ПолучитьОбласть("Обходной"); Обходной.Параметры.ФИОРаботника = Сотрудник.ФизическоеЛицо.Наименование; Обходной.Параметры.ДатаРождения = формат(Сотрудник.ФизическоеЛицо.ДатаРождения,"ДФ=dd.MM.yyyy"); Обходной.Параметры.ДатаДок = формат(СсылкаНаДокумент.Дата,"ДЛФ=DD"); Обходной.Параметры.Подразделение = СсылкаНаДокумент.Подразделение; Обходной.Параметры.Должность = СсылкаНаДокумент.Должность; Обходной.Параметры.ДатаПриема = формат(СсылкаНаДокумент.ДатаПриема,"ДЛФ=DD"); //УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало,ОбъектыПечати,); ТабДокумент.КоличествоЭкземпляров = 1; Возврат ТабДокумент.Вывести(Обходной); КонецФункции |
|||
1
Галахад
гуру
03.08.22
✎
14:11
|
Отладчиком смотрел? У переменной тип правильный?
|
|||
2
Kigo_Kigo
03.08.22
✎
14:15
|
ничего не понятно но очень интересно, что такое ПечатнаяФорма?
|
|||
3
VID1234
03.08.22
✎
14:16
|
(2) Здравствуйте.
Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл Если ПечатнаяФорма.ТабличныйДокумент = Неопределено Тогда ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'В обработчике печати не был сформирован табличный документ для: %1'"), ПечатнаяФорма.ИмяМакета); ВызватьИсключение(ТекстСообщенияОбОшибке); КонецЕсли; ПечатнаяФорма.ТабличныйДокумент.КоличествоЭкземпляров = ПечатнаяФорма.Экземпляров; Если Не МакетСуществует(ПечатнаяФорма.ПолныйПутьКМакету) Тогда ПечатнаяФорма.ПолныйПутьКМакету = ""; КонецЕсли; КонецЦикла; |
|||
4
VID1234
03.08.22
✎
14:17
|
(1) Здравствуйте. Этого поля вообще нет! И не понятно как его дополнить!
|
|||
5
Галахад
гуру
03.08.22
✎
14:25
|
(4) Вот эта "ПечатнаяФорма.ТабличныйДокумент" переменная, какой тип имеет, при ошибке.
|
|||
6
VID1234
03.08.22
✎
15:17
|
(5) ОбластьЯчеекТабличногоДокумента
|
|||
7
Kigo_Kigo
03.08.22
✎
17:20
|
Можно попробовать вот так, но не факт, у типа ОбластьЯчеекТабличногоДокумента нет свойства КоличествоЭкземпляров
Если Не ТипЗнч(ПечатнаяФорма.ТабличныйДокумент) = Тип("ОбластьЯчеекТабличногоДокумента") Тогда ПечатнаяФорма.ТабличныйДокумент.КоличествоЭкземпляров = ПечатнаяФорма.Экземпляров; КонецЕсли; |
|||
8
Галахад
гуру
03.08.22
✎
17:32
|
Ну вот и выяснили.
Возврат ТабДокумент.Вывести(Обходной); Возвращаешь область табличного документа, а система ожидает табличный документ. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |