Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Создание excel файла со вкладками в 1С на линуксе

Создание excel файла со вкладками в 1С на линуксе
Я
   Double_Medved
 
27.08.18 - 11:00
Добрый день!

Ковырял гугл, яндекс, и все что ковыряется, не выходит каменный цветок, прошу помощи.

Есть обработка, которая формирует файл xlsx, а в нем ВКЛАДОЧКИ, листы, каждый со своими данными. Винда, COM-объект, WorkBooks, копирование листов. В винде вообщем все работает.

Подскажите пожалуйста, как это можно сделать в линуксе? COM-объектов там нет, екселя нет. Как сохранить просто отчет в xls-понятно. А как в файлике добавить вкладочки-листы?
 
 
   Dmitry1c
 
1 - 27.08.18 - 11:04
секс :)
   Double_Medved
 
2 - 27.08.18 - 11:04
(1)С чем?
   Timon1405
 
3 - 27.08.18 - 11:15
(0) переходите на 8.3.12 там есть
ПакетОтображаемыхДокументов
   Cyberhawk
 
4 - 27.08.18 - 11:17
Делай xlsx-файл как xml-файл в zip-архиве и получишь полный контроль
   Вафель
 
5 - 27.08.18 - 11:17
вроде 1с сама сейчас умеет так
   Double_Medved
 
6 - 27.08.18 - 11:20
(4)Можно поподробнее? Там же ячейки, цвета, шрифты, закрепляемые области. Как это все запихать в xml?
   Garikk
 
7 - 27.08.18 - 11:20
(6) есть описание формата от майкрософт на 100500 страницах
   Cyberhawk
 
8 - 27.08.18 - 11:21
Открываешь xlsx-файл как zip-архив и смотришь. Либо читаешь на MSDN описание этого формата.
   Вафель
 
9 - 27.08.18 - 11:23
может проще через вайн?
   Флориан
 
10 - 27.08.18 - 11:23
(0) Автору рекомендовал бы смотреть в сторону OpenOffice
 
 Рекламное место пустует
   Garikk
 
11 - 27.08.18 - 11:24
(10) а как к нему коннектится, куда автору смотреть?
   Кирпич
 
12 - 27.08.18 - 11:26
(0) Написать внешнюю прогу на языке, где есть поддержка Excel. Python, Ruby, FreePascal.
   yzimin
 
13 - 27.08.18 - 11:27
а чем всех советующих решение из (3) не устроило?
   Флориан
 
14 - 27.08.18 - 11:29
   Garikk
 
15 - 27.08.18 - 11:32
(14) вас не смущает что разговор о линуксе, а в скрипте 
    ScrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl");
    ScrptCtrl.Language="vbscript";

?
   Флориан
 
16 - 27.08.18 - 11:41
   Double_Medved
 
17 - 27.08.18 - 11:47
(3)ПакетОтображаемыхДокументов (RepresentableDocumentBatch)
ЗаписатьФайлДляПечати (WriteFileForPrinting)
Синтаксис:

ЗаписатьФайлДляПечати(<ИмяФайла>)
Параметры:

<ИмяФайла> (обязательный)

Тип: Строка.
Содержит полное имя файла, в который нужно записать документы.
Описание:

Записывает файл, который в дальнейшем можно использовать для печати пакета.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).

Я так понял на сервере не смогу это сделать?

Сервер на линуксе, смысл в том чтобы сделать регламентное задание короче, то есть нужно сохранять файл на сервере
   Garikk
 
18 - 27.08.18 - 11:53
(16) ну там нет однозначного решения. это полюбому костылестроение
   Флориан
 
19 - 27.08.18 - 11:53
   spiller26
 
20 - 27.08.18 - 12:00
Может поможет тебе http://v8.1c.ru/overview/release_8_3_12/
   Timon1405
 
21 - 27.08.18 - 12:02
(17) там же есть
Пакет.Записать("\\Путь\1.xls", ТипФайлаПакетаОтображаемыхДокументов.XLS);
честно говоря в чем отличие Записать от ЗаписатьФайлДляПечати я не понял.
   Флориан
 
22 - 27.08.18 - 12:06
к (19) это "Чтение/Запись документа Excel 2007 без офиса, без внешних компонент. (с примером для 7.7, 8.1 и 8.2 на управляемых формах)" как писали в (4)
   arsik
 
23 - 27.08.18 - 12:26
Может развернуть вебсервис на виндовом 1С. Туда несколько mxl, обратно xls.
   Кирпич
 
24 - 27.08.18 - 12:54
(23) я бы не стал городить. накарябал скрипт на питоне и все дела.
https://habr.com/post/232291/#lib
   Double_Medved
 
25 - 27.08.18 - 14:32
Сделал через ПакетОтображаемыхДокументов, теперь вопрос - как можно переименовывать вкладочки? Чтоб был не "Лист" и "Лист2", а типа "Закупки","Продажи", и т.д.?

 Пакет = Новый ПакетОтображаемыхДокументов;

УИД = Новый УникальныйИдентификатор;
ЭлементПакета1 = Пакет.Состав.Добавить();
ЭлементПакета1.Данные = ПоместитьВоВременноеХранилище(ТабДокЗакупки ,УИД);
ЭлементПакета2 = Пакет.Состав.Добавить();
ЭлементПакета2.Данные = ПоместитьВоВременноеХранилище(ТабДокПродажи ,УИД);
Пакет.Записать(ПутьКФайлам+"\"+ИмяФайла,ТипФайлаПакетаОтображаемыхДокументов.XLS);
   Timon1405
 
26 - 27.08.18 - 14:47
ЭлементПакета1.Наименование = "Закупки"; //подойдет?
   Флориан
 
27 - 27.08.18 - 14:54
При этом реализована возможность сохранения каждого табличного документа пакета на отдельном листе результирующего документа.
Реализовано свойство ЭлементПакетаОтображаемыхДокументов.Наименование, которое используется для указания имени листа.


Источник: http://downloads.v8.1c.ru/content//Platform/8_3_12_1595/1cv8upd_8_3_12_1595.htm#8eb981c1-9877-11e7-a3f7-0050569f678a
   Double_Medved
 
28 - 27.08.18 - 14:55
(26) Ого, получилось! Че-то в описании не увидел что есть свойство Наименование. Спасибо
   Флориан
 
29 - 27.08.18 - 15:38
(6) а это автор уже реализовал? стандартное сохранение из 1с не всё форматирование поддерживает


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует