Имя: Пароль:
1C
 
ВПФ ругается на отсутствие поля "КоличествоЭкземпляров".
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
Ну вот и выяснили.

Возврат ТабДокумент.Вывести(Обходной);  

Возвращаешь область табличного документа, а система ожидает табличный документ.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn