F1 reference: Compute Contract, 203 операции, транспорт и сеанс.
# Ячейки и диапазоны
> Правка ячеек, чтение деталей, сдвиги, копирование и вставка, поиск и замена, сортировка, отмена и повтор. Операций на странице: 21.
Правка ячеек, чтение деталей, сдвиги, копирование и вставка, поиск и замена, сортировка, отмена и повтор. Термины — в [глоссарии](/start/glossary/). **Операции на этой странице — 21** * [`apply_cell_edits`](#apply_cell_edits) * [`apply_cell_shift`](#apply_cell_shift) * [`clear_sheet_bounded`](#clear_sheet_bounded) * [`commit_replacements_in_workbook_subset`](#commit_replacements_in_workbook_subset) * [`compute_replacements_in_workbook_subset`](#compute_replacements_in_workbook_subset) * [`compute_selection_aggregates`](#compute_selection_aggregates) * [`convert_entity_data_type_in_place`](#convert_entity_data_type_in_place) * [`copy_range`](#copy_range) * [`fill_across_sheets`](#fill_across_sheets) * [`find_in_workbook_subset`](#find_in_workbook_subset) * [`flash_fill_pattern`](#flash_fill_pattern) * [`mark_used_range_dirty_bounded`](#mark_used_range_dirty_bounded) * [`move_clipboard_range`](#move_clipboard_range) * [`paste_range`](#paste_range) * [`preview_cell_edits`](#preview_cell_edits) * [`read_cell_details`](#read_cell_details) * [`redo_last_cell_edit`](#redo_last_cell_edit) * [`redo_last_range_edit`](#redo_last_range_edit) * [`sort_range_rows`](#sort_range_rows) * [`undo_last_cell_edit`](#undo_last_cell_edit) * [`undo_last_range_edit`](#undo_last_range_edit) ## apply\_cell\_edits [Заголовок раздела «apply\_cell\_edits»](#apply_cell_edits) Применяет cell edits. **Запрос** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ------------------ | ---------------------------------------------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | operation | `"apply_cell_edits"` | да | | | `subsetId` | string | да | | | edits | [CellInputEdit](/reference/f1/types-cells/#cellinputedit)\[] | да | | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | | `expectedRevision` | number \| null | нет | Необязательная проверка от гонок. Если поле есть, оно должно совпадать с текущей ревизией истории книги; при расхождении запрос отклоняется с ошибкой `apply-cell-edits-stale-revision`, и ничего не меняется. Без поля правка применяется безусловно. | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | | **Ответ при успехе · apply\_cell\_edits** | Поле | Тип TypeScript | Обяз. | | ---------------------------- | ------------------------------------------------------------------------------------------------------------ | ----- | | operation | `"apply_cell_edits"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `editedKeys` | string\[] | да | | `changedKeys` | string\[] | да | | `dirtyCellCount` | number | да | | `sheetProtected` | boolean | да | | `conditionalFormattingRules` | [ContractConditionalRule](/reference/f1/types-format/#contractconditionalrule)\[] | нет | | `currentSourceSaveReadiness` | [ContractCurrentSourceSaveReadiness](/reference/f1/types-common/#contractcurrentsourcesavereadiness) \| null | нет | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `tableMetadata` | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) \| null | нет | | `workbookTableMetadata` | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) \| null | нет | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "apply_cell_edits",
"subsetId": "",
"edits": [],
"requestedBackend": "native-desktop"
}
```
## apply\_cell\_shift [Заголовок раздела «apply\_cell\_shift»](#apply_cell_shift) Применяет cell shift. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------------- | ----- | | operation | `"apply_cell_shift"` | да | | `subsetId` | string | да | | `sheetKey` | string | да | | `rowStart` | number | да | | `rowEnd` | number | да | | `colStart` | number | да | | `colEnd` | number | да | | direction | [ContractXlsxCellShiftDirection](/reference/f1/types-cells/#contractxlsxcellshiftdirection) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · apply\_cell\_shift** | Поле | Тип TypeScript | Обяз. | | ------------------------------ | ------------------------------------------------------------------------------------------------------------ | ----- | | operation | `"apply_cell_shift"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | range | [CellRange](/reference/f1/types-cells/#cellrange) | да | | direction | [ContractXlsxCellShiftDirection](/reference/f1/types-cells/#contractxlsxcellshiftdirection) | да | | `changedRows` | number\[] | да | | `changedColumns` | number\[] | да | | `shiftedCellCount` | number | да | | `removedCellCount` | number | да | | `cellShiftClaim` | `"live_verified"` | да | | `shiftScope` | `"active_visible_value_cells_current_sheet"` | да | | `formulaReferenceRewriteClaim` | `"no"` | да | | `mergeReferenceRewriteClaim` | `"no"` | да | | `dirtyCellCount` | number | да | | `currentSourceSaveReadiness` | [ContractCurrentSourceSaveReadiness](/reference/f1/types-common/#contractcurrentsourcesavereadiness) \| null | нет | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "apply_cell_shift",
"subsetId": "",
"sheetKey": "",
"rowStart": 0,
"rowEnd": 0,
"colStart": 0,
"colEnd": 0,
"direction": "",
"requestedBackend": "native-desktop"
}
```
## clear\_sheet\_bounded [Заголовок раздела «clear\_sheet\_bounded»](#clear_sheet_bounded) Очищает sheet bounded. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"clear_sheet_bounded"` | да | | `subsetId` | string | да | | `sheetKey` | string | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · clear\_sheet\_bounded** | Поле | Тип TypeScript | Обяз. | | ---------------------- | --------------------------------------------------------------------------------------------------- | ----- | | operation | `"clear_sheet_bounded"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `clearedSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `sheetCount` | number | да | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) \| null | нет | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `sheetClearClaim` | `"live_verified"` | да | | `clearScope` | `"active_worksheet_cells_only_preserve_sheet_metadata"` | да | | `formattingClearClaim` | `"no"` | да | **Минимальный JSON-шаблон**
```json
{
"operation": "clear_sheet_bounded",
"subsetId": "",
"sheetKey": "",
"requestedBackend": "native-desktop"
}
```
## commit\_replacements\_in\_workbook\_subset [Заголовок раздела «commit\_replacements\_in\_workbook\_subset»](#commit_replacements_in_workbook_subset) Фиксирует replacements in workbook subset. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ----------------------------------------------------------------------------- | ----- | | operation | `"commit_replacements_in_workbook_subset"` | да | | `subsetId` | string | да | | query | string | да | | replacement | string | да | | `matchCase` | boolean | нет | | `matchEntireCell` | boolean | нет | | `lookIn` | [ContractFindLookIn](/reference/f1/types-cells/#contractfindlookin) | да | | scope | [ContractFindScope](/reference/f1/types-cells/#contractfindscope) | да | | `searchOrder` | [ContractFindSearchOrder](/reference/f1/types-cells/#contractfindsearchorder) | нет | | `expectedRevision` | number | да | | locale | string | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · commit\_replacements\_in\_workbook\_subset** | Поле | Тип TypeScript | Обяз. | | ------------------ | --------------------------------------------------------------------------------------------------- | ----- | | operation | `"commit_replacements_in_workbook_subset"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | scope | [ContractFindScope](/reference/f1/types-cells/#contractfindscope) | да | | `lookIn` | [ContractFindLookIn](/reference/f1/types-cells/#contractfindlookin) | да | | `searchOrder` | [ContractFindSearchOrder](/reference/f1/types-cells/#contractfindsearchorder) | да | | `plannedEditCount` | number | да | | `appliedEditCount` | number | да | | `changedKeys` | string\[] | да | | dirty | boolean | да | | `recalcNeeded` | boolean | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "commit_replacements_in_workbook_subset",
"subsetId": "",
"query": "",
"replacement": "",
"lookIn": "",
"scope": "",
"expectedRevision": 0,
"requestedBackend": "native-desktop"
}
```
## compute\_replacements\_in\_workbook\_subset [Заголовок раздела «compute\_replacements\_in\_workbook\_subset»](#compute_replacements_in_workbook_subset) Вычисляет replacements in workbook subset. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ----------------------------------------------------------------------------- | ----- | | operation | `"compute_replacements_in_workbook_subset"` | да | | `subsetId` | string | да | | query | string | да | | replacement | string | да | | `matchCase` | boolean | нет | | `matchEntireCell` | boolean | нет | | `lookIn` | [ContractFindLookIn](/reference/f1/types-cells/#contractfindlookin) | да | | scope | [ContractFindScope](/reference/f1/types-cells/#contractfindscope) | да | | `searchOrder` | [ContractFindSearchOrder](/reference/f1/types-cells/#contractfindsearchorder) | нет | | `resultOffset` | number | нет | | `resultLimit` | number | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · compute\_replacements\_in\_workbook\_subset** | Поле | Тип TypeScript | Обяз. | | ------------------- | ----------------------------------------------------------------------------------- | ----- | | operation | `"compute_replacements_in_workbook_subset"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | scope | [ContractFindScope](/reference/f1/types-cells/#contractfindscope) | да | | `lookIn` | [ContractFindLookIn](/reference/f1/types-cells/#contractfindlookin) | да | | `searchOrder` | [ContractFindSearchOrder](/reference/f1/types-cells/#contractfindsearchorder) | да | | `totalEditCount` | number | да | | `resultOffset` | number | да | | `returnedEditCount` | number | да | | truncated | boolean | да | | `nextResultOffset` | number | нет | | index | [ContractFindIndexStats](/reference/f1/types-cells/#contractfindindexstats) | да | | edits | [ContractReplaceEdit](/reference/f1/types-common/#contractreplaceedit)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "compute_replacements_in_workbook_subset",
"subsetId": "",
"query": "",
"replacement": "",
"lookIn": "",
"scope": "",
"requestedBackend": "native-desktop"
}
```
## compute\_selection\_aggregates [Заголовок раздела «compute\_selection\_aggregates»](#compute_selection_aggregates) Вычисляет selection aggregates. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------- | ---------------------------------------------------------------------------- | ----- | | operation | `"compute_selection_aggregates"` | да | | `subsetId` | string | да | | ranges | [CellRange](/reference/f1/types-cells/#cellrange)\[] | да | | `aggregateMode` | `"visible_rows"` \| “all\_rows” | нет | | `requestGeneration` | number | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · compute\_selection\_aggregates** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ---------------------------- | ----------------------------------------------------------------------------------- | ----- | ----------------------------------------------------------------------------------------------- | | operation | `"compute_selection_aggregates"` | да | | | `subsetId` | string | да | | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | | `aggregateMode` | `"visible_rows"` \| “all\_rows” | да | | | `requestGeneration` | number | нет | | | `workbookRevision` | number | да | | | `calculationGeneration` | number | да | | | `cacheStatus` | `"hit"` \| “miss” | да | | | `cacheEntryCount` | number | да | | | `scannedCellCount` | number | да | | | `nonEmptyCount` | number | да | Сколько в выделении непустых ячеек — считаются и текст, и числа. То же, что даёт функция СЧЁТЗ. | | `numericCount` | number | да | Сколько ячеек участвует в числовых итогах ниже. | | `errorCount` | number | да | | | `formulaCount` | number | да | | | `numericAggregatesAvailable` | boolean | да | | | sum | number | да | | | average | number | да | | | min | number | да | | | max | number | да | | **Минимальный JSON-шаблон**
```json
{
"operation": "compute_selection_aggregates",
"subsetId": "",
"ranges": [],
"requestedBackend": "native-desktop"
}
```
## convert\_entity\_data\_type\_in\_place [Заголовок раздела «convert\_entity\_data\_type\_in\_place»](#convert_entity_data_type_in_place) Преобразует entity data type in place. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------ | ----- | | operation | `"convert_entity_data_type_in_place"` | да | | `subsetId` | string | да | | kind | [ContractEntityDataTypeKind](/reference/f1/types-common/#contractentitydatatypekind) | да | | range | [CellRange](/reference/f1/types-cells/#cellrange) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · convert\_entity\_data\_type\_in\_place** | Поле | Тип TypeScript | Обяз. | | --------------- | ------------------------------------------------------------------------------------------------------ | ----- | | operation | `"convert_entity_data_type_in_place"` | да | | `subsetId` | string | да | | kind | [ContractEntityDataTypeKind](/reference/f1/types-common/#contractentitydatatypekind) | да | | range | [CellRange](/reference/f1/types-cells/#cellrange) | да | | `originalTexts` | string\[] | да | | disposition | [ContractEntityConversionDisposition](/reference/f1/types-common/#contractentityconversiondisposition) | да | | `didMutate` | boolean | да | | `entityCells` | [ContractEntityCellMetadata](/reference/f1/types-cells/#contractentitycellmetadata)\[] | да | | refusal | [ContractEntityConversionRefusal](/reference/f1/types-common/#contractentityconversionrefusal) \| null | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "convert_entity_data_type_in_place",
"subsetId": "",
"kind": "",
"range": "",
"requestedBackend": "native-desktop"
}
```
## copy\_range [Заголовок раздела «copy\_range»](#copy_range) Копирует range. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"copy_range"` | да | | `subsetId` | string | да | | range | [CellRange](/reference/f1/types-cells/#cellrange) | да | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · copy\_range** | Поле | Тип TypeScript | Обяз. | | ---------------------------------- | ----------------------------------------------------------------------------------- | ----- | | operation | `"copy_range"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `clipboardId` | string | да | | range | [CellRange](/reference/f1/types-cells/#cellrange) | да | | `rowCount` | number | да | | `colCount` | number | да | | `cellCount` | number | да | | `mimeTypes` | string\[] | да | | `mergedRanges` | [CellRange](/reference/f1/types-cells/#cellrange)\[] | нет | | `sourceSelectionExpandedForMerges` | boolean | нет | | `clipboardHtml` | string \| null | нет | | `canonicalEdits` | [CellInputEdit](/reference/f1/types-cells/#cellinputedit)\[] | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "copy_range",
"subsetId": "",
"range": "",
"requestedBackend": "native-desktop"
}
```
## fill\_across\_sheets [Заголовок раздела «fill\_across\_sheets»](#fill_across_sheets) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ----------------------------------------------------------------------------------------- | ----- | | operation | “fill\_across\_sheets” | да | | `subsetId` | string | да | | `sourceRange` | [CellRange](/reference/f1/types-cells/#cellrange) | да | | `targetSheetKeys` | string\[] | да | | mode | [ContractFillAcrossSheetsMode](/reference/f1/types-session/#contractfillacrosssheetsmode) | да | | `expectedRevision` | number \| null | нет | | `readOnly` | boolean | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | **Ответ при успехе · fill\_across\_sheets** | Поле | Тип TypeScript | Обяз. | | ----------------- | --------------------------------------------------------------------------------------------------- | ----- | | operation | “fill\_across\_sheets” | да | | `subsetId` | string | да | | mode | [ContractFillAcrossSheetsMode](/reference/f1/types-session/#contractfillacrosssheetsmode) | да | | `sourceRange` | [CellRange](/reference/f1/types-cells/#cellrange) | да | | `targetSheetKeys` | string\[] | да | | `mutationCount` | number | да | | `changedKeys` | string\[] | да | | dirty | boolean | да | | `recalcNeeded` | boolean | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "fill_across_sheets",
"subsetId": "",
"sourceRange": "",
"targetSheetKeys": "",
"mode": ""
}
```
## find\_in\_workbook\_subset [Заголовок раздела «find\_in\_workbook\_subset»](#find_in_workbook_subset) Ищет in workbook subset. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ----------------------------------------------------------------------------- | ----- | | operation | `"find_in_workbook_subset"` | да | | `subsetId` | string | да | | query | string | да | | `matchCase` | boolean | нет | | `matchEntireCell` | boolean | нет | | `lookIn` | [ContractFindLookIn](/reference/f1/types-cells/#contractfindlookin) | да | | scope | [ContractFindScope](/reference/f1/types-cells/#contractfindscope) | да | | `searchOrder` | [ContractFindSearchOrder](/reference/f1/types-cells/#contractfindsearchorder) | нет | | `resultOffset` | number | нет | | `resultLimit` | number | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · find\_in\_workbook\_subset** | Поле | Тип TypeScript | Обяз. | | -------------------- | ----------------------------------------------------------------------------------- | ----- | | operation | `"find_in_workbook_subset"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | scope | [ContractFindScope](/reference/f1/types-cells/#contractfindscope) | да | | `lookIn` | [ContractFindLookIn](/reference/f1/types-cells/#contractfindlookin) | да | | `searchOrder` | [ContractFindSearchOrder](/reference/f1/types-cells/#contractfindsearchorder) | да | | `totalMatchCount` | number | да | | `resultOffset` | number | да | | `returnedMatchCount` | number | да | | truncated | boolean | да | | `nextResultOffset` | number | нет | | index | [ContractFindIndexStats](/reference/f1/types-cells/#contractfindindexstats) | да | | matches | [ContractFindMatch](/reference/f1/types-cells/#contractfindmatch)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "find_in_workbook_subset",
"subsetId": "",
"query": "",
"lookIn": "",
"scope": "",
"requestedBackend": "native-desktop"
}
```
## flash\_fill\_pattern [Заголовок раздела «flash\_fill\_pattern»](#flash_fill_pattern) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Запрос** | Поле | Тип TypeScript | Обяз. | | --------------------- | ------------------------------------------------------------------------------ | ----- | | operation | “flash\_fill\_pattern” | да | | `subsetId` | string | да | | mode | [FlashFillMode](/reference/f1/types-format/#flashfillmode) | да | | generation | number | да | | examples | [FlashFillExample](/reference/f1/types-format/#flashfillexample)\[] | да | | rows | [FlashFillTargetRow](/reference/f1/types-format/#flashfilltargetrow)\[] | да | | `selectedCandidateId` | string \| null | нет | | locale | string \| null | нет | | refusal | [FlashFillRefusalContext](/reference/f1/types-format/#flashfillrefusalcontext) | нет | | `expectedRevision` | number \| null | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | **Ответ при успехе · flash\_fill\_pattern** | Поле | Тип TypeScript | Обяз. | | --------------- | -------------------------------------------------------------------- | ----- | | operation | “flash\_fill\_pattern” | да | | `subsetId` | string | да | | mode | [FlashFillMode](/reference/f1/types-format/#flashfillmode) | да | | generation | number | да | | inference | [FlashFillInference](/reference/f1/types-format/#flashfillinference) | да | | applied | boolean | да | | `mutationCount` | number | да | | projection | ComputeResponsePayload \| null | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "flash_fill_pattern",
"subsetId": "",
"mode": "",
"generation": 0,
"examples": [],
"rows": []
}
```
## mark\_used\_range\_dirty\_bounded [Заголовок раздела «mark\_used\_range\_dirty\_bounded»](#mark_used_range_dirty_bounded) Помечает used range dirty bounded. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"mark_used_range_dirty_bounded"` | да | | `subsetId` | string | да | | `sheetKey` | string | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · mark\_used\_range\_dirty\_bounded** | Поле | Тип TypeScript | Обяз. | | ------------------------ | --------------------------------------------------------------------------------------------------- | ----- | | operation | `"mark_used_range_dirty_bounded"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `changedSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `previousUsedRangeDirty` | boolean | да | | `usedRangeDirty` | true | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `sheetCount` | number | да | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) \| null | нет | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `usedRangeDirtyClaim` | `"live_verified"` | да | | `usedRangeDirtyScope` | `"current_session_worksheet_used_range_marker"` | да | | `workbookMutationClaim` | `"no"` | да | **Минимальный JSON-шаблон**
```json
{
"operation": "mark_used_range_dirty_bounded",
"subsetId": "",
"sheetKey": "",
"requestedBackend": "native-desktop"
}
```
## move\_clipboard\_range [Заголовок раздела «move\_clipboard\_range»](#move_clipboard_range) Перемещает clipboard range. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"move_clipboard_range"` | да | | `subsetId` | string | да | | `clipboardId` | string | да | | target | [CellRange](/reference/f1/types-cells/#cellrange) | да | | transpose | false | нет | | `pasteMode` | `"all"` | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · paste\_range** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ---------------------------- | ------------------------------------------------------------------------------------------------------------ | ----- | ------------------------------------------------------------------------------------------------------------------ | | operation | `"paste_range"` | да | | | `subsetId` | string | да | | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | | `clipboardId` | string | да | | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | | `currentSourceSaveReadiness` | [ContractCurrentSourceSaveReadiness](/reference/f1/types-common/#contractcurrentsourcesavereadiness) \| null | нет | | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | нет | | | `recalcNeeded` | boolean | да | | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | | `conditionalFormattingRules` | [ContractConditionalRule](/reference/f1/types-format/#contractconditionalrule)\[] | нет | | | `dataValidationMetadata` | [ContractDataValidationMetadata](/reference/f1/types-data/#contractdatavalidationmetadata) | нет | | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | Состояние истории после применения правки: владелец, глубина и ревизия. Оболочка показывает эти значения как есть. | **Минимальный JSON-шаблон**
```json
{
"operation": "move_clipboard_range",
"subsetId": "",
"clipboardId": "",
"target": "",
"requestedBackend": "native-desktop"
}
```
## paste\_range [Заголовок раздела «paste\_range»](#paste_range) Вставляет range. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"paste_range"` | да | | `subsetId` | string | да | | `clipboardId` | string | да | | target | [CellRange](/reference/f1/types-cells/#cellrange) | да | | transpose | boolean | нет | | `pasteMode` | [ContractPasteMode](/reference/f1/types-common/#contractpastemode) | нет | | `expectedRevision` | number | нет | | `readOnly` | boolean | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · paste\_range** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ---------------------------- | ------------------------------------------------------------------------------------------------------------ | ----- | ------------------------------------------------------------------------------------------------------------------ | | operation | `"paste_range"` | да | | | `subsetId` | string | да | | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | | `clipboardId` | string | да | | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | | `currentSourceSaveReadiness` | [ContractCurrentSourceSaveReadiness](/reference/f1/types-common/#contractcurrentsourcesavereadiness) \| null | нет | | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | нет | | | `recalcNeeded` | boolean | да | | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | | `conditionalFormattingRules` | [ContractConditionalRule](/reference/f1/types-format/#contractconditionalrule)\[] | нет | | | `dataValidationMetadata` | [ContractDataValidationMetadata](/reference/f1/types-data/#contractdatavalidationmetadata) | нет | | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | Состояние истории после применения правки: владелец, глубина и ревизия. Оболочка показывает эти значения как есть. | **Минимальный JSON-шаблон**
```json
{
"operation": "paste_range",
"subsetId": "",
"clipboardId": "",
"target": "",
"requestedBackend": "native-desktop"
}
```
## preview\_cell\_edits [Заголовок раздела «preview\_cell\_edits»](#preview_cell_edits) Формирует preview для cell edits. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"preview_cell_edits"` | да | | `subsetId` | string | да | | edits | [CellInputEdit](/reference/f1/types-cells/#cellinputedit)\[] | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · preview\_cell\_edits** | Поле | Тип TypeScript | Обяз. | | ---------------------------- | ------------------------------------------------------------------------------------------------------------ | ----- | | operation | `"preview_cell_edits"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `editedKeys` | string\[] | да | | `changedKeys` | string\[] | да | | `dirtyCellCount` | number | да | | `currentSourceSaveReadiness` | [ContractCurrentSourceSaveReadiness](/reference/f1/types-common/#contractcurrentsourcesavereadiness) \| null | нет | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "preview_cell_edits",
"subsetId": "",
"edits": [],
"requestedBackend": "native-desktop"
}
```
## read\_cell\_details [Заголовок раздела «read\_cell\_details»](#read_cell_details) Читает cell details. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"read_cell_details"` | да | | `subsetId` | string | да | | row | number | да | | col | number | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `warmSheetForEdit` | boolean | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · read\_cell\_details** | Поле | Тип TypeScript | Обяз. | | ---------- | ----------------------------------------------------------------------------------- | ----- | | operation | `"read_cell_details"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | cell | [ContractCellDetails](/reference/f1/types-cells/#contractcelldetails) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "read_cell_details",
"subsetId": "",
"row": 0,
"col": 0,
"viewport": {
"top": 0,
"left": 0,
"rows": 40,
"cols": 12
},
"requestedBackend": "native-desktop"
}
```
## redo\_last\_cell\_edit [Заголовок раздела «redo\_last\_cell\_edit»](#redo_last_cell_edit) Повторяет last cell edit. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"redo_last_cell_edit"` | да | | `subsetId` | string | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · redo\_last\_cell\_edit** | Поле | Тип TypeScript | Обяз. | | ---------------------------- | ------------------------------------------------------------------------------------------------------------ | ----- | | operation | `"redo_last_cell_edit"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `redoneKey` | string | да | | `changedKeys` | string\[] | да | | `dirtyCellCount` | number | да | | `conditionalFormattingRules` | [ContractConditionalRule](/reference/f1/types-format/#contractconditionalrule)\[] | нет | | `currentSourceSaveReadiness` | [ContractCurrentSourceSaveReadiness](/reference/f1/types-common/#contractcurrentsourcesavereadiness) \| null | нет | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "redo_last_cell_edit",
"subsetId": "",
"requestedBackend": "native-desktop"
}
```
## redo\_last\_range\_edit [Заголовок раздела «redo\_last\_range\_edit»](#redo_last_range_edit) Повторяет last range edit. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"redo_last_range_edit"` | да | | `subsetId` | string | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · redo\_last\_range\_edit** | Поле | Тип TypeScript | Обяз. | | ----------------------------- | ------------------------------------------------------------------------------------------------------------ | ----- | | operation | `"redo_last_range_edit"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `redoneRange` | [CellRange](/reference/f1/types-cells/#cellrange) | да | | `redoneKeys` | string\[] | да | | `changedKeys` | string\[] | да | | `dirtyCellCount` | number | да | | `sheetProtected` | boolean | да | | `conditionalFormattingRules` | [ContractConditionalRule](/reference/f1/types-format/#contractconditionalrule)\[] | нет | | `currentSourceSaveReadiness` | [ContractCurrentSourceSaveReadiness](/reference/f1/types-common/#contractcurrentsourcesavereadiness) \| null | нет | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `dataValidationMetadata` | [ContractDataValidationMetadata](/reference/f1/types-data/#contractdatavalidationmetadata) | да | | `tableName` | string \| null | нет | | `tableRef` | string \| null | нет | | `tableDataBodyRef` | string \| null | нет | | `tableMetadata` | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) \| null | нет | | `workbookTableMetadata` | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) \| null | нет | | `worksheetAutoFilterMetadata` | [ContractWorksheetAutoFilterMetadata](/reference/f1/types-data/#contractworksheetautofiltermetadata) \| null | нет | | `hiddenRows` | number\[] | да | | `manualHiddenRows` | number\[] | да | | `filterHiddenRows` | number\[] | да | | `rangeFilterHistoryReplay` | boolean | да | **Минимальный JSON-шаблон**
```json
{
"operation": "redo_last_range_edit",
"subsetId": "",
"requestedBackend": "native-desktop"
}
```
## sort\_range\_rows [Заголовок раздела «sort\_range\_rows»](#sort_range_rows) Сортирует range rows. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------- | ---------------------------------------------------------------------------------------- | ----- | | operation | `"sort_range_rows"` | да | | `subsetId` | string | да | | range | [CellRange](/reference/f1/types-cells/#cellrange) | да | | levels | [SortRangeRowsLevel](/reference/f1/types-format/#sortrangerowslevel)\[] | да | | control | `"apply"` \| “prepare” \| “commit” \| “cancel” | нет | | `requestGeneration` | number \| null | нет | | `expectedRevision` | number \| null | нет | | `visibleRowsOnly` | boolean | нет | | locale | string \| null | нет | | `caseSensitive` | boolean | нет | | `numericTextMode` | [SortRangeRowsNumericTextMode](/reference/f1/types-format/#sortrangerowsnumerictextmode) | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · sort\_range\_rows** | Поле | Тип TypeScript | Обяз. | | ------------------- | ------------------------------------------------------- | ----- | | operation | `"sort_range_rows"` | да | | `subsetId` | string | да | | control | `"apply"` \| “prepare” \| “commit” \| “cancel” | да | | `requestGeneration` | number \| null | нет | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `movedRowCount` | number | да | | `sortedRowCount` | number | да | | `rowMoves` | SortRangeRowsRowMove\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "sort_range_rows",
"subsetId": "",
"range": "",
"levels": [],
"requestedBackend": "native-desktop"
}
```
## undo\_last\_cell\_edit [Заголовок раздела «undo\_last\_cell\_edit»](#undo_last_cell_edit) Отменяет last cell edit. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"undo_last_cell_edit"` | да | | `subsetId` | string | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · undo\_last\_cell\_edit** | Поле | Тип TypeScript | Обяз. | | ---------------------------- | ------------------------------------------------------------------------------------------------------------ | ----- | | operation | `"undo_last_cell_edit"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `restoredKey` | string | да | | `changedKeys` | string\[] | да | | `dirtyCellCount` | number | да | | `conditionalFormattingRules` | [ContractConditionalRule](/reference/f1/types-format/#contractconditionalrule)\[] | нет | | `currentSourceSaveReadiness` | [ContractCurrentSourceSaveReadiness](/reference/f1/types-common/#contractcurrentsourcesavereadiness) \| null | нет | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "undo_last_cell_edit",
"subsetId": "",
"requestedBackend": "native-desktop"
}
```
## undo\_last\_range\_edit [Заголовок раздела «undo\_last\_range\_edit»](#undo_last_range_edit) Отменяет last range edit. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"undo_last_range_edit"` | да | | `subsetId` | string | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · undo\_last\_range\_edit** | Поле | Тип TypeScript | Обяз. | | ----------------------------- | ------------------------------------------------------------------------------------------------------------ | ----- | | operation | `"undo_last_range_edit"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `restoredRange` | [CellRange](/reference/f1/types-cells/#cellrange) | да | | `restoredKeys` | string\[] | да | | `changedKeys` | string\[] | да | | `dirtyCellCount` | number | да | | `sheetProtected` | boolean | да | | `conditionalFormattingRules` | [ContractConditionalRule](/reference/f1/types-format/#contractconditionalrule)\[] | нет | | `currentSourceSaveReadiness` | [ContractCurrentSourceSaveReadiness](/reference/f1/types-common/#contractcurrentsourcesavereadiness) \| null | нет | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `dataValidationMetadata` | [ContractDataValidationMetadata](/reference/f1/types-data/#contractdatavalidationmetadata) | да | | `tableName` | string \| null | нет | | `tableRef` | string \| null | нет | | `tableDataBodyRef` | string \| null | нет | | `tableMetadata` | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) \| null | нет | | `workbookTableMetadata` | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) \| null | нет | | `worksheetAutoFilterMetadata` | [ContractWorksheetAutoFilterMetadata](/reference/f1/types-data/#contractworksheetautofiltermetadata) \| null | нет | | `hiddenRows` | number\[] | да | | `manualHiddenRows` | number\[] | да | | `filterHiddenRows` | number\[] | да | | `rangeFilterHistoryReplay` | boolean | да | **Минимальный JSON-шаблон**
```json
{
"operation": "undo_last_range_edit",
"subsetId": "",
"requestedBackend": "native-desktop"
}
```
# Сеанс и соглашения F1
> Идентификатор сеанса, нулевые индексы, ограниченные запросы, защита от гонки, ответы с именем другой операции и поля, которые приходят почти всегда.
Имена полей в F1 записываются слитно, со строчной первой буквы: `subsetId`, `sheetKey`, `expectedRevision`, `requestId`. Это отличается от A4, где слова разделены подчёркиванием — `document_id`, `paragraph_index`. Если вы встраиваете оба продукта, поле из одного в другом не найдётся. Размеры листа приходят в единицах Excel, и они разные. Ширина колонки — в символьных единицах: одна единица равна ширине цифры в шрифте по умолчанию, и колонка обычной ширины — это `8.43`, а не восемь пикселей. Высота строки — в пунктах, то есть в семьдесят вторых долях дюйма: обычная строка — `15`. Пикселей в контракте нет ни там, ни там. У самих операций стиля два, и это не опечатка: почти все записаны через подчёркивание — `apply_cell_edits`, `save_workbook_subset`, — а девятнадцать через дефис. Это семнадцать операций Power Query с приставкой `pq-` и две операции внешних диапазонов, `external-range-properties-apply` и `external-range-properties-inventory`. Имя операции передаётся буква в букву: приводить его к одному виду нельзя — ядро такой операции не знает. Строки и столбцы считаются с нуля: первая строка — `0`. Так же считаются границы видимой области. Диапазон описывается полями `sheetKey`, `rowStart`, `rowEnd`, `colStart`, `colEnd`. Открытие книги — операциями `open_workbook_subset` или `open_workbook_subset_from_bytes` — возвращает `subsetId`. Все последующие операции над этой книгой передают его обратно: по нему ядро узнаёт, о каком открытом сеансе речь. Поле `expectedRevision` — защита от гонки. Если оно передано и книга с тех пор изменилась, запрос отклоняется **до** правки, а не применяется поверх чужой. Поле необязательное: без него правка идёт безусловно. Запросы видимой области и диапазона должны оставаться ограниченными: контракт не обещает развернуть книгу в память целиком, и запрос «отдай всё» рассчитывать не на что. Успешный ответ может прийти с именем **другой** операции — той, к которой запрос свёлся внутри ядра: * `open_workbook_subset_from_bytes` отвечает как `open_workbook_subset`; * `move_clipboard_range` отвечает как `paste_range`; * `paste_conditional_formatting_rules` отвечает как `apply_conditional_formatting_rules`. Обработчик, который сверяет имя операции в ответе с отправленным, эти три случая не узнает. Связывать запрос с ответом нужно по идентификатору, а не по имени. ## Поля, которые приходят почти всегда [Заголовок раздела «Поля, которые приходят почти всегда»](#поля-которые-приходят-почти-всегда) | Поле | Что означает | | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | `previewCells` | Ячейки запрошенного участка: адрес, показанное значение, вид значения и исходная формула, если она есть. Это то, что рисуют на экране. | | `recalcNeeded` | `true`, если в книге остались формулы, ждущие пересчёта. Значения в `previewCells` при этом уже показаны — но могут быть не окончательными. | | `supportedSubset` | Строкой описано, какое подмножество формул ядро понимает в этом сеансе. Полезно показывать в диагностике, а не разбирать в коде. | | `dirtyCellCount` | Сколько ячеек изменено с открытия книги. По нему удобно показывать признак несохранённого. | | `layoutMetrics` | Раскладка листа: высоты строк, ширины столбцов, скрытые строки и столбцы, объединения. Приходит не в каждом ответе — только там, где нужна для отрисовки. |
# Данные, фильтры и объекты
> Фильтры, промежуточные итоги, очистка данных, таблицы, импорт текста, проверка данных, срезы и элементы управления. Операций на странице: 23.
Фильтры, промежуточные итоги, очистка данных, таблицы, импорт текста, проверка данных, срезы и элементы управления. Термины — в [глоссарии](/start/glossary/). **Операции на этой странице — 23** * [`advanced_filter_plan`](#advanced_filter_plan) * [`apply_outline_subtotal`](#apply_outline_subtotal) * [`apply_range_filter`](#apply_range_filter) * [`commit_delimited_text_import`](#commit_delimited_text_import) * [`data_cleanup`](#data_cleanup) * [`drawing_object_action`](#drawing_object_action) * [`drawing_object_history_replay`](#drawing_object_history_replay) * [`evaluate_data_validation_input`](#evaluate_data_validation_input) * [`external-range-properties-apply`](#external-range-properties-apply) * [`external-range-properties-inventory`](#external-range-properties-inventory) * [`finalize_object_selection_pane_package`](#finalize_object_selection_pane_package) * [`form_controls`](#form_controls) * [`mutate_table_hyperlink_artifacts`](#mutate_table_hyperlink_artifacts) * [`mutate_table_model`](#mutate_table_model) * [`open_document_object_creation`](#open_document_object_creation) * [`read_data_validation_rules`](#read_data_validation_rules) * [`set_data_validation_rules`](#set_data_validation_rules) * [`set_range_filter_enabled`](#set_range_filter_enabled) * [`slicer_timeline`](#slicer_timeline) * [`sort_filter_index_update`](#sort_filter_index_update) * [`sparkline_actions`](#sparkline_actions) * [`sparkline_history_replay`](#sparkline_history_replay) * [`update_table_model`](#update_table_model) ## advanced\_filter\_plan [Заголовок раздела «advanced\_filter\_plan»](#advanced_filter_plan) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------- | -------------------------------------------------------------------------------------- | ----- | | operation | `"advanced_filter_plan"` | да | | `subsetId` | string | да | | action | [ContractAdvancedFilterAction](/reference/f1/types-data/#contractadvancedfilteraction) | да | | `listRange` | [CellRange](/reference/f1/types-cells/#cellrange) | да | | `criteriaRange` | [CellRange](/reference/f1/types-cells/#cellrange) \| null | нет | | `copyToRange` | [CellRange](/reference/f1/types-cells/#cellrange) \| null | нет | | `uniqueRecordsOnly` | boolean | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · advanced\_filter\_plan** | Поле | Тип TypeScript | Обяз. | | --------------------- | ------------------------------------------------------------------------------------------------------- | ----- | | operation | `"advanced_filter_plan"` | да | | `matchedRows` | number\[] | да | | `hiddenRows` | number\[] | да | | `projectionCells` | [ContractAdvancedFilterProjectedCell](/reference/f1/types-data/#contractadvancedfilterprojectedcell)\[] | да | | `outputRange` | [CellRange](/reference/f1/types-cells/#cellrange) \| null | нет | | `sourceRowCount` | number | да | | `resultRowCount` | number | да | | `criteriaRowCount` | number | да | | `uniqueRecordsOnly` | boolean | да | | `formulaCriteriaUsed` | boolean | да | **Минимальный JSON-шаблон**
```json
{
"operation": "advanced_filter_plan",
"subsetId": "",
"action": "",
"listRange": "",
"requestedBackend": "native-desktop"
}
```
## apply\_outline\_subtotal [Заголовок раздела «apply\_outline\_subtotal»](#apply_outline_subtotal) Применяет outline subtotal. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------------------- | ----- | | operation | `"apply_outline_subtotal"` | да | | `subsetId` | string | да | | range | [CellRange](/reference/f1/types-cells/#cellrange) | да | | action | [ContractOutlineSubtotalAction](/reference/f1/types-data/#contractoutlinesubtotalaction) | да | | axis | [ContractOutlineAxis](/reference/f1/types-data/#contractoutlineaxis) \| null | нет | | level | number \| null | нет | | subtotal | [ContractSubtotalOptions](/reference/f1/types-data/#contractsubtotaloptions) \| null | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · apply\_outline\_subtotal** | Поле | Тип TypeScript | Обяз. | | ----------------- | ---------------------------------------------------------------------------------------- | ----- | | operation | `"apply_outline_subtotal"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | [ContractOutlineSubtotalAction](/reference/f1/types-data/#contractoutlinesubtotalaction) | да | | `didChange` | boolean | да | | `outlineState` | [ContractOutlineSubtotalState](/reference/f1/types-data/#contractoutlinesubtotalstate) | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "apply_outline_subtotal",
"subsetId": "",
"range": "",
"action": "",
"requestedBackend": "native-desktop"
}
```
## apply\_range\_filter [Заголовок раздела «apply\_range\_filter»](#apply_range_filter) Применяет range filter. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------------------------- | ----- | | operation | `"apply_range_filter"` | да | | `subsetId` | string | да | | range | [CellRange](/reference/f1/types-cells/#cellrange) | да | | action | [ContractRangeFilterAction](/reference/f1/types-data/#contractrangefilteraction) | нет | | `targetColumn` | number \| null | нет | | criteria | [ContractRangeFilterColumnCriteria](/reference/f1/types-format/#contractrangefiltercolumncriteria)\[] | нет | | `headerPolicy` | [ContractRemoveDuplicatesHeaderPolicy](/reference/f1/types-print/#contractremoveduplicatesheaderpolicy) | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · apply\_range\_filter** | Поле | Тип TypeScript | Обяз. | | ------------------ | ----------------------------------------------------------------------------------------------------- | ----- | | operation | `"apply_range_filter"` | да | | `subsetId` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | [ContractRangeFilterAction](/reference/f1/types-data/#contractrangefilteraction) | да | | criteria | [ContractRangeFilterColumnCriteria](/reference/f1/types-format/#contractrangefiltercolumncriteria)\[] | да | | `hiddenRows` | number\[] | да | | `manualHiddenRows` | number\[] | да | | `filterHiddenRows` | number\[] | да | | `hiddenRowCount` | number | да | | `visibleRowCount` | number | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `recalcNeeded` | boolean | да | **Минимальный JSON-шаблон**
```json
{
"operation": "apply_range_filter",
"subsetId": "",
"range": "",
"requestedBackend": "native-desktop"
}
```
## commit\_delimited\_text\_import [Заголовок раздела «commit\_delimited\_text\_import»](#commit_delimited_text_import) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). Фиксирует delimited text import. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | -------------------------------------------------------------------------------------------------- | ----- | | operation | `"commit_delimited_text_import"` | да | | `subsetId` | string | да | | edits | [CellInputEdit](/reference/f1/types-cells/#cellinputedit)\[] | да | | destination | [ContractDelimitedImportDestination](/reference/f1/types-data/#contractdelimitedimportdestination) | да | | `expectedRevision` | number \| null | нет | | `readOnly` | boolean | нет | | cancelled | boolean | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · commit\_delimited\_text\_import** | Поле | Тип TypeScript | Обяз. | | ------------------ | --------------------------------------------------------------------------------------------------- | ----- | | operation | `"commit_delimited_text_import"` | да | | `subsetId` | string | да | | `createdSheet` | boolean | да | | `sheetKey` | string | да | | `appliedEditCount` | number | да | | `mutationCount` | number | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | projection | ComputeResponsePayload | да | **Минимальный JSON-шаблон**
```json
{
"operation": "commit_delimited_text_import",
"subsetId": "",
"edits": [],
"destination": "",
"requestedBackend": "native-desktop"
}
```
## data\_cleanup [Заголовок раздела «data\_cleanup»](#data_cleanup) **Запрос** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ---------------------------- | ---------------------------------------------------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------ | | operation | `"data_cleanup"` | да | | | `subsetId` | string | да | | | action | [ContractDataCleanupAction](/reference/f1/types-common/#contractdatacleanupaction) | да | | | intent | [ContractDataCleanupIntent](/reference/f1/types-common/#contractdatacleanupintent) | да | | | `consecutiveDelimitersAsOne` | boolean | нет | Считать несколько разделителей подряд одним — при разборе текста по столбцам. | | locale | string \| null | нет | Язык и региональные правила, по которым ядро распознаёт тип значения в общем формате — например, запятая как десятичный разделитель для `ru-RU`. | | `expectedRevision` | number \| null | нет | Central workbook revision observed by Preview; Apply refuses a mismatch before mutation. | | `previewToken` | string \| null | нет | | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | | **Ответ при успехе · data\_cleanup** | Поле | Тип TypeScript | Обяз. | | ------------------- | --------------------------------------------------------------------------------------------------- | ----- | | operation | `"data_cleanup"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | kind | `"text_to_columns"` \| “remove\_duplicates” \| “remove\_duplicates\_copy” | да | | `previewToken` | string | да | | applied | boolean | да | | `sourceRange` | [CellRange](/reference/f1/types-cells/#cellrange) | да | | `outputRange` | [CellRange](/reference/f1/types-cells/#cellrange) | да | | `duplicateCount` | number | да | | `remainingCount` | number | да | | `headerRowCount` | number | да | | `resultRowCount` | number | да | | `resultColCount` | number | да | | `copyOutput` | boolean | да | | `duplicateRowSpans` | [ContractDataCleanupRowSpan](/reference/f1/types-format/#contractdatacleanuprowspan)\[] | да | | audit | [ContractDataCleanupAudit](/reference/f1/types-formulas/#contractdatacleanupaudit) | да | | `tableName` | string \| null | нет | | `tableRef` | string \| null | нет | | `tableDataBodyRef` | string \| null | нет | | `previewRows` | [ContractDataCleanupPreviewRow](/reference/f1/types-format/#contractdatacleanuppreviewrow)\[] | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `changedKeys` | string\[] | да | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "data_cleanup",
"subsetId": "",
"action": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## drawing\_object\_action [Заголовок раздела «drawing\_object\_action»](#drawing_object_action) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | -------------------------------------------------------------------------------------- | ----- | | operation | “drawing\_object\_action” | да | | `subsetId` | string | да | | action | [ContractDrawingObjectAction](/reference/f1/types-charts/#contractdrawingobjectaction) | да | | `expectedRevision` | number | да | | `readOnly` | boolean | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | **Ответ при успехе · drawing\_object\_action** | Поле | Тип TypeScript | Обяз. | | ------------------------ | ------------------------------------------------------------------------------------------------------------ | ----- | | operation | “drawing\_object\_action” | да | | `subsetId` | string | да | | `changedStableIds` | string\[] | да | | `regroupGroupId` | string \| null | нет | | `regroupMemberStableIds` | string\[] | да | | dirty | boolean | да | | `authoritativeRevision` | number | да | | `historyOwner` | “drawing\_objects” | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `surfaceObjects` | [ContractSheetObject](/reference/f1/types-session/#contractsheetobject)\[] | да | | `objectInventory` | [ContractWorkbookObjectInventoryEntry](/reference/f1/types-session/#contractworkbookobjectinventoryentry)\[] | да | | `inkProjection` | [ContractReviewInkProjectionItem](/reference/f1/types-protection/#contractreviewinkprojectionitem)\[] | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "drawing_object_action",
"subsetId": "",
"action": "",
"expectedRevision": 0
}
```
## drawing\_object\_history\_replay [Заголовок раздела «drawing\_object\_history\_replay»](#drawing_object_history_replay) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Ответ при успехе · drawing\_object\_history\_replay** | Поле | Тип TypeScript | Обяз. | | ----------------- | ------------------------------------------------------------------------------------------------------------ | ----- | | operation | “drawing\_object\_history\_replay” | да | | `subsetId` | string | да | | direction | [ContractWorkbookHistoryDirection](/reference/f1/types-session/#contractworkbookhistorydirection) | да | | dirty | boolean | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `surfaceObjects` | [ContractSheetObject](/reference/f1/types-session/#contractsheetobject)\[] | да | | `objectInventory` | [ContractWorkbookObjectInventoryEntry](/reference/f1/types-session/#contractworkbookobjectinventoryentry)\[] | да | | `inkProjection` | [ContractReviewInkProjectionItem](/reference/f1/types-protection/#contractreviewinkprojectionitem)\[] | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | нет | ## evaluate\_data\_validation\_input [Заголовок раздела «evaluate\_data\_validation\_input»](#evaluate_data_validation_input) Вычисляет/оценивает data validation input. **Запрос** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ------------------- | ---------------------------------------------------------------------------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | operation | `"evaluate_data_validation_input"` | да | | | `subsetId` | string | да | | | inputs | [ContractDataValidationRawInput](/reference/f1/types-data/#contractdatavalidationrawinput)\[] | да | | | `companionEdits` | [CellInputEdit](/reference/f1/types-cells/#cellinputedit)\[] | нет | | | `programmaticEdits` | [CellInputEdit](/reference/f1/types-cells/#cellinputedit)\[] | нет | Rust expands fill-series/drag-fill before judging every destination. | | commit | boolean | нет | | | `expectedRevision` | number \| null | нет | Необязательная проверка от гонок при `commit: true`. При расхождении приходит отказ `apply-cell-edits-stale-revision` до того, как изменятся ячейки, история или ревизия. Проверочный вызов с `commit: false` правкой не становится. | | continuation | [ContractDataValidationContinuation](/reference/f1/types-data/#contractdatavalidationcontinuation) \| null | нет | | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | | **Ответ при успехе · evaluate\_data\_validation\_input** | Поле | Тип TypeScript | Обяз. | | ------------------- | ------------------------------------------------------------------------------------------------ | ----- | | operation | `"evaluate_data_validation_input"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | verdict | [ContractDataValidationVerdictKind](/reference/f1/types-data/#contractdatavalidationverdictkind) | да | | verdicts | [ContractDataValidationVerdict](/reference/f1/types-data/#contractdatavalidationverdict)\[] | да | | `continuationToken` | string \| null | нет | | `allowedDecisions` | [ContractDataValidationDecision](/reference/f1/types-data/#contractdatavalidationdecision)\[] | нет | | committed | ComputeResponsePayload \| null | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "evaluate_data_validation_input",
"subsetId": "",
"inputs": [],
"requestedBackend": "native-desktop"
}
```
## external-range-properties-apply [Заголовок раздела «external-range-properties-apply»](#external-range-properties-apply) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | -------------------------------------------------------------------------------------------- | ----- | | operation | “external-range-properties-apply” | да | | `subsetId` | string | да | | `expectedRevision` | number | нет | | identity | [ContractExternalRangeIdentity](/reference/f1/types-data/#contractexternalrangeidentity) | да | | properties | [ContractExternalRangeProperties](/reference/f1/types-data/#contractexternalrangeproperties) | да | **Ответ при успехе · external-range-properties-apply** | Поле | Тип TypeScript | Обяз. | | ----------------- | --------------------------------------------------------------------------------------------------- | ----- | | operation | “external-range-properties-apply” | да | | applied | boolean | да | | reason | string | нет | | detail | string | нет | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | нет | | ranges | [ContractExternalRangeEntry](/reference/f1/types-data/#contractexternalrangeentry)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "external-range-properties-apply",
"subsetId": "",
"identity": "",
"properties": ""
}
```
## external-range-properties-inventory [Заголовок раздела «external-range-properties-inventory»](#external-range-properties-inventory) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------- | ------------------------------------- | ----- | | operation | “external-range-properties-inventory” | да | | `subsetId` | string | да | **Ответ при успехе · external-range-properties-inventory** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------------------------------------------------------------- | ----- | | operation | “external-range-properties-inventory” | да | | ranges | [ContractExternalRangeEntry](/reference/f1/types-data/#contractexternalrangeentry)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "external-range-properties-inventory",
"subsetId": ""
}
```
## finalize\_object\_selection\_pane\_package [Заголовок раздела «finalize\_object\_selection\_pane\_package»](#finalize_object_selection_pane_package) Завершает object selection pane package. **Запрос** | Поле | Тип TypeScript | Обяз. | | ----------------------------- | --------------------------------------------------------------------------------------------------------------------- | ----- | | operation | `"finalize_object_selection_pane_package"` | да | | `subsetId` | string | да | | `sourcePackageBytesBase64` | string | да | | `candidatePackageBytesBase64` | string | да | | `objectProtectionMutations` | [ContractSheetObjectMutationIntent](/reference/f1/types-session/#contractsheetobjectmutationintent)\[] | да | | commands | [ContractObjectSelectionPanePackageCommand](/reference/f1/types-common/#contractobjectselectionpanepackagecommand)\[] | да | | `drawingTextEdits` | [ContractDrawingTextEditSemantics](/reference/f1/types-charts/#contractdrawingtexteditsemantics)\[] | да | | `adoptCurrentSource` | boolean | да | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · finalize\_object\_selection\_pane\_package** | Поле | Тип TypeScript | Обяз. | | --------------------------- | ------------------------------------------ | ----- | | operation | `"finalize_object_selection_pane_package"` | да | | `packageBytesBase64` | string | да | | `byteCount` | number | да | | `mutationCount` | number | да | | `authoritativeRevision` | number | да | | `validatedDrawingTextCount` | number | да | | `adoptedCurrentSource` | boolean | да | **Минимальный JSON-шаблон**
```json
{
"operation": "finalize_object_selection_pane_package",
"subsetId": "",
"sourcePackageBytesBase64": "",
"candidatePackageBytesBase64": "",
"objectProtectionMutations": [],
"commands": [],
"drawingTextEdits": [],
"adoptCurrentSource": false,
"requestedBackend": "native-desktop"
}
```
## form\_controls [Заголовок раздела «form\_controls»](#form_controls) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------ | ----- | | operation | `"form_controls"` | да | | `subsetId` | string | да | | intent | [ContractFormControlsAction](/reference/f1/types-common/#contractformcontrolsaction) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · form\_controls** | Поле | Тип TypeScript | Обяз. | | ----------------- | ------------------------------------------------------------------------------------------------------------ | ----- | | operation | `"form_controls"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | status | string | да | | controls | [ContractFormControlView](/reference/f1/types-common/#contractformcontrolview)\[] | да | | `objectInventory` | [ContractWorkbookObjectInventoryEntry](/reference/f1/types-session/#contractworkbookobjectinventoryentry)\[] | да | | `linkedCellWrite` | [ContractFormControlLinkedCellWrite](/reference/f1/types-cells/#contractformcontrollinkedcellwrite) \| null | нет | | `changedKeys` | string\[] | да | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "form_controls",
"subsetId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## mutate\_table\_hyperlink\_artifacts [Заголовок раздела «mutate\_table\_hyperlink\_artifacts»](#mutate_table_hyperlink_artifacts) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | -------------------------------------------------------------------------------------- | ----- | | operation | “mutate\_table\_hyperlink\_artifacts” | да | | `subsetId` | string | да | | action | [ContractTableHyperlinkAction](/reference/f1/types-data/#contracttablehyperlinkaction) | да | | `expectedRevision` | number | да | | `readOnly` | boolean | нет | | protected | boolean | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | **Ответ при успехе · mutate\_table\_hyperlink\_artifacts** | Поле | Тип TypeScript | Обяз. | | --------------------------- | ------------------------------------------------------------------------------------------------------ | ----- | | operation | “mutate\_table\_hyperlink\_artifacts” | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | `tableMetadata` | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) | да | | `workbookTableMetadata` | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) | да | | `hyperlinkMetadata` | [ContractHyperlinkMetadataProjection](/reference/f1/types-common/#contracthyperlinkmetadataprojection) | да | | `workbookHyperlinkMetadata` | [ContractHyperlinkMetadataProjection](/reference/f1/types-common/#contracthyperlinkmetadataprojection) | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "mutate_table_hyperlink_artifacts",
"subsetId": "",
"action": "",
"expectedRevision": 0
}
```
## mutate\_table\_model [Заголовок раздела «mutate\_table\_model»](#mutate_table_model) Изменяет table model. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------------- | ----- | | operation | `"mutate_table_model"` | да | | `subsetId` | string | да | | mutation | [ContractTableModelMutation](/reference/f1/types-data/#contracttablemodelmutation) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · mutate\_table\_model** | Поле | Тип TypeScript | Обяз. | | ----------------------- | --------------------------------------------------------------------------------------------------- | ----- | | operation | `"mutate_table_model"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | `tableMetadata` | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) | да | | `workbookTableMetadata` | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "mutate_table_model",
"subsetId": "",
"mutation": "",
"requestedBackend": "native-desktop"
}
```
## open\_document\_object\_creation [Заголовок раздела «open\_document\_object\_creation»](#open_document_object_creation) Открывает document object creation. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------------------------------- | ----- | | operation | `"open_document_object_creation"` | да | | `subsetId` | string | да | | `sheetPath` | string | да | | creation | [ContractOpenDocumentObjectCreation](/reference/f1/types-common/#contractopendocumentobjectcreation) | да | | `readOnly` | boolean | нет | | `expectedRevision` | number \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · open\_document\_object\_creation** | Поле | Тип TypeScript | Обяз. | | ----------------------- | ------------------------------------------------------------------------------------------ | ----- | | operation | `"open_document_object_creation"` | да | | `subsetId` | string | да | | `createdObject` | [ContractCreatedDocumentObject](/reference/f1/types-common/#contractcreateddocumentobject) | да | | `byteCount` | number | да | | dirty | boolean | да | | `undoDepth` | number | да | | `redoDepth` | number | да | | `authoritativeRevision` | number | да | | `historyOwner` | `"drawing_objects"` | да | **Минимальный JSON-шаблон**
```json
{
"operation": "open_document_object_creation",
"subsetId": "",
"sheetPath": "",
"creation": "",
"requestedBackend": "native-desktop"
}
```
## read\_data\_validation\_rules [Заголовок раздела «read\_data\_validation\_rules»](#read_data_validation_rules) Читает data validation rules. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"read_data_validation_rules"` | да | | `subsetId` | string | да | | `sheetKey` | string | да | | range | [CellRange](/reference/f1/types-cells/#cellrange) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · read\_data\_validation\_rules** | Поле | Тип TypeScript | Обяз. | | ------------------------ | ------------------------------------------------------------------------------------------ | ----- | | operation | `"read_data_validation_rules"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `sheetKey` | string | да | | `dataValidationMetadata` | [ContractDataValidationMetadata](/reference/f1/types-data/#contractdatavalidationmetadata) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "read_data_validation_rules",
"subsetId": "",
"sheetKey": "",
"requestedBackend": "native-desktop"
}
```
## set\_data\_validation\_rules [Заголовок раздела «set\_data\_validation\_rules»](#set_data_validation_rules) Устанавливает data validation rules. **Запрос** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ------------------ | ------------------------------------------------------------------------------------------------- | ----- | ------------------------------------------------------------------------------ | | operation | `"set_data_validation_rules"` | да | | | `subsetId` | string | да | | | `sheetKey` | string | да | | | rules | [ContractDataValidationRuleIntent](/reference/f1/types-data/#contractdatavalidationruleintent)\[] | да | | | `sourceLocale` | string \| null | нет | Request-local locale used by Rust to validate list Source syntax. | | `expectedRevision` | number \| null | нет | Refuses stale rule authoring before XML, dirty, history, or revision mutation. | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | | **Ответ при успехе · set\_data\_validation\_rules** | Поле | Тип TypeScript | Обяз. | | ------------------------ | --------------------------------------------------------------------------------------------------- | ----- | | operation | `"set_data_validation_rules"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `sheetKey` | string | да | | `appliedRuleCount` | number | да | | `dataValidationMetadata` | [ContractDataValidationMetadata](/reference/f1/types-data/#contractdatavalidationmetadata) | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "set_data_validation_rules",
"subsetId": "",
"sheetKey": "",
"rules": [],
"requestedBackend": "native-desktop"
}
```
## set\_range\_filter\_enabled [Заголовок раздела «set\_range\_filter\_enabled»](#set_range_filter_enabled) Устанавливает range filter enabled. **Запрос** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ------------------ | ---------------------------------------------------------------------------- | ----- | ----------------------------------------------------------------------------------------------------- | | operation | `"set_range_filter_enabled"` | да | То же, что кнопка «Данные ▸ Фильтр»: включает или снимает автофильтр для выбранной таблицы или листа. | | `subsetId` | string | да | | | range | [CellRange](/reference/f1/types-cells/#cellrange) | да | | | enabled | boolean | да | | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | | **Ответ при успехе · set\_range\_filter\_enabled** | Поле | Тип TypeScript | Обяз. | | ----------------------- | --------------------------------------------------------------------------------------------------- | ----- | | operation | `"set_range_filter_enabled"` | да | | `subsetId` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `autoFilterRef` | string | нет | | `unhiddenRowCount` | number | да | | `targetKind` | `"range"` \| “table” | да | | `tableMetadata` | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) | да | | `workbookTableMetadata` | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `recalcNeeded` | boolean | да | **Минимальный JSON-шаблон**
```json
{
"operation": "set_range_filter_enabled",
"subsetId": "",
"range": "",
"enabled": false,
"requestedBackend": "native-desktop"
}
```
## slicer\_timeline [Заголовок раздела «slicer\_timeline»](#slicer_timeline) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------------- | -------------------------------------------------------------------------------------- | ----- | | operation | `"slicer_timeline"` | да | | `subsetId` | string | да | | intent | [ContractSlicerTimelineAction](/reference/f1/types-data/#contractslicertimelineaction) | да | | `expectedCacheGeneration` | number \| null | нет | | `requestGeneration` | number \| null | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · slicer\_timeline** | Поле | Тип TypeScript | Обяз. | | ------------------- | ---------------------------------------------------------------------------------------------------- | ----- | | operation | `"slicer_timeline"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | status | string | да | | controls | [ContractSlicerTimelineControlView](/reference/f1/types-data/#contractslicertimelinecontrolview)\[] | да | | `changedRows` | number\[] | да | | `hiddenRows` | number\[] | да | | `refreshTargets` | string\[] | да | | `connectedTargets` | [ContractSlicerTimelineTargetView](/reference/f1/types-data/#contractslicertimelinetargetview)\[] | да | | `filterConnections` | [ContractPivotFilterConnectionView](/reference/f1/types-pivot/#contractpivotfilterconnectionview)\[] | да | | `refreshStatus` | [ContractPivotRefreshStatusView](/reference/f1/types-pivot/#contractpivotrefreshstatusview) \| null | нет | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "slicer_timeline",
"subsetId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## sort\_filter\_index\_update [Заголовок раздела «sort\_filter\_index\_update»](#sort_filter_index_update) Сортирует filter index update. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"sort_filter_index_update"` | да | | `subsetId` | string | да | | range | [CellRange](/reference/f1/types-cells/#cellrange) | да | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · sort\_filter\_index\_update** | Поле | Тип TypeScript | Обяз. | | -------------- | ------------------------------------------------------- | ----- | | operation | `"sort_filter_index_update"` | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `indexVersion` | number | да | **Минимальный JSON-шаблон**
```json
{
"operation": "sort_filter_index_update",
"subsetId": "",
"range": "",
"requestedBackend": "native-desktop"
}
```
## sparkline\_actions [Заголовок раздела «sparkline\_actions»](#sparkline_actions) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------------- | ----- | | operation | “sparkline\_actions” | да | | `subsetId` | string | да | | mode | [ContractSparklinePlanMode](/reference/f1/types-charts/#contractsparklineplanmode) | да | | action | [ContractSparklineAction](/reference/f1/types-charts/#contractsparklineaction) | да | | `expectedRevision` | number | да | | `readOnly` | boolean | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | **Ответ при успехе · sparkline\_actions** | Поле | Тип TypeScript | Обяз. | | ----------------------- | --------------------------------------------------------------------------------------------------- | ----- | | operation | “sparkline\_actions” | да | | `subsetId` | string | да | | mode | [ContractSparklinePlanMode](/reference/f1/types-charts/#contractsparklineplanmode) | да | | applied | boolean | да | | dirty | boolean | да | | `authoritativeRevision` | number | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | projection | [ContractSparklineProjectionEntry](/reference/f1/types-charts/#contractsparklineprojectionentry)\[] | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "sparkline_actions",
"subsetId": "",
"mode": "",
"action": "",
"expectedRevision": 0
}
```
## sparkline\_history\_replay [Заголовок раздела «sparkline\_history\_replay»](#sparkline_history_replay) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Ответ при успехе · sparkline\_history\_replay** | Поле | Тип TypeScript | Обяз. | | ----------------- | --------------------------------------------------------------------------------------------------- | ----- | | operation | “sparkline\_history\_replay” | да | | `subsetId` | string | да | | direction | [ContractWorkbookHistoryDirection](/reference/f1/types-session/#contractworkbookhistorydirection) | да | | dirty | boolean | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | projection | [ContractSparklineProjectionEntry](/reference/f1/types-charts/#contractsparklineprojectionentry)\[] | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | нет | ## update\_table\_model [Заголовок раздела «update\_table\_model»](#update_table_model) Обновляет table model. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------------- | ----- | | operation | `"update_table_model"` | да | | `subsetId` | string | да | | table | [ContractTableMetadataEntry](/reference/f1/types-data/#contracttablemetadataentry) | да | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · update\_table\_model** | Поле | Тип TypeScript | Обяз. | | ----------------------- | -------------------------------------------------------------------------------------------- | ----- | | operation | `"update_table_model"` | да | | `subsetId` | string | да | | `stableId` | string | да | | `tableCount` | number | да | | `tableMetadata` | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) | да | | `workbookTableMetadata` | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "update_table_model",
"subsetId": "",
"table": "",
"requestedBackend": "native-desktop"
}
```
# Форматирование
> Ширина колонок и высота строк, объединение ячеек, темы и шрифты, условное форматирование. Операций на странице: 10.
Ширина колонок и высота строк, объединение ячеек, темы и шрифты, условное форматирование. Термины — в [глоссарии](/start/glossary/). **Операции на этой странице — 10** * [`apply_column_width`](#apply_column_width) * [`apply_conditional_formatting_rules`](#apply_conditional_formatting_rules) * [`apply_merge_cells`](#apply_merge_cells) * [`apply_row_height`](#apply_row_height) * [`apply_theme_fonts_patch`](#apply_theme_fonts_patch) * [`apply_workbook_theme`](#apply_workbook_theme) * [`manage_cell_styles`](#manage_cell_styles) * [`manage_conditional_formatting_rules`](#manage_conditional_formatting_rules) * [`manage_table_styles`](#manage_table_styles) * [`paste_conditional_formatting_rules`](#paste_conditional_formatting_rules) ## apply\_column\_width [Заголовок раздела «apply\_column\_width»](#apply_column_width) Применяет column width. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"apply_column_width"` | да | | `subsetId` | string | да | | `sheetKey` | string | да | | col | number \| null | нет | | width | number \| null | нет | | columns | [ContractColumnWidth](/reference/f1/types-format/#contractcolumnwidth)\[] | нет | | `defaultWidth` | number \| null | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · apply\_column\_width** | Поле | Тип TypeScript | Обяз. | | ---------------------------- | ------------------------------------------------------------------------------------------------------------ | ----- | | operation | `"apply_column_width"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `changedColumns` | number\[] | да | | `dirtyCellCount` | number | да | | `currentSourceSaveReadiness` | [ContractCurrentSourceSaveReadiness](/reference/f1/types-common/#contractcurrentsourcesavereadiness) \| null | нет | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "apply_column_width",
"subsetId": "",
"sheetKey": "",
"requestedBackend": "native-desktop"
}
```
## apply\_conditional\_formatting\_rules [Заголовок раздела «apply\_conditional\_formatting\_rules»](#apply_conditional_formatting_rules) Применяет conditional formatting rules. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | --------------------------------------------------------------------------------- | ----- | | operation | `"apply_conditional_formatting_rules"` | да | | `subsetId` | string | да | | `sheetKey` | string | да | | rules | [ContractConditionalRule](/reference/f1/types-format/#contractconditionalrule)\[] | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · apply\_conditional\_formatting\_rules** | Поле | Тип TypeScript | Обяз. | | ------------------------------------ | ----------------------------------------------------------------------------------- | ----- | | operation | `"apply_conditional_formatting_rules"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | rules | [ContractConditionalRule](/reference/f1/types-format/#contractconditionalrule)\[] | да | | `preservedUnsupportedRuleBlockCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "apply_conditional_formatting_rules",
"subsetId": "",
"sheetKey": "",
"rules": [],
"requestedBackend": "native-desktop"
}
```
## apply\_merge\_cells [Заголовок раздела «apply\_merge\_cells»](#apply_merge_cells) Применяет merge cells. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------ | ----- | | operation | `"apply_merge_cells"` | да | | `subsetId` | string | да | | `sheetKey` | string | да | | range | [CellRange](/reference/f1/types-cells/#cellrange) | да | | merge | boolean | да | | mode | [ContractMergeCellsMode](/reference/f1/types-format/#contractmergecellsmode) \| null | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · apply\_merge\_cells** | Поле | Тип TypeScript | Обяз. | | ---------------------------- | ------------------------------------------------------------------------------------------------------------ | ----- | | operation | `"apply_merge_cells"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | merge | boolean | да | | mode | [ContractMergeCellsMode](/reference/f1/types-format/#contractmergecellsmode) | да | | `mergeRef` | string \| null | нет | | `mergeRefs` | string\[] | да | | `changedMerges` | string\[] | да | | `removedMerges` | string\[] | да | | `dirtyCellCount` | number | да | | `currentSourceSaveReadiness` | [ContractCurrentSourceSaveReadiness](/reference/f1/types-common/#contractcurrentsourcesavereadiness) \| null | нет | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "apply_merge_cells",
"subsetId": "",
"sheetKey": "",
"range": "",
"merge": false,
"requestedBackend": "native-desktop"
}
```
## apply\_row\_height [Заголовок раздела «apply\_row\_height»](#apply_row_height) Применяет row height. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"apply_row_height"` | да | | `subsetId` | string | да | | `sheetKey` | string | да | | row | number \| null | нет | | height | number \| null | нет | | rows | [ContractRowHeight](/reference/f1/types-format/#contractrowheight)\[] | нет | | `defaultHeight` | number \| null | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · apply\_row\_height** | Поле | Тип TypeScript | Обяз. | | ---------------------------- | ------------------------------------------------------------------------------------------------------------ | ----- | | operation | `"apply_row_height"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `changedRows` | number\[] | да | | `dirtyCellCount` | number | да | | `currentSourceSaveReadiness` | [ContractCurrentSourceSaveReadiness](/reference/f1/types-common/#contractcurrentsourcesavereadiness) \| null | нет | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "apply_row_height",
"subsetId": "",
"sheetKey": "",
"requestedBackend": "native-desktop"
}
```
## apply\_theme\_fonts\_patch [Заголовок раздела «apply\_theme\_fonts\_patch»](#apply_theme_fonts_patch) Применяет theme fonts patch. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------------------- | ----- | | operation | `"apply_theme_fonts_patch"` | да | | `subsetId` | string | да | | patch | [ContractApplyThemeFontsPatch](/reference/f1/types-format/#contractapplythemefontspatch) | да | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · apply\_theme\_fonts\_patch** | Поле | Тип TypeScript | Обяз. | | ---------- | --------------------------- | ----- | | operation | `"apply_theme_fonts_patch"` | да | | `subsetId` | string | да | | major | string | да | | minor | string | да | | applied | boolean | да | **Минимальный JSON-шаблон**
```json
{
"operation": "apply_theme_fonts_patch",
"subsetId": "",
"patch": "",
"requestedBackend": "native-desktop"
}
```
## apply\_workbook\_theme [Заголовок раздела «apply\_workbook\_theme»](#apply_workbook_theme) Применяет workbook theme. **Запрос** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ------------------ | --------------------------------------------------------------------------------------------------------- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | operation | `"apply_workbook_theme"` | да | | | `subsetId` | string | да | | | `presetId` | string | да | Идентификатор темы из каталога тем — цвета вместе со шрифтами. Если задано `colorsOnly`, идентификатор берётся из каталога цветовых наборов, то есть из того же списка, что и «Разметка страницы → Цвета». | | `colorsOnly` | boolean | нет | Применить только цветовой набор темы, не трогая шрифты. Без поля или при `false` тема применяется целиком — и цвета, и шрифты. | | `customColors` | [ContractWorkbookThemeColorScheme](/reference/f1/types-session/#contractworkbookthemecolorscheme) \| null | нет | | | `previewOnly` | boolean | нет | Разобрать книгу заново и показать результат в отдельном сеансе, ничего не изменяя. | | `expectedRevision` | number \| null | нет | Обязательно при сохранении; при просмотре без изменений не учитывается. | | `readOnly` | boolean | нет | | | protected | boolean | нет | | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | | **Ответ при успехе · apply\_workbook\_theme** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ------------------- | ----------------------------------------------------------------------------------------------------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | operation | `"apply_workbook_theme"` | да | Ответ повторяет по составу основные поля `open_workbook_subset` и `apply_cell_edits`, поэтому оболочка перерисовывает книгу тем же способом, что и после обычной правки, — отдельной обработки не требуется. | | `subsetId` | string | да | | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | | `appliedPresetId` | string | да | | | `createdThemePart` | boolean | да | | | `previewOnly` | boolean | нет | | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | | `recalcNeeded` | boolean | да | | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | нет | | | `themeColorPalette` | string\[] | нет | Палитра темы книги из двенадцати цветов — та же по составу и смыслу, что в `open_workbook_subset`, но уже после применения темы. По ней элементы, следующие за темой (например, стили таблиц), перекрашиваются сразу, без сохранения и повторного открытия. | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) \| null | нет | | **Минимальный JSON-шаблон**
```json
{
"operation": "apply_workbook_theme",
"subsetId": "",
"presetId": "",
"requestedBackend": "native-desktop"
}
```
## manage\_cell\_styles [Заголовок раздела «manage\_cell\_styles»](#manage_cell_styles) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------------------------- | ----- | | operation | “manage\_cell\_styles” | да | | `subsetId` | string | да | | action | [ContractCellStylesManagerAction](/reference/f1/types-format/#contractcellstylesmanageraction) | да | | `expectedRevision` | number \| null | нет | | `readOnly` | boolean | нет | | protected | boolean | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | **Ответ при успехе · manage\_cell\_styles** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------------------------------- | ----- | | operation | “manage\_cell\_styles” | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | action | “inspect” \| “commit” \| “applyStyle” \| “mergeFromWorkbook” | да | | styles | [ContractCellStyleDefinition](/reference/f1/types-format/#contractcellstyledefinition)\[] | да | | authority | [ContractCellStylesManagerAuthority](/reference/f1/types-format/#contractcellstylesmanagerauthority) | да | | `didChange` | boolean | да | | `changedCellCount` | number | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "manage_cell_styles",
"subsetId": "",
"action": ""
}
```
## manage\_conditional\_formatting\_rules [Заголовок раздела «manage\_conditional\_formatting\_rules»](#manage_conditional_formatting_rules) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). Управляет conditional formatting rules. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | -------------------------------------------------------------------------------------------------------------------- | ----- | | operation | `"manage_conditional_formatting_rules"` | да | | `subsetId` | string | да | | `sheetKey` | string | да | | action | [ContractConditionalFormattingManagerAction](/reference/f1/types-format/#contractconditionalformattingmanageraction) | да | | `expectedRevision` | number \| null | нет | | `readOnly` | boolean | нет | | protected | boolean | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · manage\_conditional\_formatting\_rules** | Поле | Тип TypeScript | Обяз. | | ----------------- | -------------------------------------------------------------------------------------------------------------------------- | ----- | | operation | `"manage_conditional_formatting_rules"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | action | `"inspect"` \| “apply” | да | | rules | [ContractConditionalRule](/reference/f1/types-format/#contractconditionalrule)\[] | да | | `opaqueRules` | [ContractConditionalFormattingOpaqueRule](/reference/f1/types-format/#contractconditionalformattingopaquerule)\[] | да | | authority | [ContractConditionalFormattingManagerAuthority](/reference/f1/types-format/#contractconditionalformattingmanagerauthority) | да | | `didChange` | boolean | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "manage_conditional_formatting_rules",
"subsetId": "",
"sheetKey": "",
"action": "",
"requestedBackend": "native-desktop"
}
```
## manage\_table\_styles [Заголовок раздела «manage\_table\_styles»](#manage_table_styles) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------------------ | ----- | | operation | “manage\_table\_styles” | да | | `subsetId` | string | да | | action | [ContractTableStylesManagerAction](/reference/f1/types-format/#contracttablestylesmanageraction) | да | | `expectedRevision` | number \| null | нет | | `readOnly` | boolean | нет | | protected | boolean | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | **Ответ при успехе · manage\_table\_styles** | Поле | Тип TypeScript | Обяз. | | ------------------- | ------------------------------------------------------------------------------------------------------ | ----- | | operation | “manage\_table\_styles” | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | action | “inspect” \| “commit” \| “applyStyle” | да | | styles | [ContractTableStyleDefinition](/reference/f1/types-format/#contracttablestyledefinition)\[] | да | | tables | [ContractTableMetadataProjection](/reference/f1/types-data/#contracttablemetadataprojection) | да | | authority | [ContractTableStylesManagerAuthority](/reference/f1/types-format/#contracttablestylesmanagerauthority) | да | | `didChange` | boolean | да | | `changedTableCount` | number | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "manage_table_styles",
"subsetId": "",
"action": ""
}
```
## paste\_conditional\_formatting\_rules [Заголовок раздела «paste\_conditional\_formatting\_rules»](#paste_conditional_formatting_rules) Вставляет conditional formatting rules. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"paste_conditional_formatting_rules"` | да | | `subsetId` | string | да | | `clipboardId` | string | да | | target | [CellRange](/reference/f1/types-cells/#cellrange) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · apply\_conditional\_formatting\_rules** | Поле | Тип TypeScript | Обяз. | | ------------------------------------ | ----------------------------------------------------------------------------------- | ----- | | operation | `"apply_conditional_formatting_rules"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | rules | [ContractConditionalRule](/reference/f1/types-format/#contractconditionalrule)\[] | да | | `preservedUnsupportedRuleBlockCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "paste_conditional_formatting_rules",
"subsetId": "",
"clipboardId": "",
"target": "",
"requestedBackend": "native-desktop"
}
```
# Что можно с каждым форматом
> Матрица форматов: где открытие и правка полные, где частичные, куда сохраняется файл и какие ограничения записаны в контракт.
Таблица собрана из реестра форматов в ядре: это не обещание на словах, а то, что ядро отвечает о себе само. Здесь видно, чем формат отличается от формата ещё до пилота. **Полностью** — работает без оговорок. **Частично** — работает в объявленных границах, остальное отклоняется с причиной. **Только выгрузкой** — сохранить можно, но в другой файл: исходный формат обратно не пишется. **FODS** — плоский ODS: тот же OpenDocument, но одним файлом XML вместо zip-пакета. У документов ему соответствует XODT. | Формат | Открыть | Править | Сохранить | Как сохраняет | Что записано в контракт | | ------------------ | --------- | --------- | ---------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | | XLSX | полностью | полностью | в тот же файл | родной формат туда и обратно | макросы не исполняются, VBA не истолковывается, общей среды языка M нет, полного совпадения Power Query нет | | XLSM | полностью | частично | в тот же файл | родной формат, непонятое переносится как есть | макросы не исполняются, VBA не истолковывается, общей среды языка M нет, полного совпадения Power Query нет | | XLSB | полностью | частично | в тот же файл | родной формат туда и обратно | — | | XLTX | полностью | частично | только выгрузкой | родной формат туда и обратно | макросы не исполняются, VBA не истолковывается, общей среды языка M нет, полного совпадения Power Query нет | | XLTM | полностью | частично | только выгрузкой | родной формат, непонятое переносится как есть | макросы не исполняются, VBA не истолковывается, общей среды языка M нет, полного совпадения Power Query нет | | XLS | полностью | частично | только выгрузкой | выгрузка в канонический вид | макросы не исполняются, VBA не истолковывается, сохранения в тот же формат нет, стили совпадают не полностью | | ODS | полностью | частично | в тот же файл | родной формат туда и обратно | стили совпадают не полностью | | FODS | полностью | частично | в тот же файл | родной формат туда и обратно | стили совпадают не полностью | | SpreadsheetML 2003 | полностью | частично | только выгрузкой | выгрузка в канонический вид | сохранения в тот же формат нет | | CSV | частично | частично | в тот же файл | родной формат туда и обратно | формат держит один лист | | TSV | частично | частично | в тот же файл | родной формат туда и обратно | формат держит один лист | | TXT | частично | частично | в тот же файл | родной формат туда и обратно | формат держит один лист | | HTML | частично | частично | нельзя | — | формат держит один лист |
# Формулы и вычисления
> Пересчёт, режимы вычисления, трассировка зависимостей, аудит формул, именованные диапазоны и анализ «что если». Операций на странице: 16.
Пересчёт, режимы вычисления, трассировка зависимостей, аудит формул, именованные диапазоны и анализ «что если». Термины — в [глоссарии](/start/glossary/). **Операции на этой странице — 16** * [`build_lookup_indices`](#build_lookup_indices) * [`calculate`](#calculate) * [`consolidate_plan`](#consolidate_plan) * [`data_analysis_toolpak`](#data_analysis_toolpak) * [`defined_name_values`](#defined_name_values) * [`defined_names_lifecycle`](#defined_names_lifecycle) * [`delete_defined_name_bounded`](#delete_defined_name_bounded) * [`evaluate_formula_trace`](#evaluate_formula_trace) * [`formula_audit_watch`](#formula_audit_watch) * [`formula_builder_catalog`](#formula_builder_catalog) * [`recalc_frontier`](#recalc_frontier) * [`recalculate_used_range_bounded`](#recalculate_used_range_bounded) * [`set_calculation_options`](#set_calculation_options) * [`trace_formula_dependencies`](#trace_formula_dependencies) * [`upsert_defined_name_bounded`](#upsert_defined_name_bounded) * [`what_if_analysis`](#what_if_analysis) ## build\_lookup\_indices [Заголовок раздела «build\_lookup\_indices»](#build_lookup_indices) Строит lookup indices. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"build_lookup_indices"` | да | | `subsetId` | string | да | | ranges | [CellRange](/reference/f1/types-cells/#cellrange)\[] | да | | mode | [LookupIndexMode](/reference/f1/types-common/#lookupindexmode) | да | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · build\_lookup\_indices** | Поле | Тип TypeScript | Обяз. | | ----------------- | ----------------------------------------------------------------------------------- | ----- | | operation | `"build_lookup_indices"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | mode | [LookupIndexMode](/reference/f1/types-common/#lookupindexmode) | да | | `duplicatePolicy` | string | да | | `indexHandles` | [LookupIndexHandleInfo](/reference/f1/types-common/#lookupindexhandleinfo)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "build_lookup_indices",
"subsetId": "",
"ranges": [],
"mode": "",
"requestedBackend": "native-desktop"
}
```
## calculate [Заголовок раздела «calculate»](#calculate) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------------- | ----- | | operation | `"calculate"` | да | | `subsetId` | string | да | | scope | [ContractCalculationScope](/reference/f1/types-formulas/#contractcalculationscope) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · calculate** | Поле | Тип TypeScript | Обяз. | | ------------------------------- | -------------------------------------------------------------------------------------------------- | ----- | | operation | `"calculate"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | scope | [ContractCalculationScope](/reference/f1/types-formulas/#contractcalculationscope) | да | | `formulaTrustSnapshot` | [ContractFormulaTrustSnapshot](/reference/f1/types-formulas/#contractformulatrustsnapshot) \| null | нет | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `changedKeys` | string\[] | да | | `dirtyCellCount` | number | да | | `completionState` | `"settled"` \| “incomplete” | да | | `supportedFormulaCount` | number | да | | `settledSupportedFormulaCount` | number | да | | `supportedDirtyCellCount` | number | да | | `supportedUnpublishedCellCount` | number | да | | `boundaryFormulaCount` | number | да | | `startedStatus` | [ContractCalculationStatus](/reference/f1/types-formulas/#contractcalculationstatus) | да | | `resultStatus` | [ContractCalculationStatus](/reference/f1/types-formulas/#contractcalculationstatus) | да | | `workbookGeneration` | number | да | | `loadedSheetCountBefore` | number | да | | `loadedSheetCountAfter` | number | да | | `dependencyBoundarySheetCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "calculate",
"subsetId": "",
"scope": "",
"requestedBackend": "native-desktop"
}
```
## consolidate\_plan [Заголовок раздела «consolidate\_plan»](#consolidate_plan) **Запрос** | Поле | Тип TypeScript | Обяз. | | --------------------- | ------------------------------------------------------------------------------------ | ----- | | operation | `"consolidate_plan"` | да | | `subsetId` | string | да | | `sourceRanges` | [CellRange](/reference/f1/types-cells/#cellrange)\[] | да | | destination | [CellRange](/reference/f1/types-cells/#cellrange) | да | | function | [ContractConsolidateFunction](/reference/f1/types-data/#contractconsolidatefunction) | нет | | `useTopRowLabels` | boolean | нет | | `useLeftColumnLabels` | boolean | нет | | `createLinks` | boolean | нет | | `expectedRevision` | number | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · consolidate\_plan** | Поле | Тип TypeScript | Обяз. | | --------------------- | ---------------------------------------------------------------------------------------- | ----- | | operation | `"consolidate_plan"` | да | | `outputRange` | [CellRange](/reference/f1/types-cells/#cellrange) | да | | `sourceValueCount` | number | да | | `outputCellCount` | number | да | | function | [ContractConsolidateFunction](/reference/f1/types-data/#contractconsolidatefunction) | да | | `useTopRowLabels` | boolean | да | | `useLeftColumnLabels` | boolean | да | | `createLinks` | false | да | | mutation | [ContractConsolidationMutation](/reference/f1/types-data/#contractconsolidationmutation) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "consolidate_plan",
"subsetId": "",
"sourceRanges": [],
"destination": "",
"requestedBackend": "native-desktop"
}
```
## data\_analysis\_toolpak [Заголовок раздела «data\_analysis\_toolpak»](#data_analysis_toolpak) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------------------------- | ------------------------------------------------------------------------------------ | ----- | | operation | `"data_analysis_toolpak"` | да | | `subsetId` | string | да | | intent | [ContractDataAnalysisAction](/reference/f1/types-common/#contractdataanalysisaction) | да | | `expectedWorkbookGeneration` | number \| null | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · data\_analysis\_toolpak** | Поле | Тип TypeScript | Обяз. | | -------------------- | --------------------------------------------------------------------------------------------------- | ----- | | operation | `"data_analysis_toolpak"` | да | | `subsetId` | string | да | | `targetSubsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | `"run"` \| “undo” \| “redo” \| “cancel” | да | | status | string | да | | tool | [ContractDataAnalysisTool](/reference/f1/types-common/#contractdataanalysistool)\[`"tool"`] \| null | нет | | applied | boolean | да | | `createdSheet` | boolean | да | | `createdWorkbook` | boolean | да | | `workbookGeneration` | number | да | | `outputRange` | [CellRange](/reference/f1/types-cells/#cellrange) \| null | нет | | `chartPlan` | [ContractDataAnalysisChartPlan](/reference/f1/types-charts/#contractdataanalysischartplan) \| null | нет | | `changedKeys` | string\[] | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "data_analysis_toolpak",
"subsetId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## defined\_name\_values [Заголовок раздела «defined\_name\_values»](#defined_name_values) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"defined_name_values"` | да | | `subsetId` | string | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · defined\_name\_values** | Поле | Тип TypeScript | Обяз. | | ---------- | ------------------------------------------------------------------------------------- | ----- | | operation | `"defined_name_values"` | да | | `subsetId` | string | да | | values | [ContractDefinedNameValue](/reference/f1/types-formulas/#contractdefinednamevalue)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "defined_name_values",
"subsetId": "",
"requestedBackend": "native-desktop"
}
```
## defined\_names\_lifecycle [Заголовок раздела «defined\_names\_lifecycle»](#defined_names_lifecycle) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | -------------------------------------------------------------------------------------- | ----- | | operation | `"defined_names_lifecycle"` | да | | `subsetId` | string | да | | intent | [ContractDefinedNamesIntent](/reference/f1/types-formulas/#contractdefinednamesintent) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · defined\_names\_lifecycle** | Поле | Тип TypeScript | Обяз. | | ---------------- | --------------------------------------------------------------------------------------- | ----- | | operation | `"defined_names_lifecycle"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | result | [ContractDefinedNamesResult](/reference/f1/types-formulas/#contractdefinednamesresult) | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `sheetCount` | number | да | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "defined_names_lifecycle",
"subsetId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## delete\_defined\_name\_bounded [Заголовок раздела «delete\_defined\_name\_bounded»](#delete_defined_name_bounded) Удаляет defined name bounded. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"delete_defined_name_bounded"` | да | | `subsetId` | string | да | | name | string | да | | scope | `"workbook"` \| “sheet” | да | | `scopeSheetKey` | string \| null | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · delete\_defined\_name\_bounded** | Поле | Тип TypeScript | Обяз. | | ------------------------ | --------------------------------------------------------------------------------------- | ----- | | operation | `"delete_defined_name_bounded"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `deletedName` | string | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `sheetCount` | number | да | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | нет | | `definedNameDeleteClaim` | string | да | **Минимальный JSON-шаблон**
```json
{
"operation": "delete_defined_name_bounded",
"subsetId": "",
"name": "",
"scope": "workbook",
"requestedBackend": "native-desktop"
}
```
## evaluate\_formula\_trace [Заголовок раздела «evaluate\_formula\_trace»](#evaluate_formula_trace) Вычисляет/оценивает formula trace. **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------------------------- | ------------------------------------------------------------------------------------------------ | ----- | | operation | `"evaluate_formula_trace"` | да | | `subsetId` | string | да | | action | [ContractFormulaEvaluationAction](/reference/f1/types-formulas/#contractformulaevaluationaction) | да | | `anchorKey` | string | нет | | `traceId` | string | нет | | `expectedWorkbookGeneration` | number | нет | | `activeSheetKey` | string | да | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · evaluate\_formula\_trace** | Поле | Тип TypeScript | Обяз. | | --------------------------- | ---------------------------------------------------------------------------------------------------------------- | ----- | | operation | `"evaluate_formula_trace"` | да | | `subsetId` | string | да | | `traceId` | string \| null | да | | `requestWorkbookGeneration` | number \| null | да | | `workbookGeneration` | number | да | | `deterministicTraceHash` | string | да | | `anchorKey` | string | да | | `resolvedAnchorKey` | string | да | | `formulaSource` | string \| null | да | | `currentStep` | [ContractFormulaEvaluationStep](/reference/f1/types-formulas/#contractformulaevaluationstep) \| null | да | | `stepIndex` | number | да | | `stepCount` | number | да | | stack | [ContractFormulaEvaluationStackFrame](/reference/f1/types-formulas/#contractformulaevaluationstackframe)\[] | да | | value | [ContractFormulaEvaluationValue](/reference/f1/types-formulas/#contractformulaevaluationvalue) | да | | trust | [ContractFormulaEvaluationTrust](/reference/f1/types-formulas/#contractformulaevaluationtrust) | да | | `referenceTargetKey` | string \| null | да | | diagnostic | [ContractFormulaEvaluationDiagnostic](/reference/f1/types-formulas/#contractformulaevaluationdiagnostic) \| null | да | | outcome | [ContractFormulaEvaluationOutcome](/reference/f1/types-formulas/#contractformulaevaluationoutcome) | да | | actions | [ContractFormulaEvaluationActions](/reference/f1/types-formulas/#contractformulaevaluationactions) | да | | persistence | [ContractFormulaAuditingStatePersistence](/reference/f1/types-formulas/#contractformulaauditingstatepersistence) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "evaluate_formula_trace",
"subsetId": "",
"action": "",
"activeSheetKey": "",
"requestedBackend": "native-desktop"
}
```
## formula\_audit\_watch [Заголовок раздела «formula\_audit\_watch»](#formula_audit_watch) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------------------------- | ------------------------------------------------------------------------------------------------ | ----- | | operation | `"formula_audit_watch"` | да | | `subsetId` | string | да | | action | [ContractFormulaAuditWatchAction](/reference/f1/types-formulas/#contractformulaauditwatchaction) | да | | `expectedWorkbookGeneration` | number | да | | `activeSheetKey` | string | да | | `targetKey` | string | нет | | `findingKind` | [ContractFormulaAuditFindingKind](/reference/f1/types-formulas/#contractformulaauditfindingkind) | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · formula\_audit\_watch** | Поле | Тип TypeScript | Обяз. | | --------------------------- | ---------------------------------------------------------------------------------------------------------------- | ----- | | operation | `"formula_audit_watch"` | да | | `subsetId` | string | да | | `requestWorkbookGeneration` | number | да | | `workbookGeneration` | number | да | | `deterministicSnapshotHash` | string | да | | `calculationMode` | [ContractWorkbookCalculationMode](/reference/f1/types-session/#contractworkbookcalculationmode) | да | | outcome | [ContractFormulaAuditOutcome](/reference/f1/types-formulas/#contractformulaauditoutcome) | да | | `didChange` | boolean | да | | findings | [ContractFormulaAuditFinding](/reference/f1/types-formulas/#contractformulaauditfinding)\[] | да | | watches | [ContractFormulaAuditWatchRow](/reference/f1/types-formulas/#contractformulaauditwatchrow)\[] | да | | counts | [ContractFormulaAuditCounts](/reference/f1/types-formulas/#contractformulaauditcounts) | да | | actions | [ContractFormulaAuditActions](/reference/f1/types-formulas/#contractformulaauditactions) | да | | persistence | [ContractFormulaAuditingStatePersistence](/reference/f1/types-formulas/#contractformulaauditingstatepersistence) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "formula_audit_watch",
"subsetId": "",
"action": "",
"expectedWorkbookGeneration": 0,
"activeSheetKey": "",
"requestedBackend": "native-desktop"
}
```
## formula\_builder\_catalog [Заголовок раздела «formula\_builder\_catalog»](#formula_builder_catalog) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Запрос** | Поле | Тип TypeScript | Обяз. | | --------- | --------------------------- | ----- | | operation | “formula\_builder\_catalog” | да | | locale | string | да | **Ответ при успехе · formula\_builder\_catalog** | Поле | Тип TypeScript | Обяз. | | --------- | -------------------------------------------------------------------------------------------- | ----- | | operation | “formula\_builder\_catalog” | да | | catalog | [ContractFormulaBuilderCatalog](/reference/f1/types-formulas/#contractformulabuildercatalog) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "formula_builder_catalog",
"locale": ""
}
```
## recalc\_frontier [Заголовок раздела «recalc\_frontier»](#recalc_frontier) Пересчитывает frontier. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"recalc_frontier"` | да | | `subsetId` | string | да | | `frontierKeys` | string\[] | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · recalc\_frontier** | Поле | Тип TypeScript | Обяз. | | ----------------- | ----------------------------------------------------------------------------------- | ----- | | operation | `"recalc_frontier"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `changedKeys` | string\[] | да | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "recalc_frontier",
"subsetId": "",
"frontierKeys": [],
"requestedBackend": "native-desktop"
}
```
## recalculate\_used\_range\_bounded [Заголовок раздела «recalculate\_used\_range\_bounded»](#recalculate_used_range_bounded) Пересчитывает used range bounded. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"recalculate_used_range_bounded"` | да | | `subsetId` | string | да | | `sheetKey` | string | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · recalculate\_used\_range\_bounded** | Поле | Тип TypeScript | Обяз. | | --------------------------- | --------------------------------------------------------------------------------------------------- | ----- | | operation | `"recalculate_used_range_bounded"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `changedSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `previousUsedRange` | string | да | | `usedRange` | string | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `sheetCount` | number | да | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) \| null | нет | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `usedRangeRecalculateClaim` | `"live_verified"` | да | | `usedRangeRecalculateScope` | `"same_workbook_worksheet_dimension_from_present_cells_and_metadata"` | да | | `usedRangeDirtyCleared` | true | да | **Минимальный JSON-шаблон**
```json
{
"operation": "recalculate_used_range_bounded",
"subsetId": "",
"sheetKey": "",
"requestedBackend": "native-desktop"
}
```
## set\_calculation\_options [Заголовок раздела «set\_calculation\_options»](#set_calculation_options) Устанавливает calculation options. **Запрос** | Поле | Тип TypeScript | Обяз. | | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ----- | | operation | `"set_calculation_options"` | да | | `subsetId` | string | да | | `calculationMode` | Exclude< [ContractWorkbookCalculationMode](/reference/f1/types-session/#contractworkbookcalculationmode), `"unknown"` > \| null | нет | | `recalculateBeforeSave` | boolean \| null | нет | | `iterativeCalculationEnabled` | boolean \| null | нет | | `maximumIterations` | number \| null | нет | | `maximumChange` | number \| null | нет | | `historyAction` | [ContractCalculationOptionsHistoryAction](/reference/f1/types-formulas/#contractcalculationoptionshistoryaction) | нет | | `expectedWorkbookGeneration` | number \| null | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · set\_calculation\_options** | Поле | Тип TypeScript | Обяз. | | --------------------------- | ---------------------------------------------------------------------------------------------------------------- | ----- | | operation | `"set_calculation_options"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `previousCalculationMode` | [ContractWorkbookCalculationMode](/reference/f1/types-session/#contractworkbookcalculationmode) | да | | `calculationMode` | [ContractWorkbookCalculationMode](/reference/f1/types-session/#contractworkbookcalculationmode) | да | | `previousIterativeSettings` | [ContractIterativeCalculationSettings](/reference/f1/types-formulas/#contractiterativecalculationsettings) | да | | `iterativeSettings` | [ContractIterativeCalculationSettings](/reference/f1/types-formulas/#contractiterativecalculationsettings) | да | | `recalculateBeforeSave` | boolean \| null | нет | | `historyAction` | [ContractCalculationOptionsHistoryAction](/reference/f1/types-formulas/#contractcalculationoptionshistoryaction) | да | | `workbookGeneration` | number | да | | `undoAvailable` | boolean | да | | `redoAvailable` | boolean | да | | `optionsChanged` | boolean | да | | `formulaTrustSnapshot` | [ContractFormulaTrustSnapshot](/reference/f1/types-formulas/#contractformulatrustsnapshot) \| null | нет | | `calculationPerformed` | boolean | да | | `changedKeys` | string\[] | да | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "set_calculation_options",
"subsetId": "",
"requestedBackend": "native-desktop"
}
```
## trace\_formula\_dependencies [Заголовок раздела «trace\_formula\_dependencies»](#trace_formula_dependencies) Трассирует formula dependencies. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"trace_formula_dependencies"` | да | | `subsetId` | string | да | | `anchorKey` | string | да | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · trace\_formula\_dependencies** | Поле | Тип TypeScript | Обяз. | | ---------------------------- | ---------------------------------------------------------------------------------------------------------------- | ----- | | operation | `"trace_formula_dependencies"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | `anchorKey` | string | да | | `anchorFormula` | string \| null | да | | `anchorStatus` | [FormulaSubsetStatus](/reference/f1/types-session/#formulasubsetstatus) | да | | `directPrecedentKeys` | string\[] | да | | `directDependentKeys` | string\[] | да | | `unsupportedReferences` | string\[] | да | | `graphVersion` | number | нет | | `graphHash` | string | нет | | `maxDepth` | number | нет | | edges | [ContractFormulaTraceEdge](/reference/f1/types-formulas/#contractformulatraceedge)\[] | нет | | `precedentTruncated` | boolean | нет | | `dependentTruncated` | boolean | нет | | `cycleGroups` | string\[]\[] | нет | | `missingOrDeletedReferences` | string\[] | нет | | persistence | [ContractFormulaAuditingStatePersistence](/reference/f1/types-formulas/#contractformulaauditingstatepersistence) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "trace_formula_dependencies",
"subsetId": "",
"anchorKey": "",
"requestedBackend": "native-desktop"
}
```
## upsert\_defined\_name\_bounded [Заголовок раздела «upsert\_defined\_name\_bounded»](#upsert_defined_name_bounded) Создаёт или обновляет defined name bounded. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"upsert_defined_name_bounded"` | да | | `subsetId` | string | да | | name | string | да | | `refersTo` | string | да | | scope | `"workbook"` \| “sheet” | да | | `scopeSheetKey` | string \| null | нет | | `previousName` | string \| null | нет | | comment | string \| null | нет | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · upsert\_defined\_name\_bounded** | Поле | Тип TypeScript | Обяз. | | ------------------------ | --------------------------------------------------------------------------------------- | ----- | | operation | `"upsert_defined_name_bounded"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | `supportedSubset` | string | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | `upsertedName` | string | да | | `refersTo` | string | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `sheetCount` | number | да | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | | `layoutMetrics` | [ContractLayoutMetricsSubset](/reference/f1/types-session/#contractlayoutmetricssubset) | нет | | `definedNameUpsertClaim` | string | да | **Минимальный JSON-шаблон**
```json
{
"operation": "upsert_defined_name_bounded",
"subsetId": "",
"name": "",
"refersTo": "",
"scope": "workbook",
"requestedBackend": "native-desktop"
}
```
## what\_if\_analysis [Заголовок раздела «what\_if\_analysis»](#what_if_analysis) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"what_if_analysis"` | да | | `subsetId` | string | да | | intent | [ContractWhatIfAction](/reference/f1/types-common/#contractwhatifaction) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · what\_if\_analysis** | Поле | Тип TypeScript | Обяз. | | ----------------- | --------------------------------------------------------------------------------------------------- | ----- | | operation | `"what_if_analysis"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | status | string | да | | `previewToken` | string \| null | нет | | applied | boolean | да | | iterations | number | да | | solution | number \| null | нет | | `resultValue` | [ContractWhatIfValue](/reference/f1/types-common/#contractwhatifvalue) \| null | нет | | `tableValues` | [ContractWhatIfValue](/reference/f1/types-common/#contractwhatifvalue)\[]\[] | да | | scenarios | [ContractWhatIfScenarioView](/reference/f1/types-formulas/#contractwhatifscenarioview)\[] | да | | `workbookHistory` | [ContractWorkbookHistoryProjection](/reference/f1/types-session/#contractworkbookhistoryprojection) | да | | `changedKeys` | string\[] | да | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "what_if_analysis",
"subsetId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
# Справочник F1
> Compute Contract: транспорт, соглашения сеанса и 203 операции табличного процессора, сгруппированных по доменам.
Справочник F1 описывает работу с таблицами XLSX. Для документов DOCX есть [справочник A4](/reference/a4/overview/). Compute Contract — единственная типизированная граница между интерфейсом, автоматизацией, адаптерами к вашему приложению и ядром F1 на Rust. Через неё проходят все 203 операции, где бы ядро ни выполнялось: в настольном приложении, в браузере через WebAssembly или службой на сервере. ## Разделы операций [Заголовок раздела «Разделы операций»](#разделы-операций) | Раздел | Операций | О чём | | ----------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------- | | [Сеанс и книга](/reference/f1/session/) | 17 | Открытие подмножества книги, сохранение, окно просмотра, восстановление, свойства, сравнение и слияние ревизий. | | [Ячейки и диапазоны](/reference/f1/cells/) | 21 | Правка ячеек, чтение деталей, сдвиги, копирование и вставка, поиск и замена, сортировка, отмена и повтор. | | [Листы](/reference/f1/sheets/) | 17 | Жизненный цикл листов, копирование между книгами, видимость, защита и закрепление областей. | | [Печать и разметка](/reference/f1/printing/) | 7 | Параметры страницы, разрывы, фон листа и печать листов с диаграммами. | | [Формулы и вычисления](/reference/f1/formulas/) | 16 | Пересчёт, режимы вычисления, трассировка зависимостей, аудит формул, именованные диапазоны и анализ «что если». | | [Форматирование](/reference/f1/format/) | 10 | Ширина колонок и высота строк, объединение ячеек, темы и шрифты, условное форматирование. | | [Данные, фильтры и объекты](/reference/f1/data/) | 23 | Фильтры, промежуточные итоги, очистка данных, таблицы, импорт текста, проверка данных, срезы и элементы управления. | | [Сводные таблицы](/reference/f1/pivot/) | 11 | Кэш, вычисляемые поля и элементы, группировка и детализация, макет, фильтры отчёта, сортировка и параметры полей значений. | | [Power Query: выражения M](/reference/f1/pq-expressions/) | 9 | Вычисление и разбор M-выражений, в том числе с внешними источниками. | | [Power Query: коннекторы](/reference/f1/pq-connectors/) | 13 | Подключение к Postgres, SQL Server, OData и веб-источникам: проверка связи, предпросмотр, навигация по объектам. | | [Power Query: запросы и шаги](/reference/f1/pq-queries/) | 13 | Жизненный цикл запросов, применённые шаги, параметры и навигация по папкам. | | [Power Query: таблицы из запросов](/reference/f1/pq-tables/) | 8 | Загрузка результата запроса в лист, обновление таких таблиц и связь между таблицей на листе и запросом, который её наполняет. | | [Power Query: выполнение и прогресс](/reference/f1/pq-execution/) | 9 | Граф запроса, обновление, отмена и наблюдение за долгими операциями. | | [Power Query: доверие и приватность](/reference/f1/pq-trust/) | 6 | Уровни приватности источников, решения о доверии и настройки подключений. | | [Power Query: внешние mashup](/reference/f1/pq-mashup/) | 3 | Чтение, запись и обновление наборов запросов Power Query, собранных вне продукта. | | [VBA и макросы](/reference/f1/vba/) | 12 | Инспекция проекта, планирование и запуск, статус, отмена и откат, доверие к макросам и список одобренных. | | [Защита и рецензирование](/reference/f1/protection/) | 8 | Защита листа и книги, разрешения на диапазоны, аудит защиты, отслеживание изменений, примечания и рукописные пометки. | ## Словарь типов [Заголовок раздела «Словарь типов»](#словарь-типов) В колонке «Тип TypeScript» стоят имена вроде `ViewportWindow` или `ContractSubsetSessionInfo`. Их определения собраны в [словаре типов](/reference/f1/types-session/) — 946 имён, разложенных по тем же темам, что и операции. Каждое имя в таблицах полей ведёт прямо к своему определению. Возврат под другим именем Операция может вернуть success payload с другим `operation`: `open_workbook_subset_from_bytes` → `open_workbook_subset`; `move_clipboard_range` → `paste_range`; `paste_conditional_formatting_rules` → `apply_conditional_formatting_rules`.
# Сводные таблицы
> Кэш, вычисляемые поля и элементы, группировка и детализация, макет, фильтры отчёта, сортировка и параметры полей значений. Операций на странице: 11.
Кэш, вычисляемые поля и элементы, группировка и детализация, макет, фильтры отчёта, сортировка и параметры полей значений. Термины — в [глоссарии](/start/glossary/). **Операции на этой странице — 11** * [`pivot_cache_options`](#pivot_cache_options) * [`pivot_calculated_fields`](#pivot_calculated_fields) * [`pivot_calculated_items`](#pivot_calculated_items) * [`pivot_data_model_olap_readonly`](#pivot_data_model_olap_readonly) * [`pivot_field_list_authoring`](#pivot_field_list_authoring) * [`pivot_grouping_drilldown`](#pivot_grouping_drilldown) * [`pivot_layout_format`](#pivot_layout_format) * [`pivot_move_copy`](#pivot_move_copy) * [`pivot_report_filter_pages`](#pivot_report_filter_pages) * [`pivot_sort_filter_ranking`](#pivot_sort_filter_ranking) * [`pivot_value_field_settings`](#pivot_value_field_settings) ## pivot\_cache\_options [Заголовок раздела «pivot\_cache\_options»](#pivot_cache_options) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | --------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_cache_options"` | да | | `subsetId` | string | да | | `requestId` | string | да | | intent | [ContractPivotCacheOptionsAction](/reference/f1/types-pivot/#contractpivotcacheoptionsaction) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · pivot\_cache\_options** | Поле | Тип TypeScript | Обяз. | | --------------------- | -------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_cache_options"` | да | | `subsetId` | string | да | | `requestId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | status | string | да | | `didChange` | boolean | да | | options | [ContractPivotCacheOptionsView](/reference/f1/types-pivot/#contractpivotcacheoptionsview)\[] | да | | `refreshedPivotNames` | string\[] | да | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `sheetCount` | number | да | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pivot_cache_options",
"subsetId": "",
"requestId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## pivot\_calculated\_fields [Заголовок раздела «pivot\_calculated\_fields»](#pivot_calculated_fields) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ----------------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_calculated_fields"` | да | | `subsetId` | string | да | | intent | [ContractPivotCalculatedFieldsAction](/reference/f1/types-pivot/#contractpivotcalculatedfieldsaction) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · pivot\_calculated\_fields** | Поле | Тип TypeScript | Обяз. | | ------------------- | -------------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_calculated_fields"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | status | string | да | | caches | [ContractPivotCalculatedCacheView](/reference/f1/types-pivot/#contractpivotcalculatedcacheview)\[] | да | | fields | [ContractPivotCalculatedFieldView](/reference/f1/types-pivot/#contractpivotcalculatedfieldview)\[] | да | | `refreshedCacheIds` | string\[] | да | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pivot_calculated_fields",
"subsetId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## pivot\_calculated\_items [Заголовок раздела «pivot\_calculated\_items»](#pivot_calculated_items) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | --------------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_calculated_items"` | да | | `subsetId` | string | да | | intent | [ContractPivotCalculatedItemsAction](/reference/f1/types-pivot/#contractpivotcalculateditemsaction) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · pivot\_calculated\_items** | Поле | Тип TypeScript | Обяз. | | ------------------- | ---------------------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_calculated_items"` | да | | `subsetId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | status | string | да | | fields | [ContractPivotCalculatedItemFieldView](/reference/f1/types-pivot/#contractpivotcalculateditemfieldview)\[] | да | | items | [ContractPivotCalculatedItemView](/reference/f1/types-pivot/#contractpivotcalculateditemview)\[] | да | | `refreshedCacheIds` | string\[] | да | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pivot_calculated_items",
"subsetId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## pivot\_data\_model\_olap\_readonly [Заголовок раздела «pivot\_data\_model\_olap\_readonly»](#pivot_data_model_olap_readonly) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | --------------------------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_data_model_olap_readonly"` | да | | `subsetId` | string | да | | `requestId` | string | да | | intent | [ContractPivotDataModelOlapReadonlyAction](/reference/f1/types-pivot/#contractpivotdatamodelolapreadonlyaction) | да | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · pivot\_data\_model\_olap\_readonly** | Поле | Тип TypeScript | Обяз. | | ------------------------ | ----------------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_data_model_olap_readonly"` | да | | `subsetId` | string | да | | `requestId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | status | `"ok"` \| “blocked” | да | | `didChange` | false | да | | `blockedReasonCode` | string \| null | да | | `selectedEntityStableId` | string \| null | да | | inventory | [ContractPivotDataModelOlapInventory](/reference/f1/types-pivot/#contractpivotdatamodelolapinventory) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pivot_data_model_olap_readonly",
"subsetId": "",
"requestId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## pivot\_field\_list\_authoring [Заголовок раздела «pivot\_field\_list\_authoring»](#pivot_field_list_authoring) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | --------------------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_field_list_authoring"` | да | | `subsetId` | string | да | | `requestId` | string | да | | intent | [ContractPivotFieldListAuthoringAction](/reference/f1/types-pivot/#contractpivotfieldlistauthoringaction) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · pivot\_field\_list\_authoring** | Поле | Тип TypeScript | Обяз. | | ---------------- | -------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_field_list_authoring"` | да | | `subsetId` | string | да | | `requestId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | status | string | да | | `didChange` | boolean | да | | `draftChanged` | boolean | да | | layouts | [ContractPivotFieldListView](/reference/f1/types-pivot/#contractpivotfieldlistview)\[] | да | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `sheetCount` | number | да | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pivot_field_list_authoring",
"subsetId": "",
"requestId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## pivot\_grouping\_drilldown [Заголовок раздела «pivot\_grouping\_drilldown»](#pivot_grouping_drilldown) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_grouping_drilldown"` | да | | `subsetId` | string | да | | `requestId` | string | да | | intent | [ContractPivotGroupingDrilldownAction](/reference/f1/types-pivot/#contractpivotgroupingdrilldownaction) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · pivot\_grouping\_drilldown** | Поле | Тип TypeScript | Обяз. | | --------------------- | --------------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_grouping_drilldown"` | да | | `subsetId` | string | да | | `requestId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | status | string | да | | `didChange` | boolean | да | | caches | [ContractPivotGroupingCacheView](/reference/f1/types-pivot/#contractpivotgroupingcacheview)\[] | да | | items | [ContractPivotGroupingItemView](/reference/f1/types-pivot/#contractpivotgroupingitemview)\[] | да | | groups | [ContractPivotGroupView](/reference/f1/types-pivot/#contractpivotgroupview)\[] | да | | `expandedItems` | [ContractPivotExpandedItemView](/reference/f1/types-pivot/#contractpivotexpandeditemview)\[] | да | | `hierarchyNodes` | [ContractPivotHierarchyNodeView](/reference/f1/types-pivot/#contractpivothierarchynodeview)\[] | да | | `refreshedPivotNames` | string\[] | да | | `detailContext` | [ContractPivotDetailContextView](/reference/f1/types-pivot/#contractpivotdetailcontextview) \| null | нет | | `getPivotData` | [ContractPivotGetPivotDataView](/reference/f1/types-pivot/#contractpivotgetpivotdataview) \| null | нет | | `detailSheetLineage` | [ContractPivotDetailLineageView](/reference/f1/types-pivot/#contractpivotdetaillineageview) \| null | нет | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `sheetCount` | number | да | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pivot_grouping_drilldown",
"subsetId": "",
"requestId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## pivot\_layout\_format [Заголовок раздела «pivot\_layout\_format»](#pivot_layout_format) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | --------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_layout_format"` | да | | `subsetId` | string | да | | `requestId` | string | да | | intent | [ContractPivotLayoutFormatAction](/reference/f1/types-pivot/#contractpivotlayoutformataction) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · pivot\_layout\_format** | Поле | Тип TypeScript | Обяз. | | --------------------- | -------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_layout_format"` | да | | `subsetId` | string | да | | `requestId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | status | string | да | | `didChange` | boolean | да | | layouts | [ContractPivotLayoutFormatView](/reference/f1/types-pivot/#contractpivotlayoutformatview)\[] | да | | `refreshedPivotNames` | string\[] | да | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `sheetCount` | number | да | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pivot_layout_format",
"subsetId": "",
"requestId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## pivot\_move\_copy [Заголовок раздела «pivot\_move\_copy»](#pivot_move_copy) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_move_copy"` | да | | `subsetId` | string | да | | `requestId` | string | да | | intent | [ContractPivotMoveCopyAction](/reference/f1/types-pivot/#contractpivotmovecopyaction) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · pivot\_move\_copy** | Поле | Тип TypeScript | Обяз. | | ------------------- | ---------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_move_copy"` | да | | `subsetId` | string | да | | `requestId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | status | string | да | | `didChange` | boolean | да | | pivots | [ContractPivotMoveCopyView](/reference/f1/types-pivot/#contractpivotmovecopyview)\[] | да | | `destinationSheets` | [ContractPivotMoveCopySheetView](/reference/f1/types-pivot/#contractpivotmovecopysheetview)\[] | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `sheetCount` | number | да | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pivot_move_copy",
"subsetId": "",
"requestId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## pivot\_report\_filter\_pages [Заголовок раздела «pivot\_report\_filter\_pages»](#pivot_report_filter_pages) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_report_filter_pages"` | да | | `subsetId` | string | да | | `requestId` | string | да | | intent | [ContractPivotReportFilterPagesAction](/reference/f1/types-pivot/#contractpivotreportfilterpagesaction) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · pivot\_report\_filter\_pages** | Поле | Тип TypeScript | Обяз. | | --------------------- | ---------------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_report_filter_pages"` | да | | `subsetId` | string | да | | `requestId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | status | string | да | | `didChange` | boolean | да | | reports | [ContractPivotReportFilterView](/reference/f1/types-pivot/#contractpivotreportfilterview)\[] | да | | `generatedPages` | [ContractPivotReportFilterPageView](/reference/f1/types-pivot/#contractpivotreportfilterpageview)\[] | да | | `refreshedPivotNames` | string\[] | да | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `sheetCount` | number | да | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pivot_report_filter_pages",
"subsetId": "",
"requestId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## pivot\_sort\_filter\_ranking [Заголовок раздела «pivot\_sort\_filter\_ranking»](#pivot_sort_filter_ranking) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ----------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_sort_filter_ranking"` | да | | `subsetId` | string | да | | `requestId` | string | да | | intent | [ContractPivotSortFilterAction](/reference/f1/types-pivot/#contractpivotsortfilteraction) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · pivot\_sort\_filter\_ranking** | Поле | Тип TypeScript | Обяз. | | --------------------- | ---------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_sort_filter_ranking"` | да | | `subsetId` | string | да | | `requestId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | status | string | да | | `didChange` | boolean | да | | fields | [ContractPivotSortFilterView](/reference/f1/types-pivot/#contractpivotsortfilterview)\[] | да | | `refreshedPivotNames` | string\[] | да | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `sheetCount` | number | да | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pivot_sort_filter_ranking",
"subsetId": "",
"requestId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
## pivot\_value\_field\_settings [Заголовок раздела «pivot\_value\_field\_settings»](#pivot_value_field_settings) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | --------------------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_value_field_settings"` | да | | `subsetId` | string | да | | `requestId` | string | да | | intent | [ContractPivotValueFieldSettingsAction](/reference/f1/types-pivot/#contractpivotvaluefieldsettingsaction) | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) \| null | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · pivot\_value\_field\_settings** | Поле | Тип TypeScript | Обяз. | | --------------------- | -------------------------------------------------------------------------------------------------------- | ----- | | operation | `"pivot_value_field_settings"` | да | | `subsetId` | string | да | | `requestId` | string | да | | session | [ContractSubsetSessionInfo](/reference/f1/types-session/#contractsubsetsessioninfo) | да | | delta | [DeltaSummary](/reference/f1/types-cells/#deltasummary) | да | | action | string | да | | status | string | да | | `didChange` | boolean | да | | `valueFields` | [ContractPivotValueFieldSettingsView](/reference/f1/types-pivot/#contractpivotvaluefieldsettingsview)\[] | да | | `refreshedPivotNames` | string\[] | да | | `dirtyCellCount` | number | да | | `activeSheet` | [ContractActiveSheetMeta](/reference/f1/types-session/#contractactivesheetmeta) | да | | `sheetCount` | number | да | | `workbookSheets` | [ContractWorkbookSheetMeta](/reference/f1/types-session/#contractworkbooksheetmeta)\[] | да | | geometry | [ContractGeometrySubset](/reference/f1/types-session/#contractgeometrysubset) | да | | `recalcNeeded` | boolean | да | | viewport | [ViewportWindow](/reference/f1/types-session/#viewportwindow) | да | | `previewCells` | [ContractPreviewCell](/reference/f1/types-cells/#contractpreviewcell)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pivot_value_field_settings",
"subsetId": "",
"requestId": "",
"intent": "",
"requestedBackend": "native-desktop"
}
```
# Power Query: коннекторы
> Подключение к Postgres, SQL Server, OData и веб-источникам: проверка связи, предпросмотр, навигация по объектам. Операций на странице: 13.
Подключение к Postgres, SQL Server, OData и веб-источникам: проверка связи, предпросмотр, навигация по объектам. Термины — в [глоссарии](/start/glossary/). **Операции на этой странице — 13** * [`evaluate_power_query_odata_feed_transform`](#evaluate_power_query_odata_feed_transform) * [`evaluate_power_query_postgres_transform`](#evaluate_power_query_postgres_transform) * [`evaluate_power_query_sqlserver_transform`](#evaluate_power_query_sqlserver_transform) * [`evaluate_power_query_transform`](#evaluate_power_query_transform) * [`evaluate_power_query_web_connector_transform`](#evaluate_power_query_web_connector_transform) * [`pq_postgres_cancel`](#pq_postgres_cancel) * [`pq_postgres_list_navigation`](#pq_postgres_list_navigation) * [`pq_postgres_preview`](#pq_postgres_preview) * [`pq_postgres_test_connection`](#pq_postgres_test_connection) * [`pq_sqlserver_cancel`](#pq_sqlserver_cancel) * [`pq_sqlserver_list_navigation`](#pq_sqlserver_list_navigation) * [`pq_sqlserver_preview`](#pq_sqlserver_preview) * [`pq_sqlserver_test_connection`](#pq_sqlserver_test_connection) ## evaluate\_power\_query\_odata\_feed\_transform [Заголовок раздела «evaluate\_power\_query\_odata\_feed\_transform»](#evaluate_power_query_odata_feed_transform) Вычисляет/оценивает power query odata feed transform. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------------ | ----- | | operation | `"evaluate_power_query_odata_feed_transform"` | да | | `mSource` | string | да | | connector | [ApprovedODataFeedDescriptor](/reference/f1/types-powerquery/#approvedodatafeeddescriptor) | нет | | destination | [PowerQueryLoadDestination](/reference/f1/types-powerquery/#powerqueryloaddestination) | нет | | `refreshQueryId` | string | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · evaluate\_power\_query\_odata\_feed\_transform** | Поле | Тип TypeScript | Обяз. | | ---------- | -------------------------------------------------------------------------------------------------------- | ----- | | operation | `"evaluate_power_query_odata_feed_transform"` | да | | outcome | [ContractPowerQueryTransformOutcome](/reference/f1/types-powerquery/#contractpowerquerytransformoutcome) | да | | `loadPlan` | [PowerQueryLoadPlan](/reference/f1/types-powerquery/#powerqueryloadplan) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "evaluate_power_query_odata_feed_transform",
"mSource": "",
"requestedBackend": "native-desktop"
}
```
## evaluate\_power\_query\_postgres\_transform [Заголовок раздела «evaluate\_power\_query\_postgres\_transform»](#evaluate_power_query_postgres_transform) Вычисляет/оценивает power query postgres transform. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------------------- | ----- | | operation | `"evaluate_power_query_postgres_transform"` | да | | descriptor | [PqPostgresDialogDescriptor](/reference/f1/types-powerquery/#pqpostgresdialogdescriptor) | нет | | table | [PqPostgresPreviewTableRef](/reference/f1/types-powerquery/#pqpostgrespreviewtableref) | нет | | `mSource` | string | нет | | destination | [PowerQueryLoadDestination](/reference/f1/types-powerquery/#powerqueryloaddestination) | нет | | `refreshQueryId` | string | нет | | `connectUser` | string | нет | | `lanGrants` | [PqPostgresLanGrantWire](/reference/f1/types-powerquery/#pqpostgreslangrantwire)\[] | нет | | privacy | [PqPrivacyEvaluationInput](/reference/f1/types-powerquery/#pqprivacyevaluationinput) | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · evaluate\_power\_query\_postgres\_transform** | Поле | Тип TypeScript | Обяз. | | ---------- | -------------------------------------------------------------------------------------------------------- | ----- | | operation | `"evaluate_power_query_postgres_transform"` | да | | outcome | [ContractPowerQueryTransformOutcome](/reference/f1/types-powerquery/#contractpowerquerytransformoutcome) | да | | `loadPlan` | [PowerQueryLoadPlan](/reference/f1/types-powerquery/#powerqueryloadplan) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "evaluate_power_query_postgres_transform",
"requestedBackend": "native-desktop"
}
```
## evaluate\_power\_query\_sqlserver\_transform [Заголовок раздела «evaluate\_power\_query\_sqlserver\_transform»](#evaluate_power_query_sqlserver_transform) Вычисляет/оценивает power query sqlserver transform. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | -------------------------------------------------------------------------------------- | ----- | | operation | `"evaluate_power_query_sqlserver_transform"` | да | | descriptor | [PqSqlServerDescriptor](/reference/f1/types-powerquery/#pqsqlserverdescriptor) | нет | | table | [PqSqlServerTableRef](/reference/f1/types-powerquery/#pqsqlservertableref) | нет | | destination | [PowerQueryLoadDestination](/reference/f1/types-powerquery/#powerqueryloaddestination) | нет | | `refreshQueryId` | string | нет | | privacy | [PqPrivacyEvaluationInput](/reference/f1/types-powerquery/#pqprivacyevaluationinput) | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · evaluate\_power\_query\_sqlserver\_transform** | Поле | Тип TypeScript | Обяз. | | ---------- | -------------------------------------------------------------------------------------------------------- | ----- | | operation | `"evaluate_power_query_sqlserver_transform"` | да | | outcome | [ContractPowerQueryTransformOutcome](/reference/f1/types-powerquery/#contractpowerquerytransformoutcome) | да | | `loadPlan` | [PowerQueryLoadPlan](/reference/f1/types-powerquery/#powerqueryloadplan) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "evaluate_power_query_sqlserver_transform",
"requestedBackend": "native-desktop"
}
```
## evaluate\_power\_query\_transform [Заголовок раздела «evaluate\_power\_query\_transform»](#evaluate_power_query_transform) Вычисляет/оценивает power query transform. **Запрос** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ------------------------ | -------------------------------------------------------------------------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | operation | `"evaluate_power_query_transform"` | да | | | `mSource` | string | да | | | `sourceId` | string | да | | | `sourceUri` | string | нет | | | `sourceKind` | `"csv"` \| “workbook” \| “folder” \| “json” \| “xml” | нет | Для `csv` и `workbook` — справочное значение, оно и так выводится из запроса. Для `folder` — значащее: именно оно направляет обработку по пути объединения файлов папки, а не одиночного файла. | | `previewStep` | number | нет | Intermediate-step preview (same semantics as every other Power Query source). | | destination | [PowerQueryLoadDestination](/reference/f1/types-powerquery/#powerqueryloaddestination) | нет | Необязательное место загрузки результата. Без поля — просмотр без изменений и без плана. С полем — тоже просмотр, но в ответе приходит проверенный план загрузки в `loadPlan`; сама загрузка не выполняется. | | `includeDependencyGraph` | boolean | нет | | | `paramOptions` | [ContractPersistedParamOptionsBinding](/reference/f1/types-common/#contractpersistedparamoptionsbinding) | нет | | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | | **Ответ при успехе · evaluate\_power\_query\_transform** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ----------------- | -------------------------------------------------------------------------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | operation | `"evaluate_power_query_transform"` | да | | | outcome | [ContractPowerQueryTransformOutcome](/reference/f1/types-powerquery/#contractpowerquerytransformoutcome) | да | | | `loadPlan` | [PowerQueryLoadPlan](/reference/f1/types-powerquery/#powerqueryloadplan) | нет | Есть в ответе, только если запрос содержал место загрузки и вычисление прошло. При обычном просмотре и при отказе поля нет. Данные при этом никуда не записываются. | | recomputed | boolean | нет | | | `dependencyGraph` | [ContractDependencyGraphSnapshot](/reference/f1/types-formulas/#contractdependencygraphsnapshot) \| null | нет | | **Минимальный JSON-шаблон**
```json
{
"operation": "evaluate_power_query_transform",
"mSource": "",
"sourceId": "",
"requestedBackend": "native-desktop"
}
```
## evaluate\_power\_query\_web\_connector\_transform [Заголовок раздела «evaluate\_power\_query\_web\_connector\_transform»](#evaluate_power_query_web_connector_transform) Вычисляет/оценивает power query web connector transform. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------------------ | ----- | | operation | `"evaluate_power_query_web_connector_transform"` | да | | `mSource` | string | да | | connector | [ApprovedWebConnectorDescriptor](/reference/f1/types-powerquery/#approvedwebconnectordescriptor) | нет | | destination | [PowerQueryLoadDestination](/reference/f1/types-powerquery/#powerqueryloaddestination) | нет | | `refreshQueryId` | string | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · evaluate\_power\_query\_web\_connector\_transform** | Поле | Тип TypeScript | Обяз. | | ---------- | -------------------------------------------------------------------------------------------------------- | ----- | | operation | `"evaluate_power_query_web_connector_transform"` | да | | outcome | [ContractPowerQueryTransformOutcome](/reference/f1/types-powerquery/#contractpowerquerytransformoutcome) | да | | `loadPlan` | [PowerQueryLoadPlan](/reference/f1/types-powerquery/#powerqueryloadplan) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "evaluate_power_query_web_connector_transform",
"mSource": "",
"requestedBackend": "native-desktop"
}
```
## pq\_postgres\_cancel [Заголовок раздела «pq\_postgres\_cancel»](#pq_postgres_cancel) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------- | ---------------------------------------------------------------------------------------- | ----- | | operation | `"pq_postgres_cancel"` | да | | descriptor | [PqPostgresDialogDescriptor](/reference/f1/types-powerquery/#pqpostgresdialogdescriptor) | нет | **Ответ при успехе · pq\_postgres\_cancel** | Поле | Тип TypeScript | Обяз. | | ------------ | ---------------------- | ----- | | operation | `"pq_postgres_cancel"` | да | | acknowledged | boolean | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pq_postgres_cancel",
"requestedBackend": "native-desktop"
}
```
## pq\_postgres\_list\_navigation [Заголовок раздела «pq\_postgres\_list\_navigation»](#pq_postgres_list_navigation) **Запрос** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ------------- | ---------------------------------------------------------------------------------------- | ----- | ---------------------------------------------------------------------------------------- | | operation | `"pq_postgres_list_navigation"` | да | | | descriptor | [PqPostgresDialogDescriptor](/reference/f1/types-powerquery/#pqpostgresdialogdescriptor) | да | | | schema | string | нет | Без поля возвращаются корневые схемы; с полем — таблицы и представления указанной схемы. | | `connectUser` | string | нет | | | `lanGrants` | [PqPostgresLanGrantWire](/reference/f1/types-powerquery/#pqpostgreslangrantwire)\[] | нет | | | privacy | [PqPrivacyEvaluationInput](/reference/f1/types-powerquery/#pqprivacyevaluationinput) | нет | | **Ответ при успехе · pq\_postgres\_list\_navigation** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | --------- | --------------------------------------------------------------------------------------------------- | ----- | ------------------------------------------- | | operation | `"pq_postgres_list_navigation"` | да | | | schemas | [PqPostgresNavigationSchemaWire](/reference/f1/types-powerquery/#pqpostgresnavigationschemawire)\[] | нет | Есть в ответе на запрос корневых схем. | | tables | [PqPostgresNavTableWire](/reference/f1/types-powerquery/#pqpostgresnavtablewire)\[] | нет | Есть в ответе на запрос таблиц одной схемы. | | denied | [PqPostgresDeniedWire](/reference/f1/types-powerquery/#pqpostgresdeniedwire) | нет | | **Минимальный JSON-шаблон**
```json
{
"operation": "pq_postgres_list_navigation",
"descriptor": "",
"requestedBackend": "native-desktop"
}
```
## pq\_postgres\_preview [Заголовок раздела «pq\_postgres\_preview»](#pq_postgres_preview) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------- | ---------------------------------------------------------------------------------------- | ----- | | operation | `"pq_postgres_preview"` | да | | descriptor | [PqPostgresDialogDescriptor](/reference/f1/types-powerquery/#pqpostgresdialogdescriptor) | да | | table | [PqPostgresPreviewTableRef](/reference/f1/types-powerquery/#pqpostgrespreviewtableref) | да | | `maxRows` | number | нет | | `connectUser` | string | нет | | `lanGrants` | [PqPostgresLanGrantWire](/reference/f1/types-powerquery/#pqpostgreslangrantwire)\[] | нет | | privacy | [PqPrivacyEvaluationInput](/reference/f1/types-powerquery/#pqprivacyevaluationinput) | нет | **Ответ при успехе · pq\_postgres\_preview** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | --------- | ---------------------------------------------------------------------------- | ----- | -------------------------------------------------------------------------------------- | | operation | `"pq_postgres_preview"` | да | | | columns | string\[] | нет | | | rows | string\[]\[] | нет | Display-projected rows (each cell a string); bounded ≤ min(maxRows, descriptor bound). | | truncated | boolean | да | | | denied | [PqPostgresDeniedWire](/reference/f1/types-powerquery/#pqpostgresdeniedwire) | нет | | **Минимальный JSON-шаблон**
```json
{
"operation": "pq_postgres_preview",
"descriptor": "",
"table": "",
"requestedBackend": "native-desktop"
}
```
## pq\_postgres\_test\_connection [Заголовок раздела «pq\_postgres\_test\_connection»](#pq_postgres_test_connection) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------- | ---------------------------------------------------------------------------------------- | ----- | | operation | `"pq_postgres_test_connection"` | да | | descriptor | [PqPostgresDialogDescriptor](/reference/f1/types-powerquery/#pqpostgresdialogdescriptor) | да | | `connectUser` | string | нет | | `lanGrants` | [PqPostgresLanGrantWire](/reference/f1/types-powerquery/#pqpostgreslangrantwire)\[] | нет | | privacy | [PqPrivacyEvaluationInput](/reference/f1/types-powerquery/#pqprivacyevaluationinput) | нет | **Ответ при успехе · pq\_postgres\_test\_connection** | Поле | Тип TypeScript | Обяз. | | --------------- | ---------------------------------------------------------------------------- | ----- | | operation | `"pq_postgres_test_connection"` | да | | `serverVersion` | string | нет | | denied | [PqPostgresDeniedWire](/reference/f1/types-powerquery/#pqpostgresdeniedwire) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "pq_postgres_test_connection",
"descriptor": "",
"requestedBackend": "native-desktop"
}
```
## pq\_sqlserver\_cancel [Заголовок раздела «pq\_sqlserver\_cancel»](#pq_sqlserver_cancel) **Запрос** | Поле | Тип TypeScript | Обяз. | | --------- | ----------------------- | ----- | | operation | `"pq_sqlserver_cancel"` | да | **Ответ при успехе · pq\_sqlserver\_cancel** | Поле | Тип TypeScript | Обяз. | | ------------ | ----------------------- | ----- | | operation | `"pq_sqlserver_cancel"` | да | | acknowledged | boolean | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pq_sqlserver_cancel",
"requestedBackend": "native-desktop"
}
```
## pq\_sqlserver\_list\_navigation [Заголовок раздела «pq\_sqlserver\_list\_navigation»](#pq_sqlserver_list_navigation) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------- | ------------------------------------------------------------------------------------ | ----- | | operation | `"pq_sqlserver_list_navigation"` | да | | descriptor | [PqSqlServerDescriptor](/reference/f1/types-powerquery/#pqsqlserverdescriptor) | да | | privacy | [PqPrivacyEvaluationInput](/reference/f1/types-powerquery/#pqprivacyevaluationinput) | нет | **Ответ при успехе · pq\_sqlserver\_list\_navigation** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------------------------------------------------------------------------- | ----- | | operation | `"pq_sqlserver_list_navigation"` | да | | items | [PqSqlServerNavigationItemWire](/reference/f1/types-powerquery/#pqsqlservernavigationitemwire)\[] | нет | | denied | [PqSqlServerDeniedWire](/reference/f1/types-powerquery/#pqsqlserverdeniedwire) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "pq_sqlserver_list_navigation",
"descriptor": "",
"requestedBackend": "native-desktop"
}
```
## pq\_sqlserver\_preview [Заголовок раздела «pq\_sqlserver\_preview»](#pq_sqlserver_preview) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------- | ------------------------------------------------------------------------------------ | ----- | | operation | `"pq_sqlserver_preview"` | да | | descriptor | [PqSqlServerDescriptor](/reference/f1/types-powerquery/#pqsqlserverdescriptor) | да | | table | [PqSqlServerTableRef](/reference/f1/types-powerquery/#pqsqlservertableref) | да | | `maxRows` | number | нет | | privacy | [PqPrivacyEvaluationInput](/reference/f1/types-powerquery/#pqprivacyevaluationinput) | нет | **Ответ при успехе · pq\_sqlserver\_preview** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------------------------------------------------------ | ----- | | operation | `"pq_sqlserver_preview"` | да | | columns | string\[] | нет | | rows | string\[]\[] | нет | | truncated | boolean | да | | denied | [PqSqlServerDeniedWire](/reference/f1/types-powerquery/#pqsqlserverdeniedwire) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "pq_sqlserver_preview",
"descriptor": "",
"table": "",
"requestedBackend": "native-desktop"
}
```
## pq\_sqlserver\_test\_connection [Заголовок раздела «pq\_sqlserver\_test\_connection»](#pq_sqlserver_test_connection) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------- | ------------------------------------------------------------------------------------ | ----- | | operation | `"pq_sqlserver_test_connection"` | да | | descriptor | [PqSqlServerDescriptor](/reference/f1/types-powerquery/#pqsqlserverdescriptor) | да | | privacy | [PqPrivacyEvaluationInput](/reference/f1/types-powerquery/#pqprivacyevaluationinput) | нет | **Ответ при успехе · pq\_sqlserver\_test\_connection** | Поле | Тип TypeScript | Обяз. | | --------------- | ------------------------------------------------------------------------------ | ----- | | operation | `"pq_sqlserver_test_connection"` | да | | `serverVersion` | string | нет | | denied | [PqSqlServerDeniedWire](/reference/f1/types-powerquery/#pqsqlserverdeniedwire) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "pq_sqlserver_test_connection",
"descriptor": "",
"requestedBackend": "native-desktop"
}
```
# Power Query: выполнение и прогресс
> Граф запроса, обновление, отмена и наблюдение за долгими операциями. Операций на странице: 9.
Граф запроса, обновление, отмена и наблюдение за долгими операциями. Термины — в [глоссарии](/start/glossary/). **Операции на этой странице — 9** * [`pq-query-graph-cancel`](#pq-query-graph-cancel) * [`pq-query-graph-explain`](#pq-query-graph-explain) * [`pq-query-graph-refresh`](#pq-query-graph-refresh) * [`pq-query-graph-snapshot`](#pq-query-graph-snapshot) * [`pq-scale-progress-cancel`](#pq-scale-progress-cancel) * [`pq-scale-progress-close`](#pq-scale-progress-close) * [`pq-scale-progress-open`](#pq-scale-progress-open) * [`pq-scale-progress-pull`](#pq-scale-progress-pull) * [`pq-scale-progress-snapshot`](#pq-scale-progress-snapshot) ## pq-query-graph-cancel [Заголовок раздела «pq-query-graph-cancel»](#pq-query-graph-cancel) **Запрос** | Поле | Тип TypeScript | Обяз. | | ----------- | ------------------------- | ----- | | operation | `"pq-query-graph-cancel"` | да | | generation | number | да | | `subset_id` | string | нет | **Ответ при успехе · pq-query-graph-cancel** | Поле | Тип TypeScript | Обяз. | | --------- | ---------------------------------------------------------------------------------------- | ----- | | operation | `"pq-query-graph-cancel"` | да | | outcome | [PqQueryGraphRefreshOutcome](/reference/f1/types-powerquery/#pqquerygraphrefreshoutcome) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-query-graph-cancel",
"generation": 0,
"requestedBackend": "native-desktop"
}
```
## pq-query-graph-explain [Заголовок раздела «pq-query-graph-explain»](#pq-query-graph-explain) **Запрос** | Поле | Тип TypeScript | Обяз. | | ----------------- | -------------------------- | ----- | | operation | `"pq-query-graph-explain"` | да | | `query_stable_id` | string | да | | `subset_id` | string | нет | **Ответ при успехе · pq-query-graph-explain** | Поле | Тип TypeScript | Обяз. | | --------- | -------------------------------------------------------------------------- | ----- | | operation | `"pq-query-graph-explain"` | да | | explain | [PqQueryGraphExplain](/reference/f1/types-powerquery/#pqquerygraphexplain) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-query-graph-explain",
"query_stable_id": "",
"requestedBackend": "native-desktop"
}
```
## pq-query-graph-refresh [Заголовок раздела «pq-query-graph-refresh»](#pq-query-graph-refresh) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------- | ---------------------------------------------------------------- | ----- | | operation | `"pq-query-graph-refresh"` | да | | scope | `"current"` \| “all” \| string | да | | `query_stable_id` | string | нет | | `subset_id` | string | нет | | `user_store_levels` | { canonicalScope: string; level: string; invalid?: boolean; }\[] | нет | **Ответ при успехе · pq-query-graph-refresh** | Поле | Тип TypeScript | Обяз. | | ------------ | --------------------------------------------------------------------------------------------- | ----- | | operation | `"pq-query-graph-refresh"` | да | | outcome | [PqQueryGraphRefreshOutcome](/reference/f1/types-powerquery/#pqquerygraphrefreshoutcome) | да | | committed | boolean | да | | publications | [PqQueryGraphNodePublication](/reference/f1/types-powerquery/#pqquerygraphnodepublication)\[] | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-query-graph-refresh",
"scope": "current",
"requestedBackend": "native-desktop"
}
```
## pq-query-graph-snapshot [Заголовок раздела «pq-query-graph-snapshot»](#pq-query-graph-snapshot) **Запрос** | Поле | Тип TypeScript | Обяз. | | ----------- | --------------------------- | ----- | | operation | `"pq-query-graph-snapshot"` | да | | `subset_id` | string | нет | **Ответ при успехе · pq-query-graph-snapshot** | Поле | Тип TypeScript | Обяз. | | --------- | ---------------------------------------------------------------------------- | ----- | | operation | `"pq-query-graph-snapshot"` | да | | snapshot | [PqQueryGraphSnapshot](/reference/f1/types-powerquery/#pqquerygraphsnapshot) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-query-graph-snapshot",
"requestedBackend": "native-desktop"
}
```
## pq-scale-progress-cancel [Заголовок раздела «pq-scale-progress-cancel»](#pq-scale-progress-cancel) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------ | ---------------------------- | ----- | | operation | `"pq-scale-progress-cancel"` | да | | `session_id` | string | да | **Ответ при успехе · pq-scale-progress-cancel** | Поле | Тип TypeScript | Обяз. | | --------- | -------------------------------------------------------------------------------------------- | ----- | | operation | `"pq-scale-progress-cancel"` | да | | outcome | [PqScaleProgressCancelPayload](/reference/f1/types-powerquery/#pqscaleprogresscancelpayload) | нет | | denied | [PqScaleDenied](/reference/f1/types-powerquery/#pqscaledenied) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-scale-progress-cancel",
"session_id": "",
"requestedBackend": "native-desktop"
}
```
## pq-scale-progress-close [Заголовок раздела «pq-scale-progress-close»](#pq-scale-progress-close) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------ | --------------------------- | ----- | | operation | `"pq-scale-progress-close"` | да | | `session_id` | string | да | **Ответ при успехе · pq-scale-progress-close** | Поле | Тип TypeScript | Обяз. | | --------- | --------------------------- | ----- | | operation | `"pq-scale-progress-close"` | да | | closed | boolean | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-scale-progress-close",
"session_id": "",
"requestedBackend": "native-desktop"
}
```
## pq-scale-progress-open [Заголовок раздела «pq-scale-progress-open»](#pq-scale-progress-open) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------------- | -------------------------- | ----- | | operation | `"pq-scale-progress-open"` | да | | `rows_requested` | number | нет | | `max_batch_rows` | number | нет | **Ответ при успехе · pq-scale-progress-open** | Поле | Тип TypeScript | Обяз. | | --------- | ---------------------------------------------------------------------------------------- | ----- | | operation | `"pq-scale-progress-open"` | да | | session | [PqScaleProgressOpenPayload](/reference/f1/types-powerquery/#pqscaleprogressopenpayload) | да | | denied | [PqScaleDenied](/reference/f1/types-powerquery/#pqscaledenied) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-scale-progress-open",
"requestedBackend": "native-desktop"
}
```
## pq-scale-progress-pull [Заголовок раздела «pq-scale-progress-pull»](#pq-scale-progress-pull) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------ | -------------------------- | ----- | | operation | `"pq-scale-progress-pull"` | да | | `session_id` | string | да | **Ответ при успехе · pq-scale-progress-pull** | Поле | Тип TypeScript | Обяз. | | --------- | ---------------------------------------------------------------------------------------- | ----- | | operation | `"pq-scale-progress-pull"` | да | | progress | [PqScaleProgressPullPayload](/reference/f1/types-powerquery/#pqscaleprogresspullpayload) | нет | | denied | [PqScaleDenied](/reference/f1/types-powerquery/#pqscaledenied) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-scale-progress-pull",
"session_id": "",
"requestedBackend": "native-desktop"
}
```
## pq-scale-progress-snapshot [Заголовок раздела «pq-scale-progress-snapshot»](#pq-scale-progress-snapshot) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------ | ------------------------------ | ----- | | operation | `"pq-scale-progress-snapshot"` | да | | `session_id` | string | да | **Ответ при успехе · pq-scale-progress-snapshot** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------------------------------------------------------------------------ | ----- | | operation | `"pq-scale-progress-snapshot"` | да | | snapshot | [PqScaleProgressSnapshotPayload](/reference/f1/types-powerquery/#pqscaleprogresssnapshotpayload) | нет | | denied | [PqScaleDenied](/reference/f1/types-powerquery/#pqscaledenied) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-scale-progress-snapshot",
"session_id": "",
"requestedBackend": "native-desktop"
}
```
# Power Query: выражения M
> Вычисление и разбор M-выражений, в том числе с внешними источниками. Операций на странице: 9.
Вычисление и разбор M-выражений, в том числе с внешними источниками. Термины — в [глоссарии](/start/glossary/). **Операции на этой странице — 9** * [`evaluate_m_expression`](#evaluate_m_expression) * [`evaluate_m_expression_with_odata_feed`](#evaluate_m_expression_with_odata_feed) * [`evaluate_m_expression_with_sources`](#evaluate_m_expression_with_sources) * [`evaluate_m_expression_with_web_connector`](#evaluate_m_expression_with_web_connector) * [`evaluate_m_expression_with_web_source`](#evaluate_m_expression_with_web_source) * [`inspect_m_expression`](#inspect_m_expression) * [`inspect_m_expression_with_odata_feed`](#inspect_m_expression_with_odata_feed) * [`inspect_m_expression_with_postgres`](#inspect_m_expression_with_postgres) * [`inspect_m_expression_with_sources`](#inspect_m_expression_with_sources) ## evaluate\_m\_expression [Заголовок раздела «evaluate\_m\_expression»](#evaluate_m_expression) Вычисляет/оценивает m expression. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"evaluate_m_expression"` | да | | `mText` | string | да | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · evaluate\_m\_expression** | Поле | Тип TypeScript | Обяз. | | --------- | -------------------------------------------------------------------- | ----- | | operation | `"evaluate_m_expression"` | да | | outcome | [MExpressionOutcome](/reference/f1/types-common/#mexpressionoutcome) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "evaluate_m_expression",
"mText": "",
"requestedBackend": "native-desktop"
}
```
## evaluate\_m\_expression\_with\_odata\_feed [Заголовок раздела «evaluate\_m\_expression\_with\_odata\_feed»](#evaluate_m_expression_with_odata_feed) Вычисляет/оценивает m expression with odata feed. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------------ | ----- | | operation | `"evaluate_m_expression_with_odata_feed"` | да | | `mText` | string | да | | connector | [ApprovedODataFeedDescriptor](/reference/f1/types-powerquery/#approvedodatafeeddescriptor) | нет | | privacy | [PqPrivacyEvaluationInput](/reference/f1/types-powerquery/#pqprivacyevaluationinput) | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · evaluate\_m\_expression\_with\_odata\_feed** | Поле | Тип TypeScript | Обяз. | | --------- | -------------------------------------------------------------------- | ----- | | operation | `"evaluate_m_expression_with_odata_feed"` | да | | outcome | [MExpressionOutcome](/reference/f1/types-common/#mexpressionoutcome) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "evaluate_m_expression_with_odata_feed",
"mText": "",
"requestedBackend": "native-desktop"
}
```
## evaluate\_m\_expression\_with\_sources [Заголовок раздела «evaluate\_m\_expression\_with\_sources»](#evaluate_m_expression_with_sources) Вычисляет/оценивает m expression with sources. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | --------------------------------------------------------------------------------------- | ----- | | operation | `"evaluate_m_expression_with_sources"` | да | | `mText` | string | да | | sources | [ApprovedSourceDescriptor](/reference/f1/types-powerquery/#approvedsourcedescriptor)\[] | да | | privacy | [PqPrivacyEvaluationInput](/reference/f1/types-powerquery/#pqprivacyevaluationinput) | нет | | `foldMode` | `"folding-on"` \| “force-local” | нет | | `userStoreLevels` | [PqPrivacyLevelAssignment](/reference/f1/types-powerquery/#pqprivacylevelassignment)\[] | нет | | `subsetId` | string | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · evaluate\_m\_expression\_with\_sources** | Поле | Тип TypeScript | Обяз. | | --------- | -------------------------------------------------------------------- | ----- | | operation | `"evaluate_m_expression_with_sources"` | да | | outcome | [MExpressionOutcome](/reference/f1/types-common/#mexpressionoutcome) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "evaluate_m_expression_with_sources",
"mText": "",
"sources": [],
"requestedBackend": "native-desktop"
}
```
## evaluate\_m\_expression\_with\_web\_connector [Заголовок раздела «evaluate\_m\_expression\_with\_web\_connector»](#evaluate_m_expression_with_web_connector) Вычисляет/оценивает m expression with web connector. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------------------ | ----- | | operation | `"evaluate_m_expression_with_web_connector"` | да | | `mText` | string | да | | connector | [ApprovedWebConnectorDescriptor](/reference/f1/types-powerquery/#approvedwebconnectordescriptor) | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · evaluate\_m\_expression\_with\_web\_connector** | Поле | Тип TypeScript | Обяз. | | --------- | -------------------------------------------------------------------- | ----- | | operation | `"evaluate_m_expression_with_web_connector"` | да | | outcome | [MExpressionOutcome](/reference/f1/types-common/#mexpressionoutcome) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "evaluate_m_expression_with_web_connector",
"mText": "",
"requestedBackend": "native-desktop"
}
```
## evaluate\_m\_expression\_with\_web\_source [Заголовок раздела «evaluate\_m\_expression\_with\_web\_source»](#evaluate_m_expression_with_web_source) Вычисляет/оценивает m expression with web source. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------------ | ----- | | operation | `"evaluate_m_expression_with_web_source"` | да | | `mText` | string | да | | source | [ApprovedWebSourceDescriptor](/reference/f1/types-powerquery/#approvedwebsourcedescriptor) | нет | | privacy | [PqPrivacyEvaluationInput](/reference/f1/types-powerquery/#pqprivacyevaluationinput) | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · evaluate\_m\_expression\_with\_web\_source** | Поле | Тип TypeScript | Обяз. | | --------- | -------------------------------------------------------------------- | ----- | | operation | `"evaluate_m_expression_with_web_source"` | да | | outcome | [MExpressionOutcome](/reference/f1/types-common/#mexpressionoutcome) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "evaluate_m_expression_with_web_source",
"mText": "",
"requestedBackend": "native-desktop"
}
```
## inspect\_m\_expression [Заголовок раздела «inspect\_m\_expression»](#inspect_m_expression) Инспектирует m expression. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"inspect_m_expression"` | да | | `mText` | string | да | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · inspect\_m\_expression** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------------------------------------------------------------------ | ----- | | operation | `"inspect_m_expression"` | да | | snapshot | [PowerQueryInspectorSnapshot](/reference/f1/types-powerquery/#powerqueryinspectorsnapshot) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "inspect_m_expression",
"mText": "",
"requestedBackend": "native-desktop"
}
```
## inspect\_m\_expression\_with\_odata\_feed [Заголовок раздела «inspect\_m\_expression\_with\_odata\_feed»](#inspect_m_expression_with_odata_feed) Инспектирует m expression with odata feed. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------------ | ----- | | operation | `"inspect_m_expression_with_odata_feed"` | да | | `mText` | string | да | | connector | [ApprovedODataFeedDescriptor](/reference/f1/types-powerquery/#approvedodatafeeddescriptor) | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · inspect\_m\_expression\_with\_odata\_feed** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------------------------------------------------------------------ | ----- | | operation | `"inspect_m_expression_with_odata_feed"` | да | | snapshot | [PowerQueryInspectorSnapshot](/reference/f1/types-powerquery/#powerqueryinspectorsnapshot) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "inspect_m_expression_with_odata_feed",
"mText": "",
"requestedBackend": "native-desktop"
}
```
## inspect\_m\_expression\_with\_postgres [Заголовок раздела «inspect\_m\_expression\_with\_postgres»](#inspect_m_expression_with_postgres) Инспектирует m expression with postgres. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------------------- | ----- | | operation | `"inspect_m_expression_with_postgres"` | да | | `mText` | string | да | | descriptor | [PqPostgresDialogDescriptor](/reference/f1/types-powerquery/#pqpostgresdialogdescriptor) | нет | | schema | string | нет | | item | string | нет | | `connectUser` | string | нет | | `lanGrants` | [PqPostgresLanGrantWire](/reference/f1/types-powerquery/#pqpostgreslangrantwire)\[] | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · inspect\_m\_expression\_with\_postgres** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------------------------------------------------------------------ | ----- | | operation | `"inspect_m_expression_with_postgres"` | да | | snapshot | [PowerQueryInspectorSnapshot](/reference/f1/types-powerquery/#powerqueryinspectorsnapshot) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "inspect_m_expression_with_postgres",
"mText": "",
"requestedBackend": "native-desktop"
}
```
## inspect\_m\_expression\_with\_sources [Заголовок раздела «inspect\_m\_expression\_with\_sources»](#inspect_m_expression_with_sources) Инспектирует m expression with sources. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | --------------------------------------------------------------------------------------- | ----- | | operation | `"inspect_m_expression_with_sources"` | да | | `mText` | string | да | | sources | [ApprovedSourceDescriptor](/reference/f1/types-powerquery/#approvedsourcedescriptor)\[] | да | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · inspect\_m\_expression\_with\_sources** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------------------------------------------------------------------ | ----- | | operation | `"inspect_m_expression_with_sources"` | да | | snapshot | [PowerQueryInspectorSnapshot](/reference/f1/types-powerquery/#powerqueryinspectorsnapshot) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "inspect_m_expression_with_sources",
"mText": "",
"sources": [],
"requestedBackend": "native-desktop"
}
```
# Power Query: внешние mashup
> Чтение, запись и обновление наборов запросов Power Query, собранных вне продукта. Операций на странице: 3.
Чтение, запись и обновление наборов запросов Power Query, собранных вне продукта. Термины — в [глоссарии](/start/glossary/). **Операции на этой странице — 3** * [`read_foreign_mashup`](#read_foreign_mashup) * [`refresh_foreign_mashup_query`](#refresh_foreign_mashup_query) * [`write_foreign_mashup`](#write_foreign_mashup) ## read\_foreign\_mashup [Заголовок раздела «read\_foreign\_mashup»](#read_foreign_mashup) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------- | ----------------------- | ----- | | operation | “read\_foreign\_mashup” | да | | `subsetId` | string | да | **Ответ при успехе · read\_foreign\_mashup** | Поле | Тип TypeScript | Обяз. | | ---------- | -------------------------------------------------------------------------------------------------- | ----- | | operation | “read\_foreign\_mashup” | да | | projection | [ContractForeignMashupProjection](/reference/f1/types-powerquery/#contractforeignmashupprojection) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "read_foreign_mashup",
"subsetId": ""
}
```
## refresh\_foreign\_mashup\_query [Заголовок раздела «refresh\_foreign\_mashup\_query»](#refresh_foreign_mashup_query) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Запрос** | Поле | Тип TypeScript | Обяз. | Что это | | ------------------ | --------------------------------- | ----- | ------------------------------------------------------------------------------------------------ | | operation | “refresh\_foreign\_mashup\_query” | да | | | `expectedRevision` | number | да | | | `subsetId` | string | да | | | `queryIdentity` | string | да | | | generation | number | да | Поколение вызывающего, возвращается неизменным: устаревший ответ отбрасывается детерминированно. | | cancel | boolean | нет | Отмена двигает только заграждение поколения — ничего не вычисляет и не меняет. | **Ответ при успехе · refresh\_foreign\_mashup\_query** | Поле | Тип TypeScript | Обяз. | | --------- | -------------------------------------------------------------------------------------------------------- | ----- | | operation | “refresh\_foreign\_mashup\_query” | да | | outcome | [ContractForeignMashupRefreshResult](/reference/f1/types-powerquery/#contractforeignmashuprefreshresult) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "refresh_foreign_mashup_query",
"expectedRevision": 0,
"subsetId": "",
"queryIdentity": "",
"generation": 0
}
```
## write\_foreign\_mashup [Заголовок раздела «write\_foreign\_mashup»](#write_foreign_mashup) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------------- | ----- | | operation | “write\_foreign\_mashup” | да | | `expectedRevision` | number | да | | `subsetId` | string | да | | `readOnly` | boolean | нет | | edits | [ContractMashupWriteEdit](/reference/f1/types-powerquery/#contractmashupwriteedit)\[] | да | **Ответ при успехе · write\_foreign\_mashup** | Поле | Тип TypeScript | Обяз. | | --------- | -------------------------------------------------------------------------------------- | ----- | | operation | “write\_foreign\_mashup” | да | | outcome | [ContractMashupWriteResult](/reference/f1/types-powerquery/#contractmashupwriteresult) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "write_foreign_mashup",
"expectedRevision": 0,
"subsetId": "",
"edits": []
}
```
# Power Query: запросы и шаги
> Жизненный цикл запросов, применённые шаги, параметры и навигация по папкам. Операций на странице: 13.
Жизненный цикл запросов, применённые шаги, параметры и навигация по папкам. Термины — в [глоссарии](/start/glossary/). **Операции на этой странице — 13** * [`commit_applied_step_edit`](#commit_applied_step_edit) * [`commit_power_query_load`](#commit_power_query_load) * [`delete_power_query`](#delete_power_query) * [`duplicate_power_query`](#duplicate_power_query) * [`list_power_query_definitions`](#list_power_query_definitions) * [`mutate_applied_step`](#mutate_applied_step) * [`power_query_folder_navigator`](#power_query_folder_navigator) * [`power_query_parameter_manager`](#power_query_parameter_manager) * [`profile_applied_step_columns`](#profile_applied_step_columns) * [`project_applied_steps`](#project_applied_steps) * [`reference_power_query`](#reference_power_query) * [`rename_power_query`](#rename_power_query) * [`save_power_query_definition`](#save_power_query_definition) ## commit\_applied\_step\_edit [Заголовок раздела «commit\_applied\_step\_edit»](#commit_applied_step_edit) Фиксирует applied step edit. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"commit_applied_step_edit"` | да | | `mText` | string | да | | `queryStableId` | string | нет | | `stepId` | string | да | | `canonicalM` | string | да | | `editorSessionId` | string | нет | | generation | number | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · commit\_applied\_step\_edit** | Поле | Тип TypeScript | Обяз. | | --------- | -------------------------------------------------------------------- | ----- | | operation | `"commit_applied_step_edit"` | да | | result | [StepMutationResult](/reference/f1/types-common/#stepmutationresult) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "commit_applied_step_edit",
"mText": "",
"stepId": "",
"canonicalM": "",
"requestedBackend": "native-desktop"
}
```
## commit\_power\_query\_load [Заголовок раздела «commit\_power\_query\_load»](#commit_power_query_load) Фиксирует power query load. **Запрос** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ------------------ | ---------------------------------------------------------------------------- | ----- | ----------------------------------------------------------------------------- | | operation | `"commit_power_query_load"` | да | | | `subsetId` | string | да | | | `loadPlan` | [PowerQueryLoadPlan](/reference/f1/types-powerquery/#powerqueryloadplan) | да | | | query | unknown | да | Opaque, secret-free Rust-owned persisted query record returned by evaluation. | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | | **Ответ при успехе · commit\_power\_query\_load** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ------------------ | -------------------------------------------------------------------------- | ----- | ---------------------------------------------------------------------------------------------------- | | operation | `"commit_power_query_load"` | да | | | `queryId` | string | да | | | `appliedEditCount` | number | да | | | `createdSheet` | boolean | да | | | `sheetKey` | string | нет | | | `staleClearCount` | number | да | | | projection | Extract< ComputeResponsePayload, { operation: `"open_workbook_subset"` } > | да | Состояние книги после применения правки, полученное в том же сеансе внутри одной неделимой операции. | **Минимальный JSON-шаблон**
```json
{
"operation": "commit_power_query_load",
"subsetId": "",
"loadPlan": "",
"query": "",
"requestedBackend": "native-desktop"
}
```
## delete\_power\_query [Заголовок раздела «delete\_power\_query»](#delete_power_query) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------- | ---------------------- | ----- | | operation | “delete\_power\_query” | да | | `subsetId` | string | да | | `stableId` | string | да | **Ответ при успехе · delete\_power\_query** | Поле | Тип TypeScript | Обяз. | | -------------------- | ---------------------- | ----- | | operation | “delete\_power\_query” | да | | status | string | да | | reason | string | нет | | `removedDisplayName` | string | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "delete_power_query",
"subsetId": "",
"stableId": ""
}
```
## duplicate\_power\_query [Заголовок раздела «duplicate\_power\_query»](#duplicate_power_query) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------- | ------------------------- | ----- | | operation | “duplicate\_power\_query” | да | | `subsetId` | string | да | | `stableId` | string | да | **Ответ при успехе · duplicate\_power\_query** | Поле | Тип TypeScript | Обяз. | | ---------------- | ------------------------- | ----- | | operation | “duplicate\_power\_query” | да | | status | string | да | | reason | string | нет | | `newStableId` | string | нет | | `newDisplayName` | string | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "duplicate_power_query",
"subsetId": "",
"stableId": ""
}
```
## list\_power\_query\_definitions [Заголовок раздела «list\_power\_query\_definitions»](#list_power_query_definitions) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------- | --------------------------------- | ----- | | operation | “list\_power\_query\_definitions” | да | | `subsetId` | string | да | **Ответ при успехе · list\_power\_query\_definitions** | Поле | Тип TypeScript | Обяз. | | --------- | --------------------------------- | ----- | | operation | “list\_power\_query\_definitions” | да | | queries | unknown\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "list_power_query_definitions",
"subsetId": ""
}
```
## mutate\_applied\_step [Заголовок раздела «mutate\_applied\_step»](#mutate_applied_step) Изменяет applied step. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"mutate_applied_step"` | да | | `mText` | string | да | | `queryStableId` | string | нет | | mutation | [StepMutation](/reference/f1/types-common/#stepmutation) | да | | `editorSessionId` | string | нет | | generation | number | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · mutate\_applied\_step** | Поле | Тип TypeScript | Обяз. | | --------- | -------------------------------------------------------------------- | ----- | | operation | `"mutate_applied_step"` | да | | result | [StepMutationResult](/reference/f1/types-common/#stepmutationresult) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "mutate_applied_step",
"mText": "",
"mutation": "",
"requestedBackend": "native-desktop"
}
```
## power\_query\_folder\_navigator [Заголовок раздела «power\_query\_folder\_navigator»](#power_query_folder_navigator) **Запрос** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ------------------ | ---------------------------------------------------------------------------- | ----- | --------------------------------------------------------------------------------------------------------------------------------- | | operation | `"power_query_folder_navigator"` | да | | | action | string | да | “list-entries” \| “preview-entry” \| “preview-combined” \| “refresh” \| “package-ledger” | | `sourceKind` | `"folder"` \| “json” \| “xml” | да | | | `rootUri` | string | да | Адрес папки в том же виде, что и в операции преобразования выше: `file:///путь` с параметрами `include`, `exclude` и `recursive`. | | `entryId` | string | нет | | | `lineageJson` | string | нет | | | `savedDigest` | number | нет | | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | | **Ответ при успехе · power\_query\_folder\_navigator** | Поле | Тип TypeScript | Обяз. | | --------- | ---------------------------------------------------------------------------- | ----- | | operation | `"power_query_folder_navigator"` | да | | outcome | [FolderNavigatorOutcome](/reference/f1/types-common/#foldernavigatoroutcome) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "power_query_folder_navigator",
"action": "",
"sourceKind": "folder",
"rootUri": "",
"requestedBackend": "native-desktop"
}
```
## power\_query\_parameter\_manager [Заголовок раздела «power\_query\_parameter\_manager»](#power_query_parameter_manager) **Запрос** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ------------------ | ---------------------------------------------------------------------------- | ----- | ----------------------------------------------------------------------------------------------------------- | | operation | `"power_query_parameter_manager"` | да | | | `subsetId` | string | да | | | action | string | да | One of “create” \| “edit” \| “rename” \| “duplicate” \| “delete” \| “list” \| “set-value”. | | dto | [ContractParameterDTO](/reference/f1/types-common/#contractparameterdto) | нет | Полный объект: при `create` его идентификатор не учитывается, при `edit` значения полей заменяются целиком. | | id | string | нет | Target parameter’s stable id; required by edit/rename/duplicate/delete/set-value. | | name | string | нет | New display name; required by “rename”. | | value | [ContractParamValueRepr](/reference/f1/types-common/#contractparamvaluerepr) | нет | New current value; required by “set-value”. | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | | **Ответ при успехе · power\_query\_parameter\_manager** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ----------------- | -------------------------------------------------------------------------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------- | | operation | `"power_query_parameter_manager"` | да | | | status | string | да | | | reason | string \| null | нет | | | parameter | [ContractParameterDTO](/reference/f1/types-common/#contractparameterdto) \| null | нет | Параметр, к которому относилось действие или который оно создало. Нет в ответе при `list` и при отказе. | | parameters | [ContractParameterDTO](/reference/f1/types-common/#contractparameterdto)\[] | да | Every parameter currently registered, in stable creation order. | | recomputed | [ContractRecomputedQueryStatus](/reference/f1/types-powerquery/#contractrecomputedquerystatus)\[] | да | Есть в ответе, только если `edit` или `set-value` действительно изменили значение. | | `dependencyGraph` | [ContractDependencyGraphSnapshot](/reference/f1/types-formulas/#contractdependencygraphsnapshot) \| null | нет | | **Минимальный JSON-шаблон**
```json
{
"operation": "power_query_parameter_manager",
"subsetId": "",
"action": "",
"requestedBackend": "native-desktop"
}
```
## profile\_applied\_step\_columns [Заголовок раздела «profile\_applied\_step\_columns»](#profile_applied_step_columns) Профилирует applied step columns. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"profile_applied_step_columns"` | да | | `mText` | string | да | | `queryStableId` | string | нет | | `stepId` | string | нет | | `editorSessionId` | string | нет | | generation | number | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · profile\_applied\_step\_columns** | Поле | Тип TypeScript | Обяз. | Примечание из контракта | | ------------- | ---------------------------------------------------------------------- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------- | | operation | `"profile_applied_step_columns"` | да | | | profiled | boolean | да | `true`, если профиль удалось посчитать; `false`, если вычисление не прошло. | | columns | [ColumnProfile](/reference/f1/types-format/#columnprofile)\[] | да | По одному профилю на каждый столбец результата; пусто, если вычисление не прошло. Значения считает ядро, интерфейс их только показывает. | | `rowCount` | number | да | Настоящее число строк результата, а не размер выборки. | | sampled | boolean | да | `true`, если профиль построен не по всем строкам, а по началу результата: строк оказалось больше предела выборки. | | `sampledRows` | number | да | Сколько строк вошло в профиль: либо все, либо предел выборки — что меньше. | | `sampleCap` | number | да | Предел выборки строк, действовавший при этом проходе. | | block | { sourceId: string; mSource: string; reason: string; detail: string; } | нет | Причина, по которой профиль построить не удалось. Частичного профиля не бывает: либо он есть целиком, либо здесь стоит причина отказа. | | session | [EditorSessionStamp](/reference/f1/types-session/#editorsessionstamp) | нет | Отметка сеанса, возвращаемая в ответах, привязанных к сеансу. В вызовах без сеанса поля нет. | **Минимальный JSON-шаблон**
```json
{
"operation": "profile_applied_step_columns",
"mText": "",
"requestedBackend": "native-desktop"
}
```
## project\_applied\_steps [Заголовок раздела «project\_applied\_steps»](#project_applied_steps) Проецирует applied steps. **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"project_applied_steps"` | да | | `mText` | string | да | | `queryStableId` | string | нет | | `editorSessionId` | string | нет | | generation | number | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · project\_applied\_steps** | Поле | Тип TypeScript | Обяз. | | ---------- | -------------------------------------------------------------------------------- | ----- | | operation | `"project_applied_steps"` | да | | projection | [AppliedStepsProjection](/reference/f1/types-powerquery/#appliedstepsprojection) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "project_applied_steps",
"mText": "",
"requestedBackend": "native-desktop"
}
```
## reference\_power\_query [Заголовок раздела «reference\_power\_query»](#reference_power_query) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------- | ------------------------- | ----- | | operation | “reference\_power\_query” | да | | `subsetId` | string | да | | `stableId` | string | да | **Ответ при успехе · reference\_power\_query** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------- | ----- | | operation | “reference\_power\_query” | да | | status | string | да | | reason | string | нет | | `newStableId` | string | нет | | `newDisplayName` | string | нет | | `upstreamStableId` | string | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "reference_power_query",
"subsetId": "",
"stableId": ""
}
```
## rename\_power\_query [Заголовок раздела «rename\_power\_query»](#rename_power_query) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------------- | ---------------------- | ----- | | operation | “rename\_power\_query” | да | | `subsetId` | string | да | | `stableId` | string | да | | `newDisplayName` | string | да | **Ответ при успехе · rename\_power\_query** | Поле | Тип TypeScript | Обяз. | | --------------------- | ---------------------- | ----- | | operation | “rename\_power\_query” | да | | status | string | да | | reason | string | нет | | `previousDisplayName` | string | нет | | `newDisplayName` | string | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "rename_power_query",
"subsetId": "",
"stableId": "",
"newDisplayName": ""
}
```
## save\_power\_query\_definition [Заголовок раздела «save\_power\_query\_definition»](#save_power_query_definition) Сохраняет power query definition. **Запрос** | Поле | Тип TypeScript | Обяз. | | -------------------------- | ---------------------------------------------------------------------------- | ----- | | operation | `"save_power_query_definition"` | да | | `subsetId` | string | да | | query | unknown | да | | `boundDestinationSheetKey` | string | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · save\_power\_query\_definition** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------- | ----- | | operation | `"save_power_query_definition"` | да | | status | string | да | | reason | string | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "save_power_query_definition",
"subsetId": "",
"query": "",
"requestedBackend": "native-desktop"
}
```
# Power Query: таблицы из запросов
> Загрузка результата запроса в лист, обновление таких таблиц и связь между таблицей на листе и запросом, который её наполняет. Операций на странице: 8.
Загрузка результата запроса в лист, обновление таких таблиц и связь между таблицей на листе и запросом, который её наполняет. Термины — в [глоссарии](/start/glossary/). **Операции на этой странице — 8** * [`pq-product-ribbon-list`](#pq-product-ribbon-list) * [`pq-product-ribbon-probe`](#pq-product-ribbon-probe) * [`pq-product-ribbon-remove`](#pq-product-ribbon-remove) * [`product_table_range_load_to`](#product_table_range_load_to) * [`product_table_range_mutate_step`](#product_table_range_mutate_step) * [`product_table_range_open_query`](#product_table_range_open_query) * [`product_table_range_refresh_all`](#product_table_range_refresh_all) * [`product_table_range_refresh_current`](#product_table_range_refresh_current) ## pq-product-ribbon-list [Заголовок раздела «pq-product-ribbon-list»](#pq-product-ribbon-list) **Запрос** | Поле | Тип TypeScript | Обяз. | | --------- | -------------------------- | ----- | | operation | `"pq-product-ribbon-list"` | да | **Ответ при успехе · pq-product-ribbon-list** | Поле | Тип TypeScript | Обяз. | | --------- | --------------------------------------------------------------------------------------------- | ----- | | operation | `"pq-product-ribbon-list"` | да | | queries | [PqProductRibbonQueryPayload](/reference/f1/types-powerquery/#pqproductribbonquerypayload)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-product-ribbon-list",
"requestedBackend": "native-desktop"
}
```
## pq-product-ribbon-probe [Заголовок раздела «pq-product-ribbon-probe»](#pq-product-ribbon-probe) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------ | --------------------------- | ----- | | operation | `"pq-product-ribbon-probe"` | да | | `sheet_name` | string | да | | `table_name` | string | нет | | `range_ref` | string | нет | **Ответ при успехе · pq-product-ribbon-probe** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------------------------------------------------------------------ | ----- | | operation | `"pq-product-ribbon-probe"` | да | | query | [PqProductRibbonQueryPayload](/reference/f1/types-powerquery/#pqproductribbonquerypayload) | нет | | denied | [PqProductRibbonDenied](/reference/f1/types-powerquery/#pqproductribbondenied) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-product-ribbon-probe",
"sheet_name": "",
"requestedBackend": "native-desktop"
}
```
## pq-product-ribbon-remove [Заголовок раздела «pq-product-ribbon-remove»](#pq-product-ribbon-remove) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------- | ---------------------------- | ----- | | operation | `"pq-product-ribbon-remove"` | да | | `query_id` | string | да | **Ответ при успехе · pq-product-ribbon-remove** | Поле | Тип TypeScript | Обяз. | | --------- | ---------------------------- | ----- | | operation | `"pq-product-ribbon-remove"` | да | | removed | boolean | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-product-ribbon-remove",
"query_id": "",
"requestedBackend": "native-desktop"
}
```
## product\_table\_range\_load\_to [Заголовок раздела «product\_table\_range\_load\_to»](#product_table_range_load_to) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | -------------------------------------------------------------------------------- | ----- | | operation | `"product_table_range_load_to"` | да | | `subsetId` | string | да | | identity | [TableRangeSourceIdentity](/reference/f1/types-data/#tablerangesourceidentity) | да | | `mText` | string | да | | `queryStableId` | string | нет | | `displayName` | string | нет | | destination | [TableRangeOutputPlacement](/reference/f1/types-data/#tablerangeoutputplacement) | да | | anchor | [CellAnchor](/reference/f1/types-cells/#cellanchor) | нет | | `includeHeader` | boolean | да | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · product\_table\_range\_load\_to** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------- | ----- | | operation | `"product_table_range_load_to"` | да | **Минимальный JSON-шаблон**
```json
{
"operation": "product_table_range_load_to",
"subsetId": "",
"identity": "",
"mText": "",
"destination": "",
"includeHeader": false,
"requestedBackend": "native-desktop"
}
```
## product\_table\_range\_mutate\_step [Заголовок раздела «product\_table\_range\_mutate\_step»](#product_table_range_mutate_step) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------ | ----- | | operation | `"product_table_range_mutate_step"` | да | | `subsetId` | string | да | | identity | [TableRangeSourceIdentity](/reference/f1/types-data/#tablerangesourceidentity) | да | | `mText` | string | да | | `queryStableId` | string | нет | | mutation | [StepMutation](/reference/f1/types-common/#stepmutation) | да | | `editorSessionId` | string | нет | | generation | number | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · product\_table\_range\_mutate\_step** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------------------------------------------------------------------------ | ----- | | operation | `"product_table_range_mutate_step"` | да | | result | [TableRangeQueryMutationPreview](/reference/f1/types-powerquery/#tablerangequerymutationpreview) | да | | session | [EditorSessionStamp](/reference/f1/types-session/#editorsessionstamp) | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "product_table_range_mutate_step",
"subsetId": "",
"identity": "",
"mText": "",
"mutation": "",
"requestedBackend": "native-desktop"
}
```
## product\_table\_range\_open\_query [Заголовок раздела «product\_table\_range\_open\_query»](#product_table_range_open_query) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ------------------------------------------------------------------------------ | ----- | | operation | `"product_table_range_open_query"` | да | | `subsetId` | string | да | | identity | [TableRangeSourceIdentity](/reference/f1/types-data/#tablerangesourceidentity) | да | | `queryStableId` | string | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · product\_table\_range\_open\_query** | Поле | Тип TypeScript | Обяз. | | ------------------------ | -------------------------------------------------------------------------------- | ----- | | operation | `"product_table_range_open_query"` | да | | ready | boolean | да | | projection | [AppliedStepsProjection](/reference/f1/types-powerquery/#appliedstepsprojection) | нет | | preview | [TableRangeQueryPreview](/reference/f1/types-powerquery/#tablerangequerypreview) | нет | | session | [EditorSessionStamp](/reference/f1/types-session/#editorsessionstamp) | нет | | `blockReason` | string | нет | | `blockDetail` | string | нет | | `existingOutputStableId` | string | нет | **Минимальный JSON-шаблон**
```json
{
"operation": "product_table_range_open_query",
"subsetId": "",
"identity": "",
"requestedBackend": "native-desktop"
}
```
## product\_table\_range\_refresh\_all [Заголовок раздела «product\_table\_range\_refresh\_all»](#product_table_range_refresh_all) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"product_table_range_refresh_all"` | да | | `subsetId` | string | да | | action | `"run"` \| “start” \| “poll” \| “commit” \| “cancel” | нет | | generation | number | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · product\_table\_range\_refresh\_all** | Поле | Тип TypeScript | Обяз. | | --------- | ----------------------------------- | ----- | | operation | `"product_table_range_refresh_all"` | да | **Минимальный JSON-шаблон**
```json
{
"operation": "product_table_range_refresh_all",
"subsetId": "",
"requestedBackend": "native-desktop"
}
```
## product\_table\_range\_refresh\_current [Заголовок раздела «product\_table\_range\_refresh\_current»](#product_table_range_refresh_current) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | ---------------------------------------------------------------------------- | ----- | | operation | `"product_table_range_refresh_current"` | да | | `subsetId` | string | да | | `queryStableId` | string | да | | action | `"run"` \| “start” \| “poll” \| “commit” \| “cancel” | нет | | generation | number | нет | | `requestedBackend` | [ComputeBackendKind](/reference/f1/types-common/#computebackendkind) \| null | нет | **Ответ при успехе · product\_table\_range\_refresh\_current** | Поле | Тип TypeScript | Обяз. | | --------- | --------------------------------------- | ----- | | operation | `"product_table_range_refresh_current"` | да | **Минимальный JSON-шаблон**
```json
{
"operation": "product_table_range_refresh_current",
"subsetId": "",
"queryStableId": "",
"requestedBackend": "native-desktop"
}
```
# Power Query: доверие и приватность
> Уровни приватности источников, решения о доверии и настройки подключений. Операций на странице: 6.
Уровни приватности источников, решения о доверии и настройки подключений. Термины — в [глоссарии](/start/glossary/). **Операции на этой странице — 6** * [`pq-data-source-settings-apply`](#pq-data-source-settings-apply) * [`pq-data-source-settings-list`](#pq-data-source-settings-list) * [`pq-privacy-level-list`](#pq-privacy-level-list) * [`pq-privacy-level-reset`](#pq-privacy-level-reset) * [`pq-privacy-level-set`](#pq-privacy-level-set) * [`source_trust_decision`](#source_trust_decision) ## pq-data-source-settings-apply [Заголовок раздела «pq-data-source-settings-apply»](#pq-data-source-settings-apply) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------- | ------------------------------------------------------------------ | ----- | | operation | “pq-data-source-settings-apply” | да | | `subsetId` | string | да | | action | “change-source-path” \| “clear-permissions” \| “set-privacy-level” | да | | `scopeId` | string | да | | `newPath` | string | нет | | level | string | нет | **Ответ при успехе · pq-data-source-settings-apply** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------------------------------------------------------------------ | ----- | | operation | “pq-data-source-settings-apply” | да | | outcome | [PqDataSourceSettingsOutcome](/reference/f1/types-powerquery/#pqdatasourcesettingsoutcome) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-data-source-settings-apply",
"subsetId": "",
"action": "change-source-path",
"scopeId": ""
}
```
## pq-data-source-settings-list [Заголовок раздела «pq-data-source-settings-list»](#pq-data-source-settings-list) В опубликованный выпуск пока не вошла Операция описана контрактом, но ядро последнего выпуска её не принимает: на такой запрос придёт отказ с перечнем известных ему операций. Что входит в выпуск, а что пока только в контракт — в [обзоре справочника](/reference/f1/overview/). **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------- | ------------------------------ | ----- | | operation | “pq-data-source-settings-list” | да | | `subsetId` | string | да | **Ответ при успехе · pq-data-source-settings-list** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------------------------------------------------- | ----- | | operation | “pq-data-source-settings-list” | да | | sources | [PqDataSourceEntry](/reference/f1/types-powerquery/#pqdatasourceentry)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-data-source-settings-list",
"subsetId": ""
}
```
## pq-privacy-level-list [Заголовок раздела «pq-privacy-level-list»](#pq-privacy-level-list) **Запрос** | Поле | Тип TypeScript | Обяз. | | ------------------ | --------------------------------------------------------------------------------------- | ----- | | operation | `"pq-privacy-level-list"` | да | | `userStore` | [PqPrivacyLevelAssignment](/reference/f1/types-powerquery/#pqprivacylevelassignment)\[] | нет | | `workbookDeclared` | [PqPrivacyLevelAssignment](/reference/f1/types-powerquery/#pqprivacylevelassignment)\[] | нет | | `knownScopes` | [PqSourceScopeWire](/reference/f1/types-powerquery/#pqsourcescopewire)\[] | нет | | `subsetId` | string | нет | **Ответ при успехе · pq-privacy-level-list** | Поле | Тип TypeScript | Обяз. | | --------- | ------------------------------------------------------------------------------------- | ----- | | operation | `"pq-privacy-level-list"` | да | | entries | [PqPrivacyLevelListEntry](/reference/f1/types-powerquery/#pqprivacylevellistentry)\[] | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-privacy-level-list",
"requestedBackend": "native-desktop"
}
```
## pq-privacy-level-reset [Заголовок раздела «pq-privacy-level-reset»](#pq-privacy-level-reset) **Запрос** | Поле | Тип TypeScript | Обяз. | | ---------------- | -------------------------- | ----- | | operation | `"pq-privacy-level-reset"` | да | | `canonicalScope` | string | да | **Ответ при успехе · pq-privacy-level-reset** | Поле | Тип TypeScript | Обяз. | | --------- | ---------------------------------------------------------------------------------------- | ----- | | operation | `"pq-privacy-level-reset"` | да | | outcome | [PqPrivacyLevelWriteOutcome](/reference/f1/types-powerquery/#pqprivacylevelwriteoutcome) | да | **Минимальный JSON-шаблон**
```json
{
"operation": "pq-privacy-level-reset",
"canonicalScope": "