Имя: Пароль:
1C
 
УКД получить табличный документ
0 Jackmas
 
06.12.22
11:58
Собственно вопрос по сабжу, БП 3.0 необходимо получить табличный документ УКД
и не могу понять как это реализовать, перепробовал разные варианты

сейчас пробую так:

МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(ТекДокумент);
ПараметрыПечати = Новый Структура();
ПараметрыПечати.Вставить("ДополнитьКомплектВнешнимиПечатнымиФормами", Ложь);
ДопустимыеТипыОбъектовПечати = Неопределено;

ИмяМенеджераПечати = "Документ.КорректировкаРеализации"; // "Обработка.ПечатьУКД"
ИменаМакетов = "УКДСтатус1_534";  //УниверсальныйКорректировочныйДокумент // Акт

ПечатныеФормы = УправлениеПечатью.СформироватьПечатныеФормы(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ПараметрыПечати, ДопустимыеТипыОбъектовПечати);
          
УправлениеПечатьюБП.ДобавитьФаксимилеВФоне(ПечатныеФормы.КоллекцияПечатныхФорм[0].ТабличныйДокумент, ТекДокумент);
    
Возврат ПечатныеФормы.КоллекцияПечатныхФорм[0].ТабличныйДокумент;      

Может кто-нибудь натолкнет на правильный путь (
1 arsik
 
гуру
06.12.22
12:04
Тебе для чего это нужно?
2 Jackmas
 
06.12.22
12:15
Необходимо сформировать выборочно пакет документов разных типов и вывести в ОбщаяФорма.ПечатьДокументов
чтобы оператор распечатал необходимые документы на принтере.
СчетаНаОплату
АктыУПД
АктыСверки

с ними проблем нет
только УКД не получается
3 arsik
 
гуру
06.12.22
13:31
(2) Ну открой модуль менеджера обработки ПечатьУКД. Там же все есть.
4 Jackmas
 
06.12.22
13:42
конечно открыл и передаю туда такой вариант


ИмяМенеджераПечати = "Обработка.ПечатьУКД"
ИменаМакетов = "УКДСтатус1_534";  

но печатная форма не формируется , хотя сравнение на имена макетов ВРег происходит,

вот до этого места не доходит, похоже что не находит счета фактуры, а они есть
    
Если ЕстьСчетаФактуры Тогда    
         Для Каждого МакетУКД ИЗ ТаблицаМакетовУКД Цикл
5 Jackmas
 
06.12.22
13:45
если брать обработку ПечатьСчетаНаОплату
то вариант рабочий

ИмяМенеджераПечати = "Обработка.ПечатьСчетаНаОплату";
ИменаМакетов = "СчетЗаказ";
6 Jackmas
 
06.12.22
13:45
Для УПД вариант

ИмяМенеджераПечати = "Документ.РеализацияТоваровУслуг";
ИменаМакетов = "УниверсальныйПередаточныйДокументКомплект";
7 arsik
 
гуру
06.12.22
13:46
Смотри отладчиком. Возможно документы не передаешь.
И вот это ненужно

УправлениеПечатьюБП.ДобавитьФаксимилеВФоне(ПечатныеФормы.КоллекцияПечатныхФорм[0].ТабличныйДокумент, ТекДокумент);

достаточно в ПараметрыВывода или в ПараметрыПечати нужный параметр указать
8 arsik
 
гуру
06.12.22
13:50
(4) Туда попадет если в МассивОбъектов есть счет фактура, а у тебя там Корректировка скорее всего.
9 mikecool
 
06.12.22
13:51
(0) а в БП разве нет печати пакета?
10 Jackmas
 
06.12.22
14:18
Да в массивОбъектов передается только документ корректировка
11 arsik
 
гуру
06.12.22
14:19
(10) Ну так добавь еще счет фактуру
12 Jackmas
 
06.12.22
14:40
Да все верно , странно что при формировании УПД не надо было указывать,
хотя там и менеджер печати был другой.
Спасибо за помощь.
Теперь так работает:


&НаСервере
Функция ПолучитьПечатнуюФормуДокумента(ТекДокумент) Экспорт  
        МД = Метаданные.НайтиПоТипу(ТипЗнч(ТекДокумент));
    ТекВид = МД.Имя;
    МассивОбъектов = Новый Массив();
    МассивОбъектов.Добавить(ТекДокумент);

    ПараметрыПечати = Новый Структура();
    ПараметрыПечати.Вставить("ДополнитьКомплектВнешнимиПечатнымиФормами", Ложь);
    ДопустимыеТипыОбъектовПечати = Неопределено;
        
    Если ТекВид = "СчетНаОплатуПокупателю" Тогда
         ИмяМенеджераПечати = "Обработка.ПечатьСчетаНаОплату";
         ИменаМакетов = "СчетЗаказ";
    ИначеЕсли ТекВид = "АктСверкиВзаиморасчетов" Тогда
         ИмяМенеджераПечати = "Документ.АктСверкиВзаиморасчетов";
         ИменаМакетов = "АктСверки";
    ИначеЕсли ТекВид = "РеализацияТоваровУслуг" Тогда
         ИмяМенеджераПечати = "Документ.РеализацияТоваровУслуг";
         ИменаМакетов = "УниверсальныйПередаточныйДокументКомплект";    
        ИначеЕсли ТекВид = "КорректировкаРеализации" Тогда
         ИмяМенеджераПечати = "Обработка.ПечатьУКД";
         МассивОбъектов.Добавить(ПолучитьСчетФактуру(ТекДокумент));
         ИменаМакетов = "УКДСтатус1_534";
        Иначе
              Возврат Неопределено;
    КонецЕсли;
    ПечатныеФормы = УправлениеПечатью.СформироватьПечатныеФормы(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ПараметрыПечати, ДопустимыеТипыОбъектовПечати);
    УправлениеПечатьюБП.ДобавитьФаксимилеВФоне(ПечатныеФормы.КоллекцияПечатныхФорм[0].ТабличныйДокумент, ТекДокумент);
    
    Возврат ПечатныеФормы.КоллекцияПечатныхФорм[0].ТабличныйДокумент;      
        
КонецФункции