Коллеги, нужен совет. Цель - выгрузить тяжелый отчет на сервере и сохранить в mxl, во избежание проблем с нехваткой памяти при формировании и сохранении на клиенте.
[code]
// Записать массив в строку XML
Функция МассивВСтрокуXML(Массив) Экспорт
// Создадим объект для записи XML
ЗаписьXML = Новый ЗаписьXML;
// Укажем необходимость вывода в строку
ЗаписьXML.УстановитьСтроку();
// Запишем начальный элемент массива
ЗаписьXML.ЗаписатьНачалоЭлемента("array");
// Переберем элементы массива
Для Каждого Элемент Из Массив Цикл
// Выведем элемент массива
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Элемент);
КонецЦикла;
// Запишем конечный элемент массива
ЗаписьXML.ЗаписатьКонецЭлемента();
// Закончим вывод
Возврат ЗаписьXML.Закрыть();
КонецФункции
// Загрузить массив из строки XML
Функция МассивИзСтрокиXML(Строка) Экспорт
// Создадим объект для чтения значения
ЧтениеXML = Новый ЧтениеXML;
// Установим строку, из которой будем читать значние
ЧтениеXML.УстановитьСтроку(Строка);
// Создадим массив, в который будем считывать
Массив = Новый Массив;
// Считаем элемент начала массива
ЧтениеXML.Прочитать();
// Считаем начало перовго элемента
ЧтениеXML.Прочитать();
// Пока не прочитан конечный элемент
Пока ЧтениеXML.ТипУзла <> ТипУзлаXML.КонецЭлемента Цикл
// Прочитаем значение
Значение = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
// Поместим считанное значение в массив
Массив.Добавить(Значение);
КонецЦикла;
// Чтение закончено - вернем считанный массив
Возврат Массив;
КонецФункции
// Функция выполняет компоновку во внешнем соединении.
// Возвращается результат компоновки.
Функция ПолучитьСериализованныйРезультатПростогоОтчетаСКД(ИмяОтчета, Параметры) Экспорт
Для Каждого Параметр Из Параметры Цикл
ПараметрыДанных = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы;
ПараметрДанных = ПараметрыДанных.Найти(Параметр.Ключ);
ПользовательскийПараметрДанных = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрДанных.ИдентификаторПользовательскойНастройки);
ПользовательскийПараметрДанных.Значение = МассивИзСтрокиXML(Параметр.Значение);
КонецЦикла;
ТаблицаРезультата = Новый ТабличныйДокумент;
Отчет.СкомпоноватьРезультат(ТаблицаРезультата);