Создание шаблона табличного документа
Рассмотрим следующий пример: в проекте содержится справочник «Участники» с именами участников мероприятия. Имена участников необходимо экспортировать в формат XLSX.
Чтобы экспортировать список имен в документ формата XLSX, следует:
- Создать табличный
документ:
пер Документ = новый ТабличныйДокумент()
- Заполнить шапку
документа:
// Получаем область, соответствующую области шапки документа пер Шапка = Документ.ПолучитьОбласть(1, 1, 1, 1) // Устанавливаем в шапку документа текст Шапка.УстановитьТекст("ФИО")
- Выполнить запрос к таблице, хранящей данные справочника участников, и получить
нужные
поля:
пер Запрос = Запрос{ВЫБРАТЬ СписокУчастников.Фамилия КАК Фамилия, СписокУчастников.Имя КАК Имя, СписокУчастников.Отчество КАК Отчество ИЗ Участники КАК СписокУчастников} исп Результат = Запрос.Выполнить()
- Заполнить оставшиеся строки документа именами
участников:
пер НомерСтроки = 2 для Участник из Результат // Получаем область, соотвествующую ячейке документа на новой строке пер ТекущаяСтрока = Документ.ПолучитьОбласть(НомерСтроки, 1, НомерСтроки, 1) // Устанавливаем в текущую строку значение имени участника ТекущаяСтрока.УстановитьТекст("%{Участник.Фамилия} %{Участник.Имя} %{Участник.Отчество}") // Увеличиваем номер строки на единицу НомерСтроки += 1 ;
- Экспортировать документ в нужный
формат:
Документ.Экспортировать(Формат = ФорматЭкспортаТабличногоДокумента.Xlsx, ПутьФайла = ПутьКФайлу + "Участники" + ".xlsx")
Код
целиком:
@НаСервере @ДоступноСКлиента @ВПодсистеме
метод ВыгрузитьСписокУчастников(ПутьКФайлу: Строка)
// Получаем область, соответствующую области шапки документа
пер Шапка = Документ.ПолучитьОбласть(1, 1, 1, 1)
// Устанавливаем в шапку документа текст
Шапка.УстановитьТекст("ФИО")
// Создаем и выполняем запрос к таблице «Участники»
пер Запрос = Запрос{ВЫБРАТЬ
СписокУчастников.Фамилия КАК Фамилия,
СписокУчастников.Имя КАК Имя,
СписокУчастников.Отчество КАК Отчество
ИЗ
Участники КАК СписокУчастников}
исп Результат = Запрос.Выполнить()
пер НомерСтроки = 2
для Участник из Результат
// Получаем область, соответствующую ячейке документа на новой строке
пер ТекущаяСтрока = Документ.ПолучитьОбласть(НомерСтроки, 1, НомерСтроки, 1)
// Устанавливаем в текущую строку значение имени участника
ТекущаяСтрока.УстановитьТекст("%{Участник.Фамилия} %{Участник.Имя} %{Участник.Отчество}")
// Увеличиваем номер строки на единицу
НомерСтроки += 1
;
// Экспортируем документ в нужный формат
Документ.Экспортировать(Формат = ФорматЭкспортаТабличногоДокумента.Xlsx,
ПутьФайла = ПутьКФайлу + "Участники" + ".xlsx")
;