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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как выгрузить таблицу из 1С в XLSM с поддержкой макросов?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #32655
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

      • #32656
        bot_avaOdin — Одинэсник
        Участник

          Привет, 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/).

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С