|   |   | 
| 
 | Создание excel файла со вкладками в 1С на линуксе | ☑ | ||
|---|---|---|---|---|
| 0
    
        Double_Medved 27.08.18✎ 11:00 | 
        Добрый день!
 Ковырял гугл, яндекс, и все что ковыряется, не выходит каменный цветок, прошу помощи. Есть обработка, которая формирует файл xlsx, а в нем ВКЛАДОЧКИ, листы, каждый со своими данными. Винда, COM-объект, WorkBooks, копирование листов. В винде вообщем все работает. Подскажите пожалуйста, как это можно сделать в линуксе? COM-объектов там нет, екселя нет. Как сохранить просто отчет в xls-понятно. А как в файлике добавить вкладочки-листы? | |||
| 1
    
        Dmitry1c 27.08.18✎ 11:04 | 
        секс :)     | |||
| 2
    
        Double_Medved 27.08.18✎ 11:04 | 
        (1)С чем?     | |||
| 3
    
        Timon1405 27.08.18✎ 11:15 | 
        (0) переходите на 8.3.12 там есть
 ПакетОтображаемыхДокументов | |||
| 4
    
        Cyberhawk 27.08.18✎ 11:17 | 
        Делай xlsx-файл как xml-файл в zip-архиве и получишь полный контроль     | |||
| 5
    
        Вафель 27.08.18✎ 11:17 | 
        вроде 1с сама сейчас умеет так     | |||
| 6
    
        Double_Medved 27.08.18✎ 11:20 | 
        (4)Можно поподробнее? Там же ячейки, цвета, шрифты, закрепляемые области. Как это все запихать в xml?     | |||
| 7
    
        Garikk 27.08.18✎ 11:20 | 
        (6) есть описание формата от майкрософт на 100500 страницах     | |||
| 8
    
        Cyberhawk 27.08.18✎ 11:21 | 
        Открываешь xlsx-файл как zip-архив и смотришь. Либо читаешь на MSDN описание этого формата.     | |||
| 9
    
        Вафель 27.08.18✎ 11:23 | 
        может проще через вайн?     | |||
| 10
    
        Флориан 27.08.18✎ 11:23 | 
        (0) Автору рекомендовал бы смотреть в сторону OpenOffice     | |||
| 11
    
        Garikk 27.08.18✎ 11:24 | 
        (10) а как к нему коннектится, куда автору смотреть?     | |||
| 12
    
        Кирпич 27.08.18✎ 11:26 | 
        (0) Написать внешнюю прогу на языке, где есть поддержка Excel. Python, Ruby, FreePascal.     | |||
| 13
    
        yzimin 27.08.18✎ 11:27 | 
        а чем всех советующих решение из (3) не устроило?     | |||
| 14
    
        Флориан 27.08.18✎ 11:29 | ||||
| 15
    
        Garikk 27.08.18✎ 11:32 | 
        (14) вас не смущает что разговор о линуксе, а в скрипте 
 ScrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl"); ScrptCtrl.Language="vbscript"; ? | |||
| 16
    
        Флориан 27.08.18✎ 11:41 | ||||
| 17
    
        Double_Medved 27.08.18✎ 11:47 | 
        (3)ПакетОтображаемыхДокументов (RepresentableDocumentBatch)
 ЗаписатьФайлДляПечати (WriteFileForPrinting) Синтаксис: ЗаписатьФайлДляПечати(<ИмяФайла>) Параметры: <ИмяФайла> (обязательный) Тип: Строка. Содержит полное имя файла, в который нужно записать документы. Описание: Записывает файл, который в дальнейшем можно использовать для печати пакета. Доступность: Тонкий клиент, веб-клиент, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Я так понял на сервере не смогу это сделать? Сервер на линуксе, смысл в том чтобы сделать регламентное задание короче, то есть нужно сохранять файл на сервере | |||
| 18
    
        Garikk 27.08.18✎ 11:53 | 
        (16) ну там нет однозначного решения. это полюбому костылестроение     | |||
| 19
    
        Флориан 27.08.18✎ 11:53 | ||||
| 20
    
        spiller26 27.08.18✎ 12:00 | 
        Может поможет тебе http://v8.1c.ru/overview/release_8_3_12/     | |||
| 21
    
        Timon1405 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)     | |||
| 23
    
        arsik гуру 27.08.18✎ 12:26 | 
        Может развернуть вебсервис на виндовом 1С. Туда несколько mxl, обратно xls.     | |||
| 24
    
        Кирпич 27.08.18✎ 12:54 | 
        (23) я бы не стал городить. накарябал скрипт на питоне и все дела.
 https://habr.com/post/232291/#lib | |||
| 25
    
        Double_Medved 27.08.18✎ 14:32 | 
        Сделал через ПакетОтображаемыхДокументов, теперь вопрос - как можно переименовывать вкладочки? Чтоб был не "Лист" и "Лист2", а типа "Закупки","Продажи", и т.д.?
 Пакет = Новый ПакетОтображаемыхДокументов; УИД = Новый УникальныйИдентификатор; ЭлементПакета1 = Пакет.Состав.Добавить(); ЭлементПакета1.Данные = ПоместитьВоВременноеХранилище(ТабДокЗакупки ,УИД); ЭлементПакета2 = Пакет.Состав.Добавить(); ЭлементПакета2.Данные = ПоместитьВоВременноеХранилище(ТабДокПродажи ,УИД); Пакет.Записать(ПутьКФайлам+"\"+ИмяФайла,ТипФайлаПакетаОтображаемыхДокументов.XLS); | |||
| 26
    
        Timon1405 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 | |||
| 28
    
        Double_Medved 27.08.18✎ 14:55 | 
        (26) Ого, получилось! Че-то в описании не увидел что есть свойство Наименование. Спасибо     | |||
| 29
    
        Флориан 27.08.18✎ 15:38 | 
        (6) а это автор уже реализовал? стандартное сохранение из 1с не всё форматирование поддерживает     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |