Перейти к основному содержимому
Версия: 7.0

Brief: экспорт данных

Карта экспорта данных

Подробная карта одной области — экспорта данных из системы в файл. Общая карта элементов находится в Brief, полный синтаксис — в операторе EXPORT, описание механизма — в разделе Экспорт данных.

Эта статья не входит в набор, который всегда передается ассистенту, и запрашивается по мере необходимости.

Два источника экспорта

Экспорт свойств

EXPORT [format] FROM [columnId =] expr, ... [WHERE expr] [ORDER expr [DESC], ...] [TOP expr] [OFFSET expr] [TO propertyId]

Каждое перечисленное выражение становится колонкой результата. Результат всегда плоский — одна таблица строк.

Экспорт формы

EXPORT formName [OBJECTS objName = expr, ...] [format] [TOP ...] [OFFSET ...] [TO ...]

Форма открывается в структурированном представлении, поэтому иерархия групп объектов формы переносится в результат для JSON и XML. В плоские форматы (CSV, XLS, XLSX, DBF, TABLE) каждая группа объектов выгружается отдельным файлом. Объекты, значения которых зафиксированы в блоке OBJECTS, работают как фильтры и в построении иерархии групп не участвуют.

Форматы и расширения

Если формат не указан, используется JSON. Расширение результирующего файла определяется форматом, когда классом значения свойства-приемника является FILE.

ФорматРасширение
JSONjson
XMLxml
CSVcsv
XLSxls
XLSXxlsx
DBFdbf
TABLEtable

Опции форматов и их значения по умолчанию

ФорматОпцииЗначения по умолчанию
JSONCHARSETUTF-8
XMLHEADER / NOHEADER, ROOT, TAG, ATTR, CHARSETHEADER, UTF-8; значения в дочерних тегах
CSVразделитель, HEADER / NOHEADER, ESCAPE / NOESCAPE, CHARSET;, NOHEADER, ESCAPE, UTF-8
XLS, XLSXSHEET, HEADER / NOHEADERNOHEADER
DBFCHARSETCP1251
TABLEнет

Для XML HEADER управляет не строкой заголовка таблицы, а строкой вида <?xml version="1.0" encoding="UTF-8"?>. Имя корневого элемента задается опцией ROOT (по умолчанию — имя экспортируемой формы, либо export при экспорте свойств), имя элемента-обертки записи — опцией TAG (по умолчанию — имя группы объектов формы).

Приемник результата

  • TO propertyId — свойство без параметров, класс значения которого файловый (FILE, RAWFILE, JSONFILE и т.п.).
  • Если TO не указано, используется свойство System.exportFile.
  • При экспорте формы в плоский формат приемник задается для каждой группы объектов: TO (groupId1 = propertyId1, ...); пустая группа объектов называется root.

Умолчания, которые определяют результат

  • Формат — JSON.
  • WHERE — дизъюнкция всех экспортируемых свойств, то есть выгружаются наборы объектов, для которых не NULL хотя бы одно из них.
  • Имена колонок — expr1, ..., exprN по номеру выражения в списке.
  • ORDER — упорядочивание допускается только по выражениям, перечисленным в списке экспортируемых.
  • При экспорте одного значения без имени колонки JSON содержит само значение, а не объект с полем.

Примеры

exportSkus (Store store) {
EXPORT DBF CHARSET 'CP866' FROM id(Sku s), name(s), weight(s) WHERE in(store, s);
EXPORT CSV NOHEADER NOESCAPE FROM id(Sku s), name(s), weight(s) WHERE in(store, s);
EXPORT FROM id(Sku s), name(s), weight(s) WHERE in(store, s) ORDER name(s) DESC;
}
exportSku (Store store) {
EXPORT exportSku OBJECTS st = store DBF CHARSET 'CP866';
EXPORT exportSku XML;
}