Имя: Пароль:
1C
1С v8
Получение и сохранение табличных форм из ДокументСсылка<ИмяДокумента> 8.3 БП3
0 Дмитрий_92
 
09.07.15
14:36
Здравствуйте!
Тема вроде отражает суть, теперь)
Надеюсь сможете направить в нужную сторону =)

Пишу внешнюю обработку. Хочется чтобы она могла  предоставить пользователю весь список типов документов которые есть в бд, а потом из выбранных пользователем типов документов достать все ссылки на документы и их уже сохранить. Этакая групповая печать, только в файлы.

Список документов я достал. Пользователь их выбирать может. ссылки на конкретные документы получаю.

А как их преобразовать в файлы?
Моя обработка: https://yadi.sk/d/PLG7Gu8ThmCQH
1 DTXqueque
 
09.07.15
14:38
Ты про макеты?
2 Дмитрий_92
 
09.07.15
14:53
(1)
Вот я ссылку на конкретную счет фактуру достал,
запихал её в таблицу, вместе с остальными ссылками на конкретные счет-фактуры/реализации и т.п.
Таблицу я буду обходить в цикле, правильно? А как мне вот эту конкретную счет фактуру то сохранить в файл на диске.
3 DTXqueque
 
09.07.15
14:54
У менеджера должна быть функция печати, которая выдаёт табличный документ. Дальше в СП
4 Дмитрий_92
 
09.07.15
15:27
Что-то вроде?
ДокументОбъект = ССылка.ПолучитьОбъект;
ДокументОбъект.Печать();

Процедура печати которая в менеджере документа:
Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)

А вот параметры откуда брать? В синтаксис помощнике про процедуру печать() ничего нет.
Единственное что я нашел это комментарий к процедуре в документе реализация товаров и услуг:

// Сформировать печатные формы объектов
//
// ВХОДЯЩИЕ:
//   ИменаМакетов    - Строка - Имена макетов, перечисленные через запятую
//   МассивОбъектов  - Массив - Массив ссылок на объекты которые нужно распечатать
//   ПараметрыПечати - Структура - Структура дополнительных параметров печати
//
// ИСХОДЯЩИЕ:
//   КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы
//   ПараметрыВывода - Структура - Параметры сформированных табличных документов

Но вот не совсем понятно почему в комментарии входящих параметров только 3 штуки, а в процедуре 5. Ну и имена макетов. Их отуда-то же взять надо.
5 Дмитрий_92
 
10.07.15
11:49
Макет я так понял надо вручную указывать.
Параметры можно пустые передать Или туда можно что-то полезное запихать?
А что за объектыПечати?

Получиться что-то такое:
ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
ПараметрыПечати = Новый Структура;

Макет = ДокументОбъект.ПолучитьМакет("ИмяМакета");
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(Макет);
ОбъектыПечати = ???;
ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();

ДокументОбъект.Печать(ДокументОбъект, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
6 Дмитрий_92
 
13.07.15
15:30
Получилось вот так:
    ПараметрыПечати = Новый Структура;
    
    Если ТипЗнч(СсылкаДокумент) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
        Макет = "Акт";
    ИначеЕсли ... Тогда
        ...
    КонецЕсли;
    
    КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(Макет);
    ОбъектыПечати = Новый СписокЗначений;  
    ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();

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