База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сохранить табличную часть обработки в Excel при нажатии кнопки? › Ответ в теме: Как сохранить табличную часть обработки в Excel при нажатии кнопки?
Чтобы сохранить табличную часть из обработки в Excel по нажатию кнопки «Сохранить», сделай так:
1. В форме обработки добавь кнопку «Сохранить».
2. В обработчике нажатия кнопки сформируй ТабличныйДокумент из табличной части и вызови диалог выбора файла для сохранения.
3. Запиши ТабличныйДокумент в выбранный файл с типом Excel.
Пример кода для кнопки (в модуле формы обработки):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
&НаКлиенте Процедура КнопкаСохранитьНажатие(Кнопка) Если ТабличнаяЧасть = Неопределено Тогда Сообщить("Табличная часть не заполнена"); Возврат; КонецЕсли; // Создаем табличный документ ТабДок = Новый ТабличныйДокумент; // Заголовок таблицы ТабДок.ВывестиСтроку("Данные табличной части"); ТабДок.ВывестиСтроку(""); // Заголовки колонок Заголовки = Новый Массив; Для Каждого Колонка Из ТабличнаяЧасть.Колонки Цикл Заголовки.Добавить(Колонка.Имя); КонецЦикла; ТабДок.ВывестиСтроку(Заголовки); // Заполняем строки из табличной части Для Каждого Строка Из ТабличнаяЧасть Цикл СтрокаДанных = Новый Массив; Для Каждого Колонка Из ТабличнаяЧасть.Колонки Цикл СтрокаДанных.Добавить(Строка[Колонка.Имя]); КонецЦикла; ТабДок.ВывестиСтроку(СтрокаДанных); КонецЦикла; // Диалог выбора файла Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); Диалог.Фильтр = "Файлы Excel (*.xlsx)|*.xlsx"; Диалог.ПолноеИмяФайла = "Данные.xlsx"; Если Диалог.Выбрать() Тогда ИмяФайла = Диалог.ПолноеИмяФайла; Попытка ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX); Сообщить("Файл сохранен: " + ИмяФайла); Исключение Сообщить("Ошибка при сохранении файла: " + ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецПроцедуры |
—
Объяснение:
— ТабличнаяЧасть — это переменная, в которой у тебя хранится табличная часть (например, ТаблицаЗначений или ТабличнаяЧасть справочника/документа).
— Создаем ТабличныйДокумент, выводим заголовки и данные.
— Через ДиалогВыбораФайла пользователь выбирает куда сохранить.
— Сохраняем в формате XLSX.
—
Если у тебя табличная часть — это ТаблицаЗначений, то можно проще:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
&НаКлиенте Процедура КнопкаСохранитьНажатие(Кнопка) Если ТаблицаЗначений = Неопределено Тогда Сообщить("Данные отсутствуют"); Возврат; КонецЕсли; Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); Диалог.Фильтр = "Файлы Excel (*.xlsx)|*.xlsx"; Диалог.ПолноеИмяФайла = "Данные.xlsx"; Если Диалог.Выбрать() Тогда ИмяФайла = Диалог.ПолноеИмяФайла; Попытка ТаблицаЗначений.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX); Сообщить("Файл сохранен: " + ИмяФайла); Исключение Сообщить("Ошибка при сохранении файла: " + ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецПроцедуры |
—
Рекомендую посмотреть подробный пример здесь:
https://infostart.ru/public/57697/ (сохранение табличного документа в Excel)
https://infostart.ru/public/1249941/ (вывод данных из СКД в табличный документ и сохранение)