|   |   | 
| 
 | ВПФ ругается на отсутствие поля "КоличествоЭкземпляров". | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Ну вот и выяснили.
 Возврат ТабДокумент.Вывести(Обходной); Возвращаешь область табличного документа, а система ожидает табличный документ. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |