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.
| Формат | Расширение |
|---|---|
| JSON | json |
| XML | xml |
| CSV | csv |
| XLS | xls |
| XLSX | xlsx |
| DBF | dbf |
| TABLE | table |
Опции форматов и их значения по умолчанию
| Формат | Опции | Значения по умолчанию |
|---|---|---|
| JSON | CHARSET | UTF-8 |
| XML | HEADER / NOHEADER, ROOT, TAG, ATTR, CHARSET | HEADER, UTF-8; значения в дочерних тегах |
| CSV | разделитель, HEADER / NOHEADER, ESCAPE / NOESCAPE, CHARSET | ;, NOHEADER, ESCAPE, UTF-8 |
| XLS, XLSX | SHEET, HEADER / NOHEADER | NOHEADER |
| DBF | CHARSET | CP1251 |
| 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;
}