По долгу службы прилетела мне задача от пользователей. Не хотим говорят нажимать много кнопок чтобы список заказов с экрана в Excel сохранить.
Хотим одну кнопку, чтобы нажал и список сохранился в файл. И естественно чтобы обязательно с учетом всех отборов, поиска и т.д. Вообщем что вижу на экране, то и в Excel должно попасть.
Принято в работу.
Отправляемся гуглить (прежде чем мучать сообщество своими вопросы, чтобы тапками не закидали).
Но ничего не находим кроме отчаянных возгласов, что данное желание реализовать невозможно....
Немного подумав, вспоминаю, что не так давно делал вывод ДинамическогоСписка в ТаблицуЗначений, для чего использовался ПроцессорКомпоновкиДанных. Но он ведь может вывести и в ТабличныйДокумент! Путь определен, идея есть, приступаем к реализации.
Ну процедура запроса у юзера имени файла куда нам это чудо сохранить приводить не буду. Сразу к делу
&НаСервере
Функция СохранитьНаСервере()
СписокФормы=Элементы.Список;
Схема = СписокФормы.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
Настройки = СписокФормы.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема,Настройки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ТабДок=Новый ТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабДок);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Возврат ТабДок;
КонецФункции
Собственно все просто, получаем с элемента формы исполняемую СКД и Настройки (ведь именно в элементе формы есть все заданные параметры поиска/отбора данных).
Ну а собственно дальше стандартный вывод СКД в ТабличныйДокумент программно.
Юзер счастлив. Я свободен))))