|
СКД - подскажите варианты реализации | ☑ | ||
---|---|---|---|---|
0
ksergey
26.07.16
✎
12:58
|
Добрый день.
Редко сталкиваюсь с отчетами на СКД, поэтому опыта мало. Возникла задача: сделать отчет на СКД, но с доп.функционалом "Выгрузить данные в файл". Сам отчет сложностей не вызывает. Не понимаю как реализовать вывод данных (выводимые данные собираются на основе результата запроса) во внешний файл, чтобы это было реализовано в типовом отчете на СКД. Подскажите возможные варианты решений, и где можно подсмотреть. Спасибо |
|||
1
Nuobu
26.07.16
✎
13:00
|
(0) кнопка сохранить и сохранить как.
|
|||
2
Лодырь
26.07.16
✎
13:01
|
Или как вариант
ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений |
|||
3
ksergey
26.07.16
✎
13:02
|
(1) уточнение: данные результата запроса и данные выгружаемые в файл отличаются, т.е. данные запроса - это основа для формируемого файла, но только частично
|
|||
4
Очевидно
26.07.16
✎
13:16
|
Если есть возможность запилить команду на форму тогда так :
&НаКлиенте Процедура ОткрытьВЭксель(Команда) СчетчикПопыток = 0; УспешноЗаписанТемп = Ложь; ИмяФайла = "1C_XPORT.XLS"; Пока не УспешноЗаписанТемп И СчетчикПопыток < 50 Цикл Попытка Результат.Записать(КаталогВременныхФайлов() + ИмяФайла, ТипФайлаТабличногоДокумента.XLS); УспешноЗаписанТемп = Истина; Исключение СчетчикПопыток = СчетчикПопыток +1; ИмяФайла = "1C_XPORT"+СчетчикПопыток+".XLS"; КонецПопытки; КонецЦикла; ЗапуститьПриложение(КаталогВременныхФайлов() + ИмяФайла); КонецПроцедуры |
|||
5
Azverin
26.07.16
✎
13:18
|
(3) либо ты выводишь всю инфу и далее (0), либо лепи команду на форму и делай там уже свой блэк-джек с девчатами.
|
|||
6
DmitrO
26.07.16
✎
13:19
|
подсматривай:
Это фрагмент процедуры в модуле отчета которая вызывается по специальной кнопке из формы отчета //Получаем текущие настройки отчета Настройки = КомпоновщикНастроек.ПолучитьНастройки(); //очищаем выбранные поля, т.к. для файла нужны свои поля Настройки.Выбор.Элементы.Очистить(); //устанавливаем поля для файла Поле = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); Поле.Поле = Новый ПолеКомпоновкиДанных("Ссылка"); Поле = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); Поле.Поле = Новый ПолеКомпоновкиДанных("НомерВходящегоДокумента"); //компонуем результат в ТЗ КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); Процессор = Новый ПроцессорКомпоновкиДанных; Процессор.Инициализировать(Макет); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТЗ = ПроцессорВывода.Вывести(Процессор); //на основе ТЗ строим файл любого формата Для каждого СтрокаВыгрузки из ТЗ Цикл |
|||
7
ksergey
26.07.16
✎
14:02
|
(6) спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |