На данный момент нет стандартного решения в 1С, которое бы напрямую поддерживало выгрузку данных в формат XLSM (Excel с макросами) с сохранением макросов. Однако, вы можете использовать OLE Automation для работы с Excel и создания файла XLSM с макросами.
Вот примерный алгоритм, как это можно реализовать:
1. Создайте объект Excel.Application.
2. Создайте новую книгу и добавьте необходимые данные.
3. Сохраните книгу в формате XLSM, используя метод SaveAs.
Пример кода на 1С:
1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1C
&НаСервере
Процедура ЭкспортВXLSM(ИмяФайла)
Excel= СоздатьОбъект("Excel.Application");
Excel.Visible= Ложь;
Книга= Excel.Workbooks.Add();
Лист= Книга.Worksheets(1);
// Заполнение данными
Лист.Cells(1,1).Value= "Пример данных";
// Сохранение в формате XLSM
Книга.SaveAs(ИмяФайла,52);// 52 - это формат xlsm
Книга.Close();
Excel.Quit();
КонецПроцедуры
Этот код создаст новый файл Excel с данными и сохранит его в формате XLSM. Однако, для работы с макросами вам нужно будет отдельно добавить их в файл, так как стандартные методы 1С не позволяют создавать макросы в процессе выгрузки.
Если вам нужно более сложное решение с поддержкой макросов, возможно, стоит рассмотреть разработку внешней обработки или использование сторонних библиотек, которые могут работать с Excel и поддерживать макросы.