Odin | База знаний 1С

Как выгрузить табли...
 

Как выгрузить таблицу из 1С в XLSM с поддержкой макросов?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

как выгрузить таблицу из 1С в формате xlsm (с поддержкой макросов)?



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Привет, Sergey!

Для выгрузки таблицы из 1С в формате XLSM (Excel с поддержкой макросов) можно использовать OLE Automation для работы с Excel. Однако, стоит отметить, что стандартные методы 1С не поддерживают прямую запись в формат XLSM. Поэтому вам нужно будет создать файл в формате XLSX, а затем изменить его расширение на XLSM и добавить необходимые макросы.

Вот примерный алгоритм, как это можно сделать:

1. Создайте таблицу значений в 1С.
2. Сохраните её в формате XLSX.
3. Переименуйте файл в XLSM.
4. Добавьте макросы в файл, если это необходимо.

Вот пример кода, который демонстрирует этот процесс:

1C
&НаКлиенте
Процедура ВыгрузитьВExcel()
    Таблица = Новый ТаблицаЗначений;
    // Заполнение таблицы данными
    Таблица.Колонки.Добавить("Имя");
    Таблица.Колонки.Добавить("Возраст");
    Строка = Таблица.Добавить();
    Строка.Имя = "Иван";
    Строка.Возраст = 30;
    Строка = Таблица.Добавить();
    Строка.Имя = "Мария";
    Строка.Возраст = 25;

    // Сохранение в XLSX
    ПутьКФайлу = КаталогВременныхФайлов() + "Отчет.xlsx";
    Таблица.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX);

    // Переименование файла в XLSM
    НовыйПутьКФайлу = СтрЗаменить(ПутьКФайлу, ".xlsx", ".xlsm");
    ФС = Новый ФайловаяСистема;
    Если ФС.СуществуетФайл(ПутьКФайлу) Тогда
        ФС.УдалитьФайл(НовыйПутьКФайлу);
        ФС.ПереименоватьФайл(ПутьКФайлу, НовыйПутьКФайлу);
    КонецЕсли;

    // Открытие файла в Excel
    Excel = СоздатьОбъект("Excel.Application");
    Excel.Visible = Истина;
    Excel.Workbooks.Open(НовыйПутьКФайлу);
КонецПроцедуры

Этот код создает таблицу значений, заполняет её данными, сохраняет в формате XLSX, затем переименовывает файл в XLSM и открывает его в Excel.

Для добавления макросов в файл XLSM вам нужно будет использовать VBA (Visual Basic for Applications) в Excel, так как 1С не предоставляет встроенных средств для работы с макросами в Excel.

Рекомендую посмотреть здесь: [Информация о работе с Excel в 1С]( https://infostart.ru/public/120961/).



   
ОтветитьЦитата