Имя: Пароль:
1C
1С v8
Прошу помощи с ВПФ
0 asder117
 
30.01.22
22:36
Доброго времени суток. делаю внешнюю печатную форму. Конфа БП 3.0.
Все вроде нормально. Если делаю через форму со ссылкой на объект все выходит нормально.
"ДобавитьКоманду(ТаблицаКоманд, "Акт сверки с подписью и печатью", "АктСверкиПодписьюПечатью", "ОткрытиеФормы", Истина, "ПечатьXML");"
Когда меняю на ВызовСерверногоМетода получаю ошибку
"Значение не является значением объектного типа (ПолучитьОбласть)
{ВнешняяОбработка.АктСверкиСПодписьюИПечатью20.МодульОбъекта(51)}:    ОбластьЗаголовок    = Макет1.ПолучитьОбласть("Заголовок");
{ВнешняяОбработка.АктСверкиСПодписьюИПечатью20.МодульОбъекта(35)}:        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,"АктCверкиGодписьюПечатью","Акт сверки с подписью и печатью",СформироватьАктСверки(МассивОбъектов[0], ОбъектыПечати));
"
Что может быть такое всю голову сломал. Подскажите что не так делаю. Спасибо
1 asder117
 
30.01.22
22:40
(0) Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "АктCверкиGодписьюПечатью");
    Если ПечатнаяФорма <> Неопределено Тогда
        //ПечатнаяФорма.ТабличныйДокумент = СформироватьАктСверки(МассивОбъектов, ОбъектыПечати);
        //ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Акт сверки с подписью и печатью)'");
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,"АктCверкиGодписьюПечатью","Акт сверки с подписью и печатью",СформироватьАктСверки(МассивОбъектов[0], ОбъектыПечати));
    КонецЕсли;
    
КонецПроцедуры
#Область СлужебныеПроцедурыИФункции

Функция СформироватьАктСверки(МассивОбъектов, ОбъектыПечати)
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.КлючПараметровПечати  = "ПАРАМЕТРЫ_ПЕЧАТИ_АктСверкиВзаиморасчетов_АктСверки";
    //Макет  = ПолучитьМакет("АктСверки");
    Если СсылкаНаОбъект.организация = справочники.Организации.НайтиПоНаименованию("Караван-сервис") тогда
        Макет1 = ПолучитьМакет("АктСверкиКараван");
    ИначеЕсли СсылкаНаОбъект.организация = справочники.Организации.НайтиПоНаименованию("А Вектор") тогда
        Макет1 = ПолучитьМакет("АктСверкиВектор");
    КонецЕсли;

    ОбластьЗаголовок    = Макет1.ПолучитьОбласть("Заголовок");
    ОбластьШапкаТаблицы = Макет1.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьНачОстатки   = Макет1.ПолучитьОбласть("НачОстатки");
    ОбластьДоговор      = Макет1.ПолучитьОбласть("Договор");
...........
Так вывожу
2 Гипервизор
 
30.01.22
23:09
СсылкаНаОбъект = МассивОбъектов[0];
3 asder117
 
30.01.22
23:25
(2) СформироватьАктСверки(МассивОбъектов[0], ОбъектыПечати) так я и передаю один объект
4 Джордж1
 
30.01.22
23:27
(30)Макет для внешних обработок надо получать специальным образом. погуглите
5 Гипервизор
 
30.01.22
23:32
(3) У вас на входе в функцию первый параметр называется МассивОбъектов. А в коде функции вы обращаетесь к СсылкаНаОбъект.
В контексте функции СсылкаНаОбъект есть?
Программа сама должна догадаться, что в МассивОбъектов вы передали как раз СсылкаНаОбъект?
6 asder117
 
30.01.22
23:32
(4) Обработка =  РеквизитФормыВЗначение("Объект");
Макет = Обработка.ПолучитьМакет(<ИмяМакета>);
Таой вариант..про него знаю но у меня вылетает
Процедура или функция с указанным именем не определена (РеквизитФормыВЗначение)
7 Джордж1
 
30.01.22
23:35
(6)процедура серверная?
8 Джордж1
 
30.01.22
23:35
С контекстом?
9 asder117
 
30.01.22
23:36
(7) (8) да + в модуле объекта
10 Джордж1
 
30.01.22
23:38
Так нааерное м молуле формы надо вызывать
11 asder117
 
30.01.22
23:41
(5) Функция СформироватьАктСверки(СсылкаНаОбъект, ОбъектыПечати)
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.КлючПараметровПечати  = "ПАРАМЕТРЫ_ПЕЧАТИ_АктСверкиВзаиморасчетов_АктСверки";
    //Обработка = РеквизитФормыВЗначение("Объект");
    //Макет  = ПолучитьМакет("АктСверки");
    //Если СсылкаНаОбъект.организация = справочники.Организации.НайтиПоНаименованию("Караван-сервис") тогда
        Макет1 = ПолучитьМакет("АктСверкиКараван");
    //ИначеЕсли СсылкаНаОбъект.организация = справочники.Организации.НайтиПоНаименованию("А Вектор") тогда
    //    Макет1 = ПолучитьМакет("АктСверкиВектор");
    //КонецЕсли;
Закоментировал условие. Получаю просто мает. ошибка таже
12 asder117
 
30.01.22
23:44
(5) Все взлетело...нашел откуда ноги растут