Имя: Пароль:
1C
1C 7.7
v7: Таблица с картинкой в excel
0 Primus525
 
02.11.11
17:09
Народ, подскажите плз, как сделать так, чтобы Таблица.Записать() сохраняла в эксель таблицу "как на экране". В таблице есть картинка, при печати в 1С картинка есть, в файле экселя нету.
1 Ёпрст
 
02.11.11
17:10
йоксель нормально конвертит
2 filh
 
02.11.11
17:20
примеров полно, можно еще и в pdf закинуть
3 Primus525
 
02.11.11
17:21
где примеры посмотреть можно?
4 filh
 
02.11.11
17:22
тут было, лень мне искать просто
5 filh
 
02.11.11
17:24
Перем гТаблица,ВыбНазваниеЛиста,ВыбИмяФайла;

//-----------------------------------------------------------------------------

Функция Проверка ()
   
   Попытка
       Сервис = СоздатьОбъект("Сервис");
   Исключение
       Если ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"formex.dll")=0 Тогда
           Возврат 0;
       КонецЕсли;
   КонецПопытки;
   
   Попытка
       Табл = СоздатьОбъект("ТабличныйДокумент");
   Исключение
       Если ЗагрузитьВнешнююКомпоненту (КаталогИБ()+"SpreadSheet.dll")=0 Тогда
           Возврат 0;
       КонецЕсли;        
   КонецПопытки;
       
   Сервис = СоздатьОбъект ("Сервис");
   Если Сервис.АктивныйКонтекст (гТаблица) = 1 Тогда
       Если ТипЗначенияСтр (гТаблица) = "Таблица" Тогда
           Возврат 1;
       Иначе
           Попытка
               гТаблица = гТаблица.Таблица;
               Возврат 1;
           Исключение
           КонецПопытки;
       КонецЕсли;
   КонецЕсли;
   Возврат 0;
КонецФункции

//-----------------------------------------------------------------------------

Процедура ВыполнитьСохранение ()
   ИмяФайла = ВыбИмяФайла;
   ИмяКаталога = ВосстановитьЗначение("ИмяКаталога");
   Если ФС.ВыбратьФайл (1, ИмяФайла, ИмяКаталога, "Укажите имя файла", "Книга Microsoft Excel (*.xls)|*.xls|Документ Adobe Acrobat (*.pdf)|*.pdf",
       "xls") = 0 Тогда
           
       Возврат;
   КонецЕсли;
   СохранитьЗначение("ИмяКаталога",ИмяКаталога);
   ВыбИмяФайла = ИмяКаталога + ИмяФайла;
   Документ = СоздатьОбъект ("ТабличныйДокумент");
   Если ТипЗначенияСтр(гТаблица)="Таблица" Тогда
       Документ.ЗагрузитьИзТаблицы(гТаблица);
   Иначе
       врИмя = КаталогВременныхФайлов()+_GetPerformanceCounter()+".mxl";
       гТаблица.Записать(врИмя);
       Документ.Открыть(врИмя);
   КонецЕсли;
   
   Если Прав(ВыбИмяФайла,3)="xls" Тогда
       Конвертер = СоздатьОбъект ("КонвертерExcel");
       Книга = Конвертер.Создать ();
       Книга.Листы.Добавить (ВыбНазваниеЛиста, Документ);
       Книга.ПараметрыКонвертера.РаспознаватьЧисловыеЗначения = 1;
       Книга.Записать (ВыбИмяФайла);
   Иначе
       Конвертер = СоздатьОбъект ("Йоксель.ГрафическийКонвертер.PDF");
       Конвертер.ВысотаСтраницы = 297*56.7;
       Конвертер.ШиринаСтраницы = 210*56.7;
       Конвертер.КоличествоБитНаПиксел = 24;
       Конвертер.Документ = Документ;
       Конвертер.ПолеСлева = 0;
       Конвертер.ПолеСверху = 0;
       Конвертер.ПолеСправа = 0;
       Конвертер.ПолеСнизу = 0;
       Конвертер.ЗаписатьВФайл (ВыбИмяФайла);
   КонецЕсли;
КонецПроцедуры

//-----------------------------------------------------------------------------

Процедура СохранитьТаблицу ()
   Попытка
       ВыполнитьСохранение ();
   Исключение
       Предупреждение ("Не удалось выполнить сохранение: " + ОписаниеОшибки() + " Возможно, указано неверное имя файла или " +
       "файл, куда выполняется сохранение, открыт",60);
   КонецПопытки;
КонецПроцедуры

Процедура ПриОткрытии ()
   СтатусВозврата(0);
   Если Проверка () = 0 Тогда
       Возврат;
       Сообщить ("Обнаружены ошибки - сохранение таблицы будет недоступно");
   КонецЕсли;
   ВыбНазваниеЛиста = "Лист 1";
   СохранитьТаблицу ();    
КонецПроцедуры
6 Ёпрст
 
02.11.11
17:24
могу кинуть
7 filh
 
02.11.11
17:24
думаю разберешься
8 Ёпрст
 
02.11.11
17:25
:)
мой код..ёпт
9 filh
 
02.11.11
17:28
(8) ага, спер от сюда, месяц два назад
:)
10 Primus525
 
06.11.11
16:38
В момент Документ.ЗагрузитьИзТаблицы(Таб) у меня 1cv7 благополучно валится. shpeadsheet.dll нормально подключается. Что может быть?
11 Злопчинский
 
06.11.11
16:40
(0,1) обычное сохранение мокселя в эксель - нормально сохраняет вставленные в сформированный моксель ячейки... так что топикстартеру где-то не там смотреть надо...
12 Primus525
 
06.11.11
17:31
(11) картинки не сохраняются.

(10) победил сохранением таблицы во временный моксель, потом открытием в табличныйдокумент. спасибо всем.
13 Злопчинский
 
06.11.11
18:02
(12) странно.. у меня всегда сохраняются.. кинь для проверки этот временный моксель на мыло [email protected] посмотреть где там так интересно...
14 Primus525
 
08.11.11
18:36
И еще проблема возникла.

При открытии 10-м офисом пишет, что файл поврежден. Openoffice и 2007 открывают нормально.
15 Ёпрст
 
08.11.11
18:37
(10) йоксель какой версии у тебя хоть ?
16 Primus525
 
08.11.11
18:51
(15) 1.1.26.0