Имя: Пароль:
1C
1С v8
Сохранить Печатную форму документа через COM
0 sirbure
 
08.02.17
16:23
Правильно ли я думаю что сие конечно возможно, но крайне сложно и как бы странно?
Просто стоит задача:  подключиться к базе через com, там создать счет, и сохранить его в эксель, но блин как я понимаю все переменные, будут иметь тип Com объект и я не смогу без плясок передать таб док в функцию печати?
1 butterbean
 
08.02.17
16:25
метод Записать() у табл. документа прекрасно работает во внешнем соединении
2 sirbure
 
08.02.17
16:34
(1)  это да, я что то туплю,  можно же так да?:
Соединение=Новый COMОбъект("v82.ComConnector");
База=Соединение.Connect("File="+Символ(034)+Путь+Символ(034));    
ТабДок=База.NewObject("Табличный Документ");
3 sirbure
 
08.02.17
17:00
Блин как передать ссылку?)
4 SSSSS_AAAAA
 
08.02.17
17:02
(3) какую ссылку, откуда и куда?
5 sirbure
 
08.02.17
17:55
(4)  Да почти разобрался, но вот не хочет находить элемент в структуре, пишет что получение элемента по индексу не определено, хотя все там есть,
Короч Код:


УдачнаяПопытка=Ложь;
Каталог=Объект.ПутьКБазе;
Маска="*.1CD";
Попытка
Соединение=Новый COMОбъект("v83.ComConnector");
Базка=Соединение.Connect("File="+Символ(034)+Каталог+Символ(034));    
Сообщить("Попытка подключения удалась");
УдачнаяПопытка=Истина;
Исключение Сообщить(ОписаниеОшибки());

КонецПопытки;
Если УдачнаяПопытка Тогда
Сч=Базка.NewObject("ДокументСсылка.СчетНаОплатуПокупателю");    
Сч=Базка.Документы.СчетНаОплатуПокупателю.НайтиПоНомеру(0000-000006);
Сч=Сч.Ссылка;
Мас=Базка.NewObject("Массив");
Мас.Добавить(Сч.Ссылка);
ПарамПеч=Базка.NewObject("Структура");
ПарамПеч.Вставить("ДополнитьКомплектВнешнимиПечатнымиФормами",Ложь);
ПФ=Базка.NewObject("Структура");
Пф=Базка.УправлениеПечатью.СформироватьПечатныеФормы("Документ.СчетНаОплатуПокупателю","СчетЗаказ",Мас,ПарамПеч,Неопределено);
Тд=Базка.NewObject("ТабличныйДокумент");
Базка.Документы.СчетНаОплатуПокупателю.Печать(Мас,ПарамПеч,Пф.КоллекцияПечатныхФорм,Пф.ОбъектыПечати,Пф.ПараметрыВывода);
Тд=Пф.КоллекцияПечатныхФорм[0].ТабличныйДокумент;
Тд.Записать("C:\ИмяФайлаываыаыва.xls", ТипФайлаТабличногоДокумента.XLS) ;
КонецЕсли;
6 sirbure
 
09.02.17
12:22
Собственно циклом можно добрться, но сохраняет какую то чушь, что я делаю не так?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший