Перейти к основному содержимому

Создание шаблона табличного документа

Рассмотрим следующий пример: в проекте содержится справочник «Участники» с именами участников мероприятия. Имена участников необходимо экспортировать в формат XLSX.

Чтобы экспортировать список имен в документ формата XLSX, следует:

  • Создать табличный документ:

    пер Документ = новый ТабличныйДокумент()
  • Заполнить шапку документа:

    // Получаем область, соответствующую области шапки документа
    пер Шапка = Документ.ПолучитьОбласть(1, 1, 1, 1)

    // Устанавливаем в шапку документа текст
    Шапка.УстановитьТекст("ФИО")
  • Выполнить запрос к таблице, хранящей данные справочника участников, и получить нужные поля:

    пер Запрос = Запрос{ВЫБРАТЬ 
    СписокУчастников.Фамилия КАК Фамилия,
    СписокУчастников.Имя КАК Имя,
    СписокУчастников.Отчество КАК Отчество
    ИЗ
    Участники КАК СписокУчастников}

    исп Результат = Запрос.Выполнить()
  • Заполнить оставшиеся строки документа именами участников:

    пер НомерСтроки = 2

    для Участник из Результат
    // Получаем область, соответствующую ячейке документа на новой строке
    пер ТекущаяСтрока = Документ.ПолучитьОбласть(НомерСтроки, 1, НомерСтроки, 1)

    // Устанавливаем в текущую строку значение имени участника
    ТекущаяСтрока.УстановитьТекст("%{Участник.Фамилия} %{Участник.Имя} %{Участник.Отчество}")

    // Увеличиваем номер строки на единицу
    НомерСтроки += 1
    ;
  • Экспортировать документ в нужный формат:

    Документ.Экспортировать(Формат = ФорматЭкспортаТабличногоДокумента.Xlsx, 
    ПутьФайла = ПутьКФайлу + "Участники" + ".xlsx")

Код целиком:

@НаСервере @ДоступноСКлиента @ВПодсистеме
метод ВыгрузитьСписокУчастников(ПутьКФайлу: Строка)
// Получаем область, соответствующую области шапки документа
пер Шапка = Документ.ПолучитьОбласть(1, 1, 1, 1)

// Устанавливаем в шапку документа текст
Шапка.УстановитьТекст("ФИО")

// Создаем и выполняем запрос к таблице «Участники»
пер Запрос = Запрос{ВЫБРАТЬ
СписокУчастников.Фамилия КАК Фамилия,
СписокУчастников.Имя КАК Имя,
СписокУчастников.Отчество КАК Отчество
ИЗ
Участники КАК СписокУчастников}

исп Результат = Запрос.Выполнить()

пер НомерСтроки = 2
для Участник из Результат
// Получаем область, соответствующую ячейке документа на новой строке
пер ТекущаяСтрока = Документ.ПолучитьОбласть(НомерСтроки, 1, НомерСтроки, 1)

// Устанавливаем в текущую строку значение имени участника
ТекущаяСтрока.УстановитьТекст("%{Участник.Фамилия} %{Участник.Имя} %{Участник.Отчество}")

// Увеличиваем номер строки на единицу
НомерСтроки += 1
;

// Экспортируем документ в нужный формат
Документ.Экспортировать(Формат = ФорматЭкспортаТабличногоДокумента.Xlsx,
ПутьФайла = ПутьКФайлу + "Участники" + ".xlsx")
;