Platform overview: Продуктовая картина, поставка под своим брендом, безопасность, пилот. # Что даёт встраивание, чего не даёт Office > Восемь измеримых осей, по которым встраиваемая платформа даёт больше готового редактора, и темы, где превосходство нельзя утверждать без тестов. Преимущество имеет смысл там, где его можно измерить. Ниже — оси, по которым встраиваемая платформа даёт больше готового редактора, и то, чем каждое утверждение проверяется на ваших документах. | Ось | Почему это важно | Чем проверяется | | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Встраивание как основа | На выходе ваш продукт, а не редактор в чужом окружении. | Взять [комплект для оценки](/start/glossary/) (Evaluation Kit) и встроить настоящий документ в своё приложение за отведённое время. | | Один владелец смысла — ядро на Rust | Нет второго движка формул, записи файлов и истории на JavaScript. | Проверить, что одна и та же операция даёт одинаковый результат в настольном приложении и в браузере. У таблиц это сравнение настольной сборки с WebAssembly, у документов — с ядром, которое считает на сервере. | | Отказ до изменения | Неподдержанная операция не портит файл. | Проверить четыре случая — устаревшая ревизия, защита листа или документа, режим только для чтения, испорченный файл — и убедиться, что не изменился ни один байт. | | Сохранность как обязательство | Важно для Power Query, макросов, незнакомой разметки, диаграмм и связей между частями файла. | Сравнить содержимое файла до и после и открыть его заново в новом процессе. | | Контракт, готовый к агентам | Работа агента становится управляемой и проверяемой. | Пройти сценарий «показать предварительный результат → подтвердить → применить → откатить» и убедиться, что каждый шаг записан. | | Один слой на настольную систему и на веб | И работа без сети, и браузер обслуживаются одним ядром. Путь в браузер у продуктов разный: таблицы идут туда сборкой ядра под WebAssembly, документы — ядром на сервере, по процессу на пользователя; сборки под WebAssembly у A4 нет, и этому пути она не нужна. | Сравнить смысл одних и тех же операций в выбранной паре сред выполнения — [среды выполнения F1](/f1/environments/), [редактор A4 в браузере](/a4/webhost/). | | Жизненный цикл и закрытие | Встроенное приложение работает долго, без утечек и зависших процессов. | Многократно открыть и закрыть редактор и убедиться, что не осталось ни слушателей, ни фоновых потоков, ни процессов. | | Матрица возможностей как часть договора | Снижает риск ложных обещаний и спора уже после внедрения. | Согласованная матрица: форматы × среда выполнения × операции × ограничения. | ## Где не надо обещать превосходство без тестов [Заголовок раздела «Где не надо обещать превосходство без тестов»](#где-не-надо-обещать-превосходство-без-тестов) * Общее число возможностей интерфейса по сравнению со зрелыми офисными пакетами. * Полная совместимость с Word и Excel во всех редких случаях. * Превосходство по скорости над другими пакетами без одинакового набора документов и одинаковой методики замера. * Полная поддержка VBA и языка M без отдельной матрицы совместимости. * Совместная работа нескольких пользователей в реальном времени и готовый серверный сервис, если они не вошли в профиль возможностей. ## Дальше [Заголовок раздела «Дальше»](#дальше) * Что именно продукт делает с файлом — [карта возможностей A4](/a4/capabilities/) и [карта рядом с Excel](/f1/atlas/). * Как устроена проверка на ваших документах — [Пилот и приёмка](/platform/pilot/). * Чего пока нет и чем это закрывается — [Риски и честные границы](/platform/risks/). # VBA, Power Query и агенты > Автоматизация без потери контроля: поддержанное подмножество вместо общих обещаний, лестница Power Query и работа агента как транзакция. ## VBA [Заголовок раздела «VBA»](#vba) Полная совместимость с VBA не обещается. Работает это так: поддержанное подмножество выполняется, а всё остальное отклоняется с понятной причиной — до того, как документ изменится. Для A4 правило строже: выполнение макросов не обещается вовсе, а чтение их содержимого отделено от запуска. | Подход | Что обещать | Чего не обещать | | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | | F1 | Совместимость с VBA как отдельная возможность поверх контракта операций; неподдержанные конструкции языка, обращения к приложению и выходы за границы безопасности отклоняются с указанием причины. | Полную совместимость с VBA из Excel — без согласованного набора книг, требований безопасности и матрицы поддержанных вызовов. | | A4 | Чтение содержимого макросов без запуска; события бизнес-логики через публичный набор событий и точки применения политик. | Запуск макросов и среду, совместимую с Office.js, — без отдельного соглашения. | | Корпоративная автоматизация | Порядок «осмотреть → предложить → подтвердить → применить», ограничения по ролям, повторный вызов с тем же идентификатором не выполняется дважды, журнал действий. | Агента, который щёлкает по интерфейсу или правит файл напрямую. | ## Power Query и книги с данными [Заголовок раздела «Power Query и книги с данными»](#power-query-и-книги-с-данными) Power Query — сильная сторона для корпоративного внедрения, но говорить о ней нужно ступенями, а не одним словом «поддерживаем»: распознать и сохранить, показать структуру, обновлять согласованные источники, создавать запросы. Операции контракта есть для каждой ступени — их 61, они собраны в [справочнике](/reference/f1/pq-queries/). Это не то же самое, что полное совпадение с Excel: работает объявленное подмножество, остальное отклоняется с указанием причины. * **Распознать.** Найти в книге запросы, подключения, модель данных и то, что не поддержано. * **Сохранить.** Не удалять при записи то, чем операция не распоряжается. * **Показать.** Раскрыть структуру запросов, не выдавая учётных данных и не отдавая книгу целиком. * **Обновлять.** Выполнять согласованные источники и преобразования — в границах объявленных возможностей и заданных правил. * **Создавать.** Заводить и менять запросы и подключения в подтверждённом подмножестве. ## Агенты [Заголовок раздела «Агенты»](#агенты) Агент должен работать не щелчками и не правкой файла, а через тот же контракт, что и интерфейс. Тогда у него есть устойчивые идентификаторы объектов, проверка ревизии перед изменением, точки применения политик, предварительный показ результата и возможность подтвердить или откатить. ## Что уже работает [Заголовок раздела «Что уже работает»](#что-уже-работает) * Макросы и VBA в F1 — [раздел справочника](/reference/f1/vba/). * Power Query: [запросы и шаги](/reference/f1/pq-queries/), [коннекторы](/reference/f1/pq-connectors/), [доверие и приватность](/reference/f1/pq-trust/). * Маршрут агента у документов сегодня — те же 28 команд сеанса, что и у человека: [команды сеанса](/reference/a4/session-protocol/). Отдельного интерфейса для агента нет, он [только предлагается](/a4/host-api/). # Коммерческая упаковка > Коммерческая модель: единицы поставки, лицензирование и уровни партнёрства. Поставка строится вокруг права встраивания и управляемой совместимости, а не передачи исходного кода. Вы получаете поддерживаемую среду выполнения с обязательствами по совместимости и обновлениям, а не ответвление, которое дальше придётся сопровождать самим. | Компонент сделки | Описание | Почему это важно | | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | | Право на встраивание | Право встраивать и распространять FastOffice под вашим брендом. | Юридическое основание для поставки под своим именем. | | Доступ к набору разработчика | Собранные пакеты, сгенерированные типы, публичный интерфейс, примеры и документация. | Интеграция идёт через устойчивый контракт, а не через внутренние детали. | | Профиль возможностей | Именованный набор функций, платформ, форматов, способов встраивания и ограничений. | Именно он, а не общие слова, определяет коммерческое обещание. | | Пакет интеграции | Совместная разработка адаптера к вашему приложению, работы с хранилищем и сценария приёмки. | Снижает риск провала пилота. | | Модули автоматизации | Интерфейс для агентов, совместимость с VBA, Power Query и подключения к данным — каждый со своим профилем. | Чтобы базовая поставка редактора не смешивалась с тем, что требует отдельной проверки. | | Поддержка версии и обязательства | Срок поддержки, исправления безопасности, периодичность обновлений, срок совместимости. | Корпоративное внедрение зависит от предсказуемости этих сроков. | | Пакет безопасности | Состав компонентов поставки, сроки реакции на уязвимости, порядок их раскрытия, подписи файлов, описание выпусков. Что из подписей есть в текущем выпуске, а чего ещё нет, перечислено в [рисках](/platform/risks/). | Закрывает требования службы безопасности и закупок. | | Программа качества | Набор документов для регрессии, образцы файлов, пороги по скорости и памяти, порядок эскалации. | Снижает риск споров уже после внедрения. | ## Продуктовые уровни [Заголовок раздела «Продуктовые уровни»](#продуктовые-уровни) | Уровень | Что входит | Для кого | | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | | Evaluation Kit | Среда выполнения, пример приложения-хоста, несколько образцов документов, быстрый старт и список известных ограничений. | Техническому директору или архитектору для первой проверки. | | Ограниченный пилот | Одна платформа, один настоящий рабочий сценарий, суженный профиль возможностей. | Проверить, подходит ли продукт и достаточна ли совместимость. | | Набор для встраивания | Публичный интерфейс, сгенерированные типы, оболочка под ваш бренд, адаптеры и документация. У документов это работающий сегодня контракт сеанса и поверхность; у таблиц публичный набор ещё оформляется, и его состав фиксируется договором — [что в нём есть на сегодня](/f1/embedding-api/). | Рабочая интеграция в продукт. | | Корпоративный профиль | Пакет безопасности, поддержка версии и обязательства, канал обновлений, приёмка перед промышленной эксплуатацией. | Корпоративным заказчикам и тем, кто разворачивает продукт в своём контуре. | | Расширенная автоматизация | Агенты, поддержанное подмножество VBA, Power Query и подключения к данным, точки применения политик. | Сложные переносы данных, системы документооборота, учёта и планирования ресурсов, аналитические процессы. | ## Что дальше [Заголовок раздела «Что дальше»](#что-дальше) * Как проходит проверка до договора — [Пилот и приёмка](/platform/pilot/). * Что входит в поставку — [Состав поставки](/platform/delivery/). * Начать с малого: [заявка на ранний доступ](/start/beta/) — три поля. # Состав поставки > Что именно вы получаете: Surface Host, движки F1, поверхность под ваш бренд, публичный интерфейс, адаптеры, матрица возможностей, Evaluation Kit и пакет для эксплуатации. Поставляются не «исходники редактора», а набор для разработчика вместе со средой выполнения: контракт, примеры, матрица возможностей и приёмочные сценарии. Ниже — что входит в этот набор. | Артефакт поставки | Содержание | Что это вам даёт | | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | | Surface Host для A4 | Локальная среда выполнения на Rust, встроенные веб-файлы, HTTP и WebSocket только на локальном интерфейсе, сеанс документа. | Встроить редактор DOCX в своё окно WebView, не завися от Electron. | | Веб-хост A4 | Менеджер кабинок и его проверки: на каждого пользователя поднимается свой процесс ядра со своим документом. В установщик настольного приложения не входит и запрашивается отдельно. | Открыть редактор DOCX в браузере внутри вашего веб-продукта — [как это устроено](/a4/webhost/). | | Пакеты движка F1 | Сборки для настольного приложения и для WebAssembly, адаптер контракта операций, разрежённое состояние книги и сеанса. Это те самые пакеты `@f1/*`, из которых собраны [примеры встраивания](/f1/examples/); в открытый реестр npm они не публикуются. | Получить табличную семантику, формулы, историю, импорт и сохранение — и выбирать, где выполняется ядро. | | Поверхность под ваш бренд | Готовый интерфейс: полотно документа или табличная сетка, диалоги, команды, тема и язык. | Быстро получить работающий редактор внутри своего продукта. | | Публичный интерфейс | Устойчивые методы открытия, выполнения, подписки на события, сохранения и закрытия; типы, ошибки и объявленные возможности. | Интегрироваться, не завися от внутренних имён в коде. | | Адаптеры к приложению | Примеры для WebView2 и WKWebView, для браузера с WebAssembly, для локального обмена строками JSON, для работы с хранилищем. | Сократить путь от первой пробы до пилота. | | Матрица возможностей | Формат × среда выполнения × операция × чтение, правка, сохранение и сохранность разметки × ограничения. Часть её открыта уже сейчас: [тринадцать табличных форматов](/reference/f1/formats/) и [что можно с каждым файлом в документах](/a4/overview/#%D1%81-%D0%BA%D0%B0%D0%BA%D0%B8%D0%BC%D0%B8-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%D0%BC%D0%B8-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82). | Превратить «поддерживаем формат» в проверяемое обязательство. | | Evaluation Kit | Примеры, образцы документов, сквозной путь на настоящем файле, ожидаемый результат каждого шага, заметки о журналировании и безопасности. | Ваш инженер открывает свой документ за 30–60 минут или собирает технический прототип. | | Спецификация архитектуры | Подробный документ для архитекторов: протокол, жизненный цикл сеанса, безопасность, версионирование, развёртывание и приёмка. Выдаётся вместе с комплектом для оценки. | Спроектировать интеграцию до того, как написан первый вызов — [с чего начать пилот](/a4/handoff/). | | Пакет для эксплуатации | Подписи файлов поставки, состав компонентов, порядок работы с уязвимостями и сроки реакции, заметки о переходе между версиями, правила выпуска и обновления. Что из подписей есть в текущем выпуске, а что ещё нет, перечислено в [рисках](/platform/risks/). | Довести среду выполнения до состояния, в котором её принимает корпоративная служба эксплуатации. | Что в поставку не входит Исходный код и неограниченный доступ ко всем внутренним командам: набор возможностей определяется выбранным профилем. Поставляется именованный публичный набор для разработчика — с зафиксированным жизненным циклом, сроком поддержки, длительной поддержкой версии, требованиями безопасности и приёмочными сценариями. ## С чего начать проверку [Заголовок раздела «С чего начать проверку»](#с-чего-начать-проверку) * [Установка A4](/a4/install/) и [быстрый старт](/a4/quickstart/). * [Установка F1](/f1/install/) и [быстрый старт](/f1/quickstart/). # Режимы встраивания > Семь способов подключить платформу — от готовой поверхности до сервера в своём контуре: когда выбирать каждый и что обязательно в любом из них. Платформа поставляется уровнями: можно начать с готовой поверхности, а потом углубить интеграцию — до работы без интерфейса, до отдельного процесса или до WebAssembly. Способ передачи данных при этом не меняет смысла: команду определяет контракт, а не то, пришла она по WebSocket, строкой JSON или через WebAssembly. | Режим | Когда выбирать | Как устроено | Готовность и границы | | -------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | A4 внутри настольного приложения | Нужен полноценный редактор DOCX внутри вашей программы. | Ваше приложение плюс Surface Host на каждый документ; HTTP и WebSocket только на локальном интерфейсе; окно WebView2 или WKWebView. | Проверено на macOS; приёмку на Windows нужно проводить отдельно. | | A4 в браузере | Ваш продукт живёт в вебе, и пользователю не нужно ничего устанавливать. | Редактор открывается в `iframe` на вашем домене, а документ считает ядро на сервере — по процессу на пользователя. См. [Редактор в браузере](/a4/webhost/). | Работает; совместного редактирования пока нет — второму открывается копия. | | A4 без интерфейса | Пакетная обработка, службы и агенты, которым экран не нужен. | Строки JSON через стандартный ввод-вывод или WebSocket с пропуском. | Работает как протокол сеанса; какая часть станет публичной, оговаривается отдельно. | | F1 в браузере | Встраивание в веб-продукт, когда данные не должны покидать браузер. | Оболочка F1 → фоновый поток → ядро в WebAssembly. | Ядро подбирает сборку под браузер: обычная работает везде, сборка с векторными вычислениями (SIMD) — где они есть, многопоточная — только если браузер изолирован по источнику и SIMD при этом доступен. Изоляция включается двумя заголовками сайта, COOP и COEP; для SIMD они не нужны. Путь на случай, когда многопоточности не будет, предусмотрите заранее. | | F1 отдельным процессом | Работа без сети, локальные файлы, полная скорость. | Ваше приложение → дочерний процесс → строки JSON → ядро на Rust. | Нужно следить за процессом, доставлять исполняемый файл с обновлениями и корректно его закрывать. | | Смешанный режим | Веб-интерфейс, но с доступом к файлам и правилам системы. | Веб-оболочка → адаптер на стороне приложения → ядро на Rust. | Нужен защищённый канал между ними и продуманный жизненный цикл окон. | | Сервер в своём контуре | Централизованная обработка, агенты, конвейеры. | Интерфейс с проверкой доступа и изолированные сеансы ядра. | Отдельная промышленная архитектура: квоты, изоляция и средства эксплуатации. | ## Что обязательно в любом режиме [Заголовок раздела «Что обязательно в любом режиме»](#что-обязательно-в-любом-режиме) * Один открытый документ на процесс — самая простая и безопасная изоляция для пилота. * Приложение читает приветственную строку процессора до того, как покажет интерфейс или отправит первую команду. * Пропуски, адреса, учётные данные, текст документа и его исходная разметка по умолчанию в журналы не попадают. * Закрытие освобождает всё: слушателей, сокеты, фоновые потоки, файлы и дочерние процессы. * Неизвестная команда или возможность не выполняется молча: работа останавливается либо приходит отказ с причиной. Смотреть при этом нужно не только на признак успеха в конверте: у правки документа исход назван отдельным полем ответа — [как читать ответ](/a4/envelope/). ## Режимы в продуктах [Заголовок раздела «Режимы в продуктах»](#режимы-в-продуктах) * A4: [платформы и размещение](/a4/deployment/). * F1: [ядро в браузере](/f1/wasm/), [отдельный процесс ядра](/f1/native/), [процессор на сервере](/f1/server/), [телефон и планшет](/f1/mobile/). # Что обещано и что нет > За общими словами вроде «полная совместимость» и «поставка под своим брендом»: что обещано и проверяемо, а что фиксируется отдельно. И вопросы, на которые стоит ответить до начала интеграции. Об офисных движках принято говорить общими словами. Ниже — что стоит за каждой такой фразой в случае FastOffice: слева привычная общая формулировка, справа то, что действительно обещано и проверяемо. | Общая формулировка | Что обещано на самом деле | | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Российская замена Word и Excel. | Встраиваемый офисный процессор для вашего продукта: правка DOCX и XLSX, сохранение с проверкой повторного открытия, автоматизация и интерфейс под вашим брендом. | | Полная совместимость с Microsoft Office. | Совпадение поведения на согласованном наборе ваших документов, по перечисленным возможностям и в границах объявленной матрицы. | | Поддерживаем XLSX и DOCX. | Для каждого формата и каждой операции записано отдельно: читается, правится, сохраняется, сохраняется ли неподдержанная разметка. Это уже открыто: [тринадцать табличных форматов](/reference/f1/formats/) и [что можно с каждым файлом в документах](/a4/overview/#%D1%81-%D0%BA%D0%B0%D0%BA%D0%B8%D0%BC%D0%B8-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%D0%BC%D0%B8-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82). | | У нас есть VBA. | Поддержано согласованное подмножество: с правилами запуска, предварительным показом того, что произойдёт, журналом и понятными отказами вместо тихих сбоев. | | У нас есть Power Query. | Запросы распознаются и сохраняются без потерь; какие из них выполняются, оговаривается отдельно. | | Мы быстрее всех. | Вместо лозунга — замеры на ваших документах: типичное и худшее время, память, объём загружаемых данных, сохранение и повторное открытие. | | Поставка под своим брендом. | Вам принадлежат оболочка, бренд, вход, хранилище и процессы; за смысл документа и таблицы отвечает FastOffice. | | Агент редактирует документ. | Агент работает через тот же контракт операций и историю, что и человек: осмотреть, спланировать, показать предварительный результат, получить подтверждение, применить или откатить. | ## Коротко о платформе [Заголовок раздела «Коротко о платформе»](#коротко-о-платформе) ## Вопросы, на которые стоит ответить до старта [Заголовок раздела «Вопросы, на которые стоит ответить до старта»](#вопросы-на-которые-стоит-ответить-до-старта) * Какие операционные системы, какая технология вашего приложения и какой способ встраивания нужны на первом этапе? * Какие три-пять ваших настоящих документов решают, подходит вам продукт или нет? * Какие десять действий пользователя должны работать без Microsoft Office? * Что из этого критично: примечания, запись исправлений, таблицы, поля, колонтитулы, формулы, диаграммы, сводные таблицы, Power Query, VBA? * Где хранятся документы: на компьютере, в вашем контуре, в браузере, в системе документооборота или учёта, в облаке? * Какие требования безопасности: где физически лежат данные, контроль утечек, журналирование, состав поставки, подписи, аудит? * Нужны ли агенты и какие операции им разрешено читать, предлагать и применять? ## Дальше [Заголовок раздела «Дальше»](#дальше) * Проверить обещанное на своих файлах — [Пилот и приёмка](/platform/pilot/). * Что из этого закреплено договором — [Коммерческая упаковка](/platform/commercial/). * Что пока не закрыто — [Риски и честные границы](/platform/risks/). * Начать с малого — [заявка на ранний доступ](/start/beta/). # Функциональный паритет с Word и Excel > Как корректно формулировать паритет: семь уровней — от повседневных сценариев до эксплуатации — и способы доказать каждый. Полного паритета с Word и Excel не бывает ни у кого, кроме самого Microsoft Office, и обещание «функциональный паритет» без уточнений ничего не значит. Проверяемым его делает разбор по уровням: сценарии, форматы, операции и сохранение неподдерживаемых частей. Ниже — семь таких уровней и то, чем каждый подтверждается. | Уровень паритета | Что означает | Как доказывать | | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Паритет по сценариям | Пользователь выполняет свои ежедневные действия, не переходя в Microsoft Office. | Пройти согласованный сценарий приёмки внутри вашего приложения. | | Открываемость форматов | DOCX, XLSX, XLSB, ODS и CSV открываются в выбранной среде выполнения. Открыть — не то же, что править и сохранить: это разведено по строкам и там, и там — [матрица табличных форматов](/reference/f1/formats/), [что можно с каждым файлом в документах](/a4/overview/#%D1%81-%D0%BA%D0%B0%D0%BA%D0%B8%D0%BC%D0%B8-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%D0%BC%D0%B8-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82). | Открыть весь согласованный набор документов и разобрать каждое предупреждение и отказ. | | Коридор правки | Согласованные возможности работают правильно: текст, таблицы, формулы, форматирование, примечания, листы, диаграммы. | Сравнить смысл документа до и после правки по каждой возможности из списка. | | Паритет сохранения | Сохранённый файл открывается заново без потери смысла и структуры. | Открыть заново в новом процессе, лучше дважды, и отдельно проверить круг «сохранили у нас — открыли в Word или Excel». | | Сохранность неподдержанного | То, что редактор не понимает, сохраняется без изменений или явно помечается. | Сравнить содержимое файла до и после, проверив связи между частями и их типы. | | Паритет автоматизации | Макросы, запросы и агенты работают в поддержанном подмножестве, остальное распознаётся и объясняется. | Матрица возможностей, явные отказы вместо тихих ошибок и журнал действий. | | Паритет эксплуатации | Работа без сети, установка в своём контуре, безопасность, обновления и жизненный цикл отвечают требованиям корпоративного развёртывания. | Проверочный список безопасности, полное освобождение ресурсов при закрытии, состав поставки и подписи — что из них есть сегодня, перечислено в [рисках](/platform/risks/). | ## Почему это сильнее обычного «поддерживаем XLSX/DOCX» [Заголовок раздела «Почему это сильнее обычного «поддерживаем XLSX/DOCX»»](#почему-это-сильнее-обычного-поддерживаем-xlsxdocx) * Заказчику важен не список расширений файлов, а то, что после сохранения ничего не потерялось. * При переходе решают частности: запросы к данным, макросы, ссылки на другие книги, диаграммы, сводные таблицы, стили, примечания, исправления, колонтитулы и поля. * Тому, кто встраивает редактор в свой продукт, важен не только внешний вид: жизненный цикл, расход памяти, полное освобождение ресурсов при закрытии, совместимость обновлений и то, что за работой можно наблюдать. * Матрица возможностей превращает спор в проверяемый договор: что читается, что правится, что сохраняется, что сохраняется как есть без разбора и что отклоняется. ## Чем измерять [Заголовок раздела «Чем измерять»](#чем-измерять) * 28 команд документного сеанса A4 — [справочник Session Protocol](/reference/a4/session-protocol/). * 203 операции F1 — [справочник Compute Contract](/reference/f1/overview/). * Что доступно сегодня, а что входит в пилот — [Готовность и границы A4](/a4/status/) и [сильные стороны и компромиссы F1](/f1/tradeoffs/). # Пилот и приёмка > Как доказать обещание: слои приёмки для A4 и F1, план пилота по этапам и то, по чему решают — берём или нет. Пилот должен доказывать не демонстрационную презентацию, а реальное встраивание, сохранение и повторное открытие документов. Это должен быть инженерный опыт: взять [комплект для оценки](/start/glossary/) (Evaluation Kit), открыть свой документ, выполнить критичные действия и увидеть проверяемый результат. | Что проверяем | A4 | F1 | | --------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | | Открытие | DOCX открывается внутри вашего WebView, отдельного окна A4 не появляется. | Реальная книга открывается из байтов или URI, которыми владеет хост; объявленные возможности видны. | | Правка | Пользователь выполняет согласованные правки, хост получает признак несохранённых изменений. | Правка ячейки, диапазона или формулы создаёт одну ревизию и одну запись в истории. | | Сохранение | Сохранение в ядре завершено, хост получает событие saved, путь, байты и снятый признак изменений. | Байты или поток возвращаются хосту; право на сохранение объявлено явно. | | Повторное открытие | Сохранённый DOCX открывается заново без потери смысла документа. | Два открытия с холодного старта сохраняют семантику и целостность пакета. | | События | `ready`, `dirty`, `saved`, `error`, `unmounted`; события поставки под вашей маркой — по договорённости. | `ready`, `opened`, `dirty`, `change`, `selection`, `save-requested`, `closed`, `error` — имена из контракта встраивания, который ещё фиксируется. | | Безопасность | Пропуск не утёк, порт слушается только на локальном адресе, содержимое документа не попадает в журналы. | Учётные данные и проекции не утекают; политика проверяется до открытия, сохранения и сетевого вызова. | | Освобождение ресурсов | После размонтирования и завершения не остаётся слушателей, сокетов и дочерних процессов. | После закрытия не остаётся ни воркеров, ни процессов, ни слушателей, ни осиротевших задач. | | Производительность | Запуск, открытие, правка, сохранение и память на согласованных классах DOCX. | Открытие, правка, пересчёт, сохранение, память и бюджет кадра на корпусе книг. | ## План пилота: от пяти до девяти недель [Заголовок раздела «План пилота: от пяти до девяти недель»](#план-пилота-от-пяти-до-девяти-недель) Сроки этапов ниже складываются в пять недель при удачном ходе и в девять, если корпус документов большой, а маршрутов продукта несколько. Точную вилку называем после обследования — это его первый результат. | Этап | Длительность | Результат | | ---------------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Обследование | 2–3 рабочих дня | Выбор платформы и серверной части, ключевые сценарии, корпус документов, требования безопасности, ответственный со стороны бизнеса. | | Технический прототип | 1–2 недели | Открытие, правка, сохранение и повторное открытие реального DOCX или XLSX внутри вашего контейнера. | | OEM-пилот | 3–6 недель | Оформление под ваш бренд, адаптер хранилища, единый вход и аудит, события, выбранные маршруты продукта, замеры производительности. | | Решение: берём или нет | 1 встреча | Итоговый перечень возможностей, список работ до промышленной эксплуатации, коммерческая оценка, предполагаемые обязательства по доступности и сроку поддержки версии. | ## Что нужно к пилоту [Заголовок раздела «Что нужно к пилоту»](#что-нужно-к-пилоту) * Что дать своим специалистам и в каком порядке это читать — [С чего начать пилот](/a4/handoff/). * Перечень проверок перед пилотом — [контрольный список F1](/f1/checklist/) и [контрольный список A4](/a4/diagnostics/). # Свой офис вместо Microsoft Office > Редакторы DOCX и XLSX внутри вашего продукта и вашего контура, под вашим брендом: что это даёт компании, что уже работает и как это проверить за час. Microsoft Office ушёл из России, но документы никуда не делись: договоры, сметы, акты и отчёты по-прежнему живут в DOCX и XLSX. Компании остались с выбором из плохих вариантов — держать нелегальные копии, гонять документы в чужое облако или пересаживать людей на редактор, который нельзя встроить в собственные процессы. **FastOffice — офисные движки, которые встраиваются в ваш продукт.** Не ещё один офисный пакет рядом с вашим, а документный и табличный процессор внутри него: под вашим названием, в вашем контуре, с вашими правами доступа и вашим хранилищем. ## Что вы получаете вместо чужого офиса [Заголовок раздела «Что вы получаете вместо чужого офиса»](#что-вы-получаете-вместо-чужого-офиса) | Сегодня, с чужим офисом | С FastOffice | | ----------------------------------------------------------- | -------------------------------------------------------------------------------- | | Документ открывается во внешнем приложении или чужом облаке | Документ открывается внутри вашего продукта, файлы не покидают ваш контур | | Редактор носит чужое имя и чужой интерфейс | Редактор носит ваше имя, ваши цвета и вашу навигацию | | Права и аудит живут отдельно от документа | Права проверяются вашей системой, каждое действие проходит через контракт | | «Поддерживает DOCX» — обещание на словах | Матрица возможностей: что читается, что правится, что сохраняется без потерь | | Автоматизация — макросы, о которых никто не знает | Агент работает через тот же контракт: предпросмотр, подтверждение, откат, журнал | | Обновление поставщика может сломать вашу интеграцию | Версионированный контракт и срок совместимости, зафиксированные договором | ## Это можно потрогать прямо сейчас [Заголовок раздела «Это можно потрогать прямо сейчас»](#это-можно-потрогать-прямо-сейчас) Не презентация и не запись экрана, а работающая программа: оба редактора открываются прямо на сайте, в браузере, без установки. Если площадка в этот момент не поднята, на месте рамки будет снимок — и страница скажет об этом прямо, а не покажет картинку вместо редактора молча. Редактор документов A4 Договор на две страницы: заголовки, списки, таблица со сроками и суммой. Откройте, поправьте абзац — документ живёт в вашей собственной кабинке. [Открыть живой пример →](/a4/demo/) Табличный процессор F1 Смета на оснащение офиса с формулами. Измените количество или цену — суммы, доли и оба итога пересчитает ядро, а не разметка страницы. [Открыть живой пример →](/f1/demo/) Рядом — [двадцать три примера встраивания](/f1/examples/): от минимального листа до книги в миллион строк, совместной работы и связей между книгами. ## Почему это не обёртка вокруг чужого редактора [Заголовок раздела «Почему это не обёртка вокруг чужого редактора»](#почему-это-не-обёртка-вокруг-чужого-редактора) Смыслом документа владеет собственное ядро на Rust — оно разбирает файл, считает вёрстку и формулы, ведёт историю и записывает результат обратно. Интерфейс только показывает и просит: своей копии документа у него нет. * **Проверяемая граница.** Наружу выведено 28 команд документного сеанса и 203 операции табличного контракта — из них 185 принимает ядро последнего выпуска, остальные описаны, но в сборку ещё не вошли. Не «богатый API» на словах: каждый вызов описан в [справочнике](/reference/a4/overview/), справочник сверяется с кодом при каждом изменении документации, а [что именно есть в выпуске](/reference/f1/overview/) сказано отдельно. * **Тринадцать табличных форматов**, включая XLSX, XLSB, XLSM, ODS и CSV, — с [матрицей](/reference/f1/formats/), где для каждого сказано, что можно открыть, что править и куда сохранить. Документная часть ведёт DOCX и переводит документ в PDF, ODT, RTF, HTML, текст, EPUB и FB2 — и обратно, кроме PDF: [что с каким файлом можно](/a4/overview/#%D1%81-%D0%BA%D0%B0%D0%BA%D0%B8%D0%BC%D0%B8-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%D0%BC%D0%B8-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82). * **Отказ вместо тихой порчи.** Неподдержанная операция получает явный отказ с причиной **до** того, как файл изменится. Наполовину записанного документа не бывает: файл публикуется одним неделимым действием, а контрольная точка ещё и откажется затирать правку, сделанную кем-то другим. * **Сохранность непонятого.** Части файла, которые редактор не разбирает, переносятся в новый файл как есть, а не пропадают при сохранении. * **Скорость видно, а не обещано.** Лист на [миллион строк](/f1/examples/stress/) открыт прямо на сайте: прокрутите его, и он сам покажет цену кадра — типичную, худшую и уложился ли в бюджет. Замер идёт на вашей машине, а не на нашей презентации. * **Работает без сети и без облака.** Настольное приложение, окно внутри вашей программы, браузер, сервер в вашем контуре — один и тот же контракт во всех средах. Телефон в этот ряд пока не входит, и по продуктам по-разному: для документов сквозной путь на Android пройден — открыть, изменить, сохранить, — но набор операций в мобильном ядре узкий, а на iOS работоспособность на устройствах ещё не заявляется ([где размещается A4](/a4/deployment/)). Для таблиц мобильной поставки нет ни на одной из систем: разобраны четыре пути и то, чего каждому не хватает ([телефон и планшет](/f1/mobile/)). ## С чем мы себя сравниваем [Заголовок раздела «С чем мы себя сравниваем»](#с-чем-мы-себя-сравниваем) С Word и Excel — больше не с чем. Это они стоят у ваших людей на столах, в них написаны ваши договоры и сметы, и именно с ними будут сравнивать результат. Но сравнение идёт не по числу кнопок. Office — законченный продукт на рабочее место; его покупают, чтобы человек открыл файл. FastOffice покупают, чтобы **офис появился внутри вашего продукта**: не приложение рядом, а движок внутри, под вашим именем. Что именно продукт делает с файлом, разобрано по задачам: [карта возможностей A4](/a4/capabilities/) для документов и [карта рядом с Excel](/f1/atlas/) для таблиц. Что означает паритет и чем он подтверждается — [Функциональный паритет](/platform/parity/). ## Как это проверяется у вас [Заголовок раздела «Как это проверяется у вас»](#как-это-проверяется-у-вас) Мы не просим верить на слово. Проверка идёт на ваших файлах и в вашем контуре, по шагам, которые известны заранее: 15 минут Ядро отвечает, ваш DOCX открыт, абзац изменён через контракт и сохранён отдельным файлом. Пошагово — в [быстром старте](/a4/quickstart/). 30 минут Тот же документ, но уже внутри вашего приложения: редактор в вашем окне, правка, сохранение, события. Порядок — в [С чего начать пилот](/a4/handoff/). 5–9 недель Пилот целиком: ваш бренд, ваше хранилище, вход и аудит, замеры на ваших документах и решение «берём или нет». Этапы и сроки — в [Пилоте и приёмке](/platform/pilot/). Что фиксируется договором — профиль возможностей, матрица платформ, приёмочные сценарии, сроки поддержки и обязательства по безопасности — собрано в [Коммерческой упаковке](/platform/commercial/). ## Что дальше [Заголовок раздела «Что дальше»](#что-дальше) [Оставить заявку на ранний доступ](/start/beta/)Три поля. Пришлём сборки и честно скажем, что уже работает, а что пока сырое. [Что вы получаете: коротко](/platform/story/)Продуктовая формула в трёх блоках: что приносите вы, что делает платформа, что получается на выходе. [Риски и честные границы](/platform/risks/)Что пока не закрыто и чем закрывается. Без этой страницы разговор о внедрении неполон. [Что даёт встраивание, чего не даёт Office](/platform/advantages/)Не «мы лучше», а перечень мест, где встраивание даёт то, чего готовый офисный пакет дать не может. [Что обещано и что нет](/platform/messaging/)Формулировки, которые мы готовы защищать на пилоте, и те, которых сознательно избегаем. [VBA, Power Query и агенты](/platform/automation/)Автоматизация без потери контроля: поддержанное подмножество, лестница Power Query и работа агента как одна сделка. [Что готовится дальше](/platform/roadmap/)Куда движется платформа и что появится раньше остального. # Риски и честные границы > Что нельзя обещать до отдельного соглашения и какие ограничения нужно проговаривать заранее. Ниже названо то, что пока не закрыто, и то, чем это закрывается. Обещать «полный Office» без критериев проще, но проверить такое обещание нельзя — поэтому границы названы прямо. | Риск или нерешённый вопрос | Почему важно | Чем закрывается | | -------------------------------- | -------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Что войдёт в публичный интерфейс | Внутренних возможностей больше, чем можно объявить публично и потом годами поддерживать. | Зафиксированный публичный интерфейс, сгенерированные типы, правила версионирования. | | Точность воспроизведения | То, что файл открылся, ещё не значит, что он вернётся из редактора без потерь. | Матрица критичных документов и возможностей, сравнение файлов до и после, проверка повторного открытия. | | Архивный PDF/A | Для архивов, судебного и государственного документооборота это условие допуска, а обычного PDF там мало. | Обычный PDF выгружается, в том числе со встроенными шрифтами; готовность к PDF/A-1b проверяется отдельной командой, а сама выгрузка в этот формат пока закрыта и идёт через вашу программу проверки — [что с каким файлом можно](/a4/overview/#%D1%81-%D0%BA%D0%B0%D0%BA%D0%B8%D0%BC%D0%B8-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%D0%BC%D0%B8-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82). | | VBA | Требования безопасности и неполная совместимость расходятся с ожиданиями «просто работает». | Матрица поддержанных вызовов, перечень видов отказа, правила безопасности и запрет менять документ молча. | | Power Query | Внедрение чаще всего упирается именно в запросы, подключения и модель данных. | Сначала распознавание и сохранность, обновление и правка запросов — отдельным этапом, приёмка по сравнению файлов. | | Заявления о скорости | Лозунгами про «в десять раз быстрее» рынок уже перекормлен, и спорить лозунгами бессмысленно. | Воспроизводимый замер на исходных документах, зафиксированное оборудование, пороги по типичному и худшему времени. | | Подтверждение на всех системах | Проверка на одной системе не переносится на остальные автоматически. | Отдельная приёмка на каждой заявленной системе и в каждом способе встраивания. | | Сервер и много клиентов сразу | Работоспособность в настольном приложении не переносится на облачный сервис. | Отдельная архитектура: квоты, проверка доступа, очередь задач, изоляция клиентов друг от друга, наблюдаемость. | | Упаковка и подпись | Собранный на коленке файл не пройдёт корпоративное развёртывание. | Подписано пока не всё: приложения для macOS подписаны и заверены у Apple, установщик F1 для Windows подписан сертификатом на FastOffice, пакеты для Linux — отделённой подписью. Установщики A4 для Windows и образ F1 для macOS подписи не несут; для них остаётся сверка контрольной суммы. Что именно проверяется, показано на страницах установки [A4](/a4/install/) и [F1](/f1/install/). | | Поддержка версий | Вы зависите от того, сколько живёт версия, на которой собран ваш продукт. | Срок поддержки, правила снятия возможностей с поддержки, руководства по переходу, порядок эскалации. | ## Решения, которые нужно принять до старта [Заголовок раздела «Решения, которые нужно принять до старта»](#решения-которые-нужно-принять-до-старта) * Целевые операционные системы, технология вашего приложения, способ встраивания и граница развёртывания. * Десяток критичных действий пользователя и три-пять настоящих документов. * Требования к примечаниям, записи исправлений, таблицам, рисункам, полям, разделам и колонтитулам. * Требования к формулам, диаграммам, сводным таблицам, внешним ссылкам, Power Query, макросам и подключениям к данным. * Что должны делать агенты, какие права им дают, что попадает в аудит и кто утверждает их действия. * Откуда берутся и куда сохраняются файлы, как устроены резервные копии и восстановление, как ловятся утечки, что пишется в журналы и куда уходят показатели работы. * Какие обязательства по доступности нужны, сколько лет должна поддерживаться версия, как часто выходят обновления, кто отвечает за раскатку и как устроена работа с уязвимостями. ## Дальше [Заголовок раздела «Дальше»](#дальше) * Как эти границы проверяются на ваших документах — [Пилот и приёмка](/platform/pilot/). * Что закрывается договором — [Коммерческая упаковка](/platform/commercial/). * В каком порядке закрывается остальное — [Что готовится дальше](/platform/roadmap/). * Начать с малого — [заявка на ранний доступ](/start/beta/). # Что готовится дальше > Чего в платформе пока нет, в каком порядке это появится и что каждая работа даст вам. Плюс короткая формула предложения. Часть платформы ещё не доведена до поставки, и честнее сказать об этом прямо: вот чего пока нет. Ниже — порядок работ и то, что каждая из них даст вам. | Очередь | Что готовится | Что это даст вам | | ------- | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | 1 | Единая матрица возможностей | Один список на оба продукта: что открывается, что правится, что сохраняется без потерь и где проходят границы. Сверяться можно до пилота, а не после. | | 2 | Комплект для оценки | Обе поверхности, образец хоста, быстрый старт и заранее известный правильный результат — чтобы сравнить с тем, что вышло у вас. | | 3 | Набор документов для сравнения | От двадцати до полусотни настоящих файлов, прогнанных через нас и через другие офисные пакеты. Разницу видно на документах, а не в обещаниях. | | 4 | Что будет с макросами | Какие вызовы поддержаны, какие отклоняются намеренно, по каким правилам безопасности и что делать с теми, что не поддержаны. | | 5 | Что будет с запросами к данным | На настоящих книгах: что распознаётся, что сохраняется при записи, что можно посмотреть, что обновить и что создать заново. | | 6 | Устойчивые имена и версии | Имена пакетов и типов перестанут меняться между выпусками, а правила версий скажут заранее, сломает ли обновление вашу сборку. | | 7 | Комплект для службы безопасности | Состав поставки, подписи, порядок обновления и отката, сроки закрытия уязвимостей и правила работы с телеметрией. | ## С чего начинается разговор [Заголовок раздела «С чего начинается разговор»](#с-чего-начинается-разговор) Формула платформы умещается в одну фразу: ваш продукт плюс движки FastOffice — ваша собственная офисная платформа. Подробное изложение нужно как основание, чтобы короткие материалы не обещали лишнего. ## Итоговая формула предложения [Заголовок раздела «Итоговая формула предложения»](#итоговая-формула-предложения) | Что получаете вы | Что получает конечный пользователь | Что получает служба безопасности | | -------------------------------------------------- | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Библиотеки и ядра для документов и таблиц | Правка документов и таблиц внутри привычного продукта | Версионируемый контракт вызовов, состав поставки и подписи — насколько они есть в текущем выпуске (седьмая строка очереди выше про то, чего в этом комплекте ещё не хватает) | | Готовый интерфейс — оставить своим или заменить | Работа не выходит за пределы привычного приложения | Содержимое документов в журналы не попадает — это условие поставки; политики, контроль утечек, аудит | | Адаптеры и заготовки под ваш стек | Настоящие документы открываются и сохраняются в первый же день | Жизненный цикл под контролем, приёмка на отсутствие утечек | | Матрица возможностей и набор приёмочных документов | Меньше неожиданных потерь при переходе | Обещания, которые можно проверить на своих файлах | | Путь для автоматизации и агентов | Сценарии выполняются без ручных щелчков | Предпросмотр, согласование, аудит и откат | ### Коротко о платформе [Заголовок раздела «Коротко о платформе»](#коротко-о-платформе) FastOffice даёт вашему продукту собственный встроенный офисный движок: документы уровня Word и таблицы уровня Excel под вашим брендом, в вашем хранилище, внутри вашего контура безопасности и ваших процессов. В поставку входят документное и табличное ядра на Rust, интерфейс под ваш бренд, устойчивый набор для разработчика, автоматизация и измеримая совместимость — через профили возможностей и приёмочные проверки. ## Что уже можно [Заголовок раздела «Что уже можно»](#что-уже-можно) Планы читать легче рядом с тем, что работает сегодня: [что A4 умеет с документом](/a4/capabilities/), [карта возможностей F1](/f1/atlas/) и [границы, которые мы называем прямо](/platform/risks/). # Безопасность, приватность, эксплуатация > Границы доверия, секреты, хранилище, роли, журналы, цепочка поставки и жизненный цикл: что обеспечивает FastOffice и что остаётся на вашей стороне. Во встраиваемом продукте безопасность — не раздел в конце договора, а часть контракта: границы проходят прямо по вызовам. Вам нужно понимать, где проходят границы доверия, что попадает в журналы, какие учётные данные не выходят наружу, как обновляется среда выполнения и как освобождаются ресурсы. | Область | За что отвечает FastOffice | Что остаётся на вашей стороне | | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | | Сетевая граница | У документов служба поверхности слушает только локальный адрес: снаружи, даже из своей сети, к ней не подключиться. У таблиц в браузере отдельной службы нет вовсе — ядро считает в памяти страницы, и книга наружу не уходит ([как это устроено](/f1/wasm/)). Поставщики данных без явного разрешения в сеть не ходят ни там, ни там. | Задать разрешённые адреса источников, корневые каталоги и сетевые правила. | | Секреты | Службу поверхности A4 защищает пропуск длиной 256 бит из системного источника случайности, новый на каждый запуск и действующий, пока она работает; секреты вырезаются из вывода, а учётные данные передаются непрозрачными идентификаторами. | Не записывать в журнал пропуски, адреса и учётные данные; выбрать, куда уходят показатели работы. | | Хранилище | Контракт сохранения, передача байтами или потоком, доступ по адресу только при объявленной возможности, замена файла одним неделимым действием. | Пути, права доступа, резервные копии, сроки хранения, контроль утечек. | | Режим чтения и роли | Ограничение проверяется при выполнении команды, а не только гашением кнопок в интерфейсе. | Сами роли и решения о правах. | | Журналы | Счётчики, длительности, коды и контрольные суммы — без содержимого документа. | Согласовать, что вырезается, что попадает в аудит и сколько хранится. | | Цепочка поставки | Подписи, описи состава, контрольные суммы и правила совместимости обновлений. Подписано пока не всё, и по системам по-разному — что именно проверяется сегодня, сведено в [рисках](/platform/risks/) и разобрано на страницах установки. | Порядок раскатки и отката, согласования, канал поддержки. | | Жизненный цикл | Повторное закрытие безопасно; приёмка требует, чтобы после закрытия не осталось ни одного занятого ресурса. | Наблюдение за процессом, правила тайм-аутов, решение о судьбе несохранённого документа. | ## Что можно собирать, не касаясь содержимого [Заголовок раздела «Что можно собирать, не касаясь содержимого»](#что-можно-собирать-не-касаясь-содержимого) * версия среды выполнения, версия контракта, идентификатор профиля возможностей; * идентификатор операции, семейство команды, длительность в миллисекундах, класс исхода; * размер документа с точностью до диапазона и количество структурных элементов — без самого текста; * причина завершения процесса, пик потребления памяти, счётчики тайм-аутов и повторов; * версии системы, WebView, браузера и среды выполнения, а также канал обновлений. Не логировать Токены, полные адреса, текст документа, примечания, имена авторов, исходную разметку, байты книги, учётные данные и абсолютные пути — если для них не задано правило вырезания. ## Где это описано подробнее [Заголовок раздела «Где это описано подробнее»](#где-это-описано-подробнее) У документов это собрано на одной странице, у таблиц разнесено по темам. * A4: минимальная модель безопасности, локальный адрес и пропуск, запрещённые обходные пути — [Ответственность и безопасность](/a4/responsibility/). * F1, где остаются данные: в браузере книга живёт в памяти вкладки и наружу не уходит — [ядро в браузере](/f1/wasm/); на сервере изоляция клиентов, квоты и журнал остаются за вами — [процессор на сервере](/f1/server/). * F1, границы для чужого ввода: разрешённые каталоги и типы файлов, запрет передавать адрес назначения от внешнего клиента — [интеграция в приложение](/f1/integration/). * F1, что не попадает наружу: учётные данные и исходный текст запросов Power Query и макросов не уходят в события — [среды выполнения](/f1/environments/); уровни приватности источников — [доверие и приватность](/reference/f1/pq-trust/). * Что приходит в отказе и почему отказ безопаснее тихой порчи — [Как устроен сеанс API](/f1/session/). # Что вы получаете: коротко > Что вы приносите, что делает платформа и что получается на выходе — продуктовая формула в трёх блоках. Платформу проще всего понять как обмен: вы приносите свой продукт и контур, FastOffice — документную и табличную семантику, а на выходе получается ваш собственный офисный редактор: под вашим брендом и внутри ваших процессов. Историю удобно читать тремя блоками: что вы приносите, что с этим делает платформа, что получается на выходе. Поставляется не архив исходников и не чужой офис с чужим интерфейсом, а офисный процессор внутри вашего продукта — с контрактом и обязательствами. | Что приносите вы | Что делает платформа | Что получается на выходе | | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Бренд, название, домен, оболочку интерфейса, справку и обучение | Оформление под ваш бренд, переменные темы, язык, набор команд и точки расширения | Редактор выглядит частью вашего продукта, а не внешним сервисом. | | Вход через вашу систему, пользователей, роли, лицензии, аудит | Ограниченный контекст пользователя, проверку роли и возможностей, события аудита, точки применения политик | Документы остаются в вашем контуре. | | Хранилище: байты, потоки, адреса, системы документооборота и учёта | Адаптеры открытия и сохранения, правило неделимой замены файла, проверку «сохранил — открыл заново» | Файлы сохраняются в согласованное хранилище, без скрытого облака на стороне поставщика. | | Свои настоящие документы, десяток главных сценариев, критичные функции | Профиль возможностей, набор документов для приёмки, образцы и пороги по скорости | Совпадение с Word и Excel доказывается на ваших файлах, а не обещается вообще. | | Список платформ: браузер, Windows, macOS, Linux, телефоны, свой контур | Службу, которая отдаёт редактор рядом с приложением, работу внутри окна просмотра веб-страниц, сборки для браузера и настольных систем, сеансы без интерфейса | Один продукт получает настольный, браузерный и серверный варианты. Телефон сюда пока не входит: для документов пройден сквозной путь на Android, для таблиц мобильной поставки нет — [где размещается A4](/a4/deployment/), [телефон и планшет](/f1/mobile/). | | Задачи автоматизации: VBA, Power Query, агенты, конвейеры | Слои совместимости и порядок «осмотреть → спланировать → показать → подтвердить → применить», с явными отказами вместо тихих ошибок | Автоматизация становится управляемой и проверяемой. | * Для вас это не покупка редактора, а офисный процессор как компонент собственной отраслевой платформы. * Для вашего пользователя это не отдельная учётная запись и чужое окно, а привычный документ или таблица внутри текущего процесса. * Для службы безопасности и эксплуатации это не чёрный ящик: объявленные возможности, коды ошибок, собираемые показатели, жизненный цикл, правила обновления и условия приёмки фиксируются заранее. Термины платформы — профиль возможностей, явный отказ, сохранность разметки, поставка под своим брендом — разобраны в [глоссарии](/start/glossary/). # Настройка под свой бренд > Что можно менять, а что остаётся в ядре: бренд, оформление, навигация, команды, хранилище, пользователи, события и локализация. Поставка под своим брендом — не косметическая обёртка поверх чужого продукта, а распределение ответственности: внешний продукт и пользовательский путь принадлежат вам, документная и табличная семантика остаётся в ядре. | Область | Что можно менять | Чего делать нельзя | | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | Бренд | Название продукта, логотип, значок вкладки, ссылки на правовые документы, цвета оболочки. | Менять содержимое документа в обход ядра. | | Оформление | У поверхности A4 пять переменных темы — `--fastdoc-accent`, `--fastdoc-background`, `--fastdoc-foreground`, `--fastdoc-muted`, `--fastdoc-paper` — и выбор светлой или тёмной темы. У таблиц такого перечня пока нет: публичный набор для встраивания, вместе с расширением интерфейса, ещё оформляется — [что в нём есть сегодня](/f1/embedding-api/). | Глобальные правила CSS, меняющие геометрию полотна: разметка страницы считается в ядре, и подвинуть её стилями значит рассинхронизировать экран с файлом. | | Навигация | Маршруты вашего приложения, где расположены открытие и сохранение, собственная боковая панель, подсказки и обучение. | Опираться на внутренние узлы разметки или непубличные каналы: они меняются без предупреждения. | | Команды | Показывать команды по объявленным возможностям, включать и выключать по своим правилам, добавлять собственные панели. | Показывать команды, которых нет в объявленном профиле: пользователь нажмёт и получит отказ. | | Хранилище | Свои адаптеры открытия и сохранения, история версий, правила автосохранения, аудит. | Обходить контракт сохранения или писать в файл документа напрямую. | | Пользователи | Проекция учётной записи из вашей системы входа, контекст рабочего пространства, роли. | Передавать учётные данные в данные документа или в журналы. | | События | Аналитика и аудит через публичный набор событий. | Считать внутренние события разметки публичным контрактом. | | Локализация | Языковые пакеты, своя терминология в подписях. | Разводить смысл одной и той же команды по разным брендам. | ## Насколько глубоко можно менять [Заголовок раздела «Насколько глубоко можно менять»](#насколько-глубоко-можно-менять) * **Готовая оболочка.** Лента, сетка, диалоги и меню файла целиком от нас, внутри вашего окна. * **Смешанный вариант.** Полотно документа или таблицы от нас, а рамка интерфейса, панели и отраслевые команды — ваши. * **Только ядро.** Ваш интерфейс вызывает публичные операции и сам рисует то, что получает в ответ. * **Только автоматизация.** Процесс без интерфейса: пакетная обработка, агенты, проверки и создание документов. ## Как это выглядит в продуктах [Заголовок раздела «Как это выглядит в продуктах»](#как-это-выглядит-в-продуктах) * Разрешённые и запрещённые точки настройки A4 — [Ответственность и безопасность](/a4/responsibility/). * Граница между поверхностью и ядром в F1 — [набор для встраивания](/f1/embedding-api/). # AI-инструменты и MCP > Как подключить документацию FastOffice к Claude, Cursor, VS Code или ChatGPT через MCP-сервер, llms.txt и виджет «Спросить документацию». Документация FastOffice рассчитана не только на людей. Справочник большой — 28 команд сеанса, 306 методов оболочки A4, 479 типов запросов и ответов и 203 операции контракта F1, — и держать его в голове не нужно ни человеку, ни ассистенту. Поэтому сайт отдаёт своё содержимое в трёх машиночитаемых формах. ## 1. MCP-сервер документации и примеров [Заголовок раздела «1. MCP-сервер документации и примеров»](#1-mcp-сервер-документации-и-примеров) Сайт поднимает [MCP](https://modelcontextprotocol.io)-сервер по адресу `/mcp`. Любой клиент, умеющий streamable HTTP, получает шесть инструментов. Три отвечают на вопросы по документации: | Инструмент | Аргументы | Что возвращает | | ------------- | --------------------------------------- | ------------------------------------------------------------------------------------- | | `search_docs` | `query` | До пяти наиболее релевантных страниц с URL, описанием и фрагментом вокруг совпадения. | | `get_doc` | `path` — идентификатор страницы или URL | Полный текст страницы в markdown. | | `list_docs` | — | Все страницы с заголовками и описаниями. | Ещё три отдают **работающие проекты целиком** — не куски кода со страниц, а файлы, которые помощник разложит у вас и запустит: | Инструмент | Аргументы | Что возвращает | | ------------------ | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | | `list_examples` | `product` — `a4` или `f1`, необязательно | Каталог из двадцати четырёх примеров: что каждый показывает, из скольких файлов состоит и какой командой запускается. | | `get_example` | `id`, `product` | Один пример целиком: путь и содержимое каждого файла, команда запуска и адреса собранных файлов движка. | | `assemble_starter` | `ids` — несколько идентификаторов | Комбинация примеров, когда нужно сразу несколько возможностей. Пакеты не сливаются: совпадающие пути перечислены отдельно, решение за вами. | Так выглядит разговор целиком: «подключись к `https://docs.plantype.ru/mcp`, собери мне лист со своим контекстным меню и защитой диапазонов» — помощник сам вызовет `assemble_starter` с нужными примерами и положит файлы в проект. Те же пакеты доступны и без MCP, обычными адресами: каталог — [`/kit/index.json`](/kit/index.json), отдельный пример — по адресу из поля `package`. Открываются в браузере, качаются `curl`, читаются чем угодно. Два предупреждения, без которых пример обманет **Ставить ничего не нужно, и это не оборот речи.** Пакеты `@f1/*` в открытый реестр npm пока не публикуются: **первая стабильная версия ещё не вышла**, а публиковать в реестр то, что будет меняться, — значит связать руки и себе, и вам. Поэтому `npm install` на исходниках примера не сработает. Рабочий способ на сегодня — подключаться прямо с нашего сайта. В каждом пакете F1 лежит `run.html`: он открывается в браузере и подтягивает собранные файлы движка по адресу. Адрес указан в первой строке файла одной переменной: ```html window.FASTOFFICE_BASE = "https://docs.plantype.ru"; ``` Сменится домен — правится только эта строка, пути после него остаются прежними. Когда выйдет первая стабильная версия, пакеты появятся в реестре, и переезд с этого пути будет означать замену одной строки на обычный `import` — не переписывание проекта. **Примеры F1 — стенды, а не работающий движок.** На месте ядра в них дублёр, и числа в ячейках ничего не значат: смотреть нужно на объём кода вокруг листа и на способ встраивания. Настоящий пересчёт — в [живом примере](/f1/demo/), где книга открыта отдельным процессом ядра. У каждого пакета это сказано в поле `engine`, и помощник обязан передать это вам. Каталог инструментов в машиночитаемом виде: `/mcp-schema.json`. ### Claude Code [Заголовок раздела «Claude Code»](#claude-code) ```bash claude mcp add --transport http fastoffice-docs https://docs.plantype.ru/mcp ``` ### Cursor [Заголовок раздела «Cursor»](#cursor) .cursor/mcp.json ```json { "mcpServers": { "fastoffice-docs": { "url": "https://docs.plantype.ru/mcp" } } } ``` ### VS Code [Заголовок раздела «VS Code»](#vs-code) .vscode/mcp.json ```json { "servers": { "fastoffice-docs": { "type": "http", "url": "https://docs.plantype.ru/mcp" } } } ``` ### Клиенты, которые умеют только stdio [Заголовок раздела «Клиенты, которые умеют только stdio»](#клиенты-которые-умеют-только-stdio) ```json { "mcpServers": { "fastoffice-docs": { "command": "npx", "args": ["mcp-remote", "https://docs.plantype.ru/mcp"] } } } ``` ## 2. llms.txt [Заголовок раздела «2. llms.txt»](#2-llmstxt) Для инструментов, которые работают с текстовыми дампами, сайт публикует шесть файлов. Все они собираются на этапе сборки из того же содержимого, что и сайт, и открываются по прямой ссылке. | Файл | Что внутри | | ---------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | [`/llms.txt`](/llms.txt) | Оглавление: ссылки на остальные файлы с описаниями. Точка входа. | | [`/llms-full.txt`](/llms-full.txt) | Вся документация одним файлом, \~2.6 МБ. | | [`/llms-small.txt`](/llms-small.txt) | Тот же материал без справочных таблиц полей, \~2 МБ. Это всё ещё много: если контекст у модели небольшой, берите не его, а тематический набор ниже. | | [`/_llms-txt/a4-reference.txt`](/_llms-txt/a4-reference.txt) | Только справочник A4: Session Protocol, `window.fastdocShell`, DTO, события. | | [`/_llms-txt/f1-reference.txt`](/_llms-txt/f1-reference.txt) | Только справочник F1: Compute Contract, 203 операции. | | [`/_llms-txt/platform-overview.txt`](/_llms-txt/platform-overview.txt) | Продуктовая часть: поставка под своим брендом, безопасность, пилот. | ## 3. Чат-ассистент на сайте [Заголовок раздела «3. Чат-ассистент на сайте»](#3-чат-ассистент-на-сайте) Кнопка в правом нижнем углу открывает чат по документации. Это полноценный диалог: можно уточнять по ходу, не повторяя контекст. Ответ приходит потоком, переписка сохраняется в браузере до следующего визита. Под каждым ответом — список источников. Сверяйтесь с ними: ответ формулирует модель, и он может быть неточным. Ответ строится только по документации Ассистент отвечает исключительно на основании страниц этого сайта. Если нужного в документации нет, он так и скажет, а не придумает имя команды или поля. Если ответы отключены — ключ модели не задан или кончилась квота, — чат показывает найденные разделы со ссылками. ## 4. Кнопки «Открыть в…» на страницах [Заголовок раздела «4. Кнопки «Открыть в…» на страницах»](#4-кнопки-открыть-в-на-страницах) В шапке каждой страницы документации есть меню действий: скопировать страницу как markdown или открыть её содержимое в ChatGPT или Claude. Так можно задать вопрос по одной конкретной странице, не подключая MCP. ## Что выбрать [Заголовок раздела «Что выбрать»](#что-выбрать) | Задача | Инструмент | | --------------------------------------- | ------------------------------------------- | | Пишу код интеграции в IDE с ассистентом | MCP-сервер | | Разовый вопрос по открытой странице | Кнопка «Открыть в…» | | Быстро найти, где про это написано | Виджет «Спросить» или поиск по сайту | | Гружу документацию в свой пайплайн | `/llms-full.txt` или `/mcp/docs-index.json` | # Заявка на ранний доступ > Форма заявки на участие в бета-тестировании A4 и F1: ранние сборки, прямая линия с командой и возможность повлиять на приоритеты. A4 и F1 пока не выложены в открытый доступ. Ранние сборки мы отдаём тем, чьи замечания успевают попасть в релиз: вы получаете рабочие версии до публичного выпуска и прямой канал к команде, минуя общую очередь поддержки. Что ожидается взамен: время от времени открывать свои настоящие документы в новой сборке и сообщать о расхождениях. Участие бесплатное, договора для этого не требуется. [Заявка на ранний доступ к A4 и F1](https://app.plantype.ru/p/fastdocs/forms/c17aa083-1d75-48e8-bb7c-a372ff0651da) Форма не открылась или неудобно заполнять в рамке — [откройте её отдельной страницей ↗](https://app.plantype.ru/p/fastdocs/forms/c17aa083-1d75-48e8-bb7c-a372ff0651da). Можно и просто написать на [](mailto:support@plantype.ru?subject=%D0%B1%D0%B5%D1%82%D0%B0) с пометкой «бета» в теме. ## Что будет дальше [Заголовок раздела «Что будет дальше»](#что-будет-дальше) Мы отвечаем на заявку письмом: присылаем сборку, короткое описание того, что в ней уже работает, и того, что пока сырое. Если вам нужна проверка на своих документах в рабочем порядке, а не проба сборки, — это уже пилот: он устроен иначе, идёт по этапам и фиксирует условия заранее. Что именно там проверяют — [Пилот и приёмка](/platform/pilot/). Остальные способы связаться — на странице [Связаться с нами](/start/contact/). # Связаться с нами > Как запросить пилот, попасть в бета-тестирование и задать вопрос по встраиванию A4 или F1. Пишите на **** — это общий адрес для всех обращений ниже. Отвечает команда, которая разрабатывает A4 и F1. ## Запросить пилот [Заголовок раздела «Запросить пилот»](#запросить-пилот) Пилот — это не презентация, а проверка на ваших документах: вы открываете свой файл внутри своего приложения, правите, сохраняете и открываете заново. Что именно проверяется и сколько это занимает, описано на странице [Пилот и приёмка](/platform/pilot/). Чтобы разговор начался с дела, полезно сразу указать: * какой продукт нужен — A4 (документы DOCX), F1 (таблицы XLSX) или оба; * на чём построено ваше приложение — настольное, веб или серверная обработка; * какие операционные системы должны поддерживаться; * что должен уметь пользователь внутри документа; * есть ли ограничения по контуру: закрытая сеть, требования к хранению данных. Отдельный файл-образец прикладывать не нужно: на первом шаге достаточно описать сценарий словами. ## Бета-тестирование [Заголовок раздела «Бета-тестирование»](#бета-тестирование) Если вы готовы попробовать сборки раньше общего релиза и присылать замечания, оставьте заявку — [форма на соседней странице](/start/beta/), три поля. Можно и письмом с пометкой **бета** в теме — [письмо с готовой темой](mailto:support@plantype.ru?subject=%D0%B1%D0%B5%D1%82%D0%B0). Участие бесплатное. Взамен мы просим обратную связь: что не открылось, что открылось неправильно, чего не хватило. Что даёт участие: * ранний доступ к сборкам A4 и F1 до публичного выпуска; * возможность влиять на приоритеты — замечания бета-участников попадают в работу раньше остальных; * прямой канал к команде без общей очереди поддержки. Что ожидается от участника: время от времени открывать свои реальные документы в новой сборке и сообщать о расхождениях. Формальных обязательств и договора для этого не требуется. ## Технический вопрос [Заголовок раздела «Технический вопрос»](#технический-вопрос) Если вы уже читаете справочник и не сходится что-то конкретное — команда, операция, поле, поведение при ошибке, — напишите на тот же адрес и приложите: * какой продукт, версия сборки и система; * что вы вызывали и что ожидали получить; * что получили вместо этого, включая текст ошибки целиком — с именем команды или операции и кодом отказа; * одну строку запроса и одну строку ответа целиком; * наименьший обезличенный файл, на котором это видно; * повторяется ли это в новом процессе. Перед письмом имеет смысл заглянуть в разборы типовых неполадок — [у A4](/a4/diagnostics/) и [у F1](/f1/diagnostics/): часть случаев там уже разобрана вместе с тем, что именно проверить. ## Ошибка в документации [Заголовок раздела «Ошибка в документации»](#ошибка-в-документации) Нашли неточность, оборванную фразу или ссылку в никуда на этом сайте? Напишите на тот же адрес с пометкой **документация** — [письмо с готовой темой](mailto:support@plantype.ru?subject=%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8F) — и укажите адрес страницы. Это помогает больше, чем кажется. # Встроить в настольное приложение > Первые шаги для программы на компьютере — учётной системы, 1С, отраслевой платформы: что положить рядом, что запустить и какие три строки отправить, чтобы документ открылся, изменился и сохранился. Ваш продукт — программа, которая стоит у людей на компьютерах: учётная система, отраслевая платформа, надстройка над 1С, система документооборота. Сегодня, чтобы поправить договор, пользователь выгружает файл, открывает его в чужом редакторе и загружает обратно — и по дороге теряются версии, права и следы того, кто что менял. После этих шагов документ открывается внутри вашей программы, а вы знаете о каждом изменении. ## Как это устроено, в двух словах [Заголовок раздела «Как это устроено, в двух словах»](#как-это-устроено-в-двух-словах) Рядом с вашей программой работает **отдельный процесс** — процессор документов. Ваша программа разговаривает с ним обычными строками: отправила строку с заданием, получила строку с ответом. Никаких библиотек внутрь вашего кода встраивать не нужно, и язык, на котором написан ваш продукт, значения не имеет — строки умеет отправлять любой. Это тот же способ, которым программы разговаривают между собой уже десятилетиями. Если у вас есть команда, которая делала обмен с внешней системой, — этот путь ей знаком. ## Три шага [Заголовок раздела «Три шага»](#три-шага) 1. **Положите ядро рядом со своей программой.** Это один исполняемый файл из поставки — процессор документов. Ни установщика, ни зависимостей. Пути для трёх систем — в [Установке и проверке](/a4/install/); дальше мы зовём его `$CLI`. 2. **Запустите его как дочерний процесс.** Одна команда, и он ждёт заданий. Первой строкой он сам сообщает, что готов. ```bash "$CLI" serve ``` Ответ — строка о готовности, по ней ваша программа понимает, что можно работать: ```json {"ready": true, "schema": "fastdoc.session-serve.v1"} ``` 3. **Отправьте три строки.** Открыть документ, изменить, сохранить. На каждую приходит ровно одна строка ответа: ```json {"id":"1","cmd":"open","path":"/путь/договор.docx"} {"id":"2","cmd":"mutate","operation_kind":"insert-text","paragraph_index":0,"offset":0,"text":"Здравствуйте. "} {"id":"3","cmd":"save","path":"/путь/договор-новый.docx"} ``` Ответы — такие: ```json {"id":"1","ok":true} {"id":"2","ok":true} {"id":"3","ok":true} ``` На диске появляется новый файл с внесённой правкой. Это не пример из головы: именно этот обмен выполнен на установленном A4 при подготовке страницы. ## Что важно знать сразу [Заголовок раздела «Что важно знать сразу»](#что-важно-знать-сразу) **Поле `id` возвращается в ответе** — по нему вы сопоставляете пару в своих журналах. Отвечает процессор строго по очереди, в том порядке, в каком пришли задания, поэтому долгая операция задерживает всё, что послано после неё. Если нужна параллельность — поднимайте второй процесс. **Запуск, остановка и перезапуск — на вашей стороне.** Процесс живёт, пока живёт ваша программа; закрывая окно, закройте и его. **Отказ приходит до изменения, а не после.** Если операция не поддержана или документ защищён, вы получите ответ с причиной, и файл останется прежним. Наполовину записанного документа не бывает: файл публикуется одним неделимым действием. ## Если нужно показать сам редактор [Заголовок раздела «Если нужно показать сам редактор»](#если-нужно-показать-сам-редактор) Три строки выше меняют документ без всякого экрана — этого достаточно для отчётов, шаблонов и пакетной обработки. Когда пользователю нужно **увидеть** документ и править его руками, у вас два пути: Окно внутри вашей программы Ваше приложение открывает адрес поверхности в системном окне просмотра веб-страниц — и получает готовый редактор внутри своего окна. [Встраивание поверхности](/a4/embedding/) Отдельное окно редактора Проще всего для первой пробы: редактор открывается своим окном, а ваша программа отдаёт ему файл и забирает результат. [Запуск поверхности](/a4/surface/) ## То же самое для таблиц [Заголовок раздела «То же самое для таблиц»](#то-же-самое-для-таблиц) У книг XLSX всё устроено так же: рядом работает свой процессор, и разговор идёт такими же строками. Отличается имя программы и состав заданий — [Отдельный процесс ядра рядом с приложением](/f1/native/). Если считать нужно не на компьютере пользователя, а на сервере — тот же процессор работает и там: [Процессор на сервере](/f1/server/). ## Дальше, когда простого станет мало [Заголовок раздела «Дальше, когда простого станет мало»](#дальше-когда-простого-станет-мало) | Что вы хотите сделать | Куда смотреть | | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | | Собрать договор по шаблону и подставить данные из своей базы | [Что A4 умеет с документом](/a4/capabilities/) | | Выгрузить готовый документ в PDF, в том числе со встроенными шрифтами | [Печать и выпуск](/a4/capabilities/#%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D1%8C-%D0%B8-%D0%B2%D1%8B%D0%BF%D1%83%D1%81%D0%BA) | | Проверить, чем защищён чужой файл и какие в нём макросы, не запуская их | [Безопасность файла](/a4/capabilities/#%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0) | | Пересчитать книгу, собрать сводную таблицу, обновить запрос к данным | [Карта возможностей рядом с Excel](/f1/atlas/) | | Понять, что приходит в ответе и как читать отказ | [Объекты запросов и ответов](/a4/envelope/) | | Точные имена всех вызовов с полями | [Справочник A4](/reference/a4/overview/), [Справочник F1](/reference/f1/overview/) | [Встроить в веб-приложение](/start/web/)Если ваш продукт живёт в браузере: редактор открывается прямо на вашей странице. [Встроить в мобильное приложение](/start/mobile/)Что для телефона и планшета возможно сегодня, а чего пока нет — честно и без обещаний. # Глоссарий > Термины платформы простыми словами: ядро, контракт сеанса, контракт операций, профиль возможностей, явный отказ, сохранность неподдержанного, поставка под своим брендом. Термины, которые встречаются во всех разделах документации. | Термин | Значение | | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Ядро A4, ядро на Rust | Часть на Rust, которая владеет документом: разбирает файл DOCX, держит модель документа, считает вёрстку и записывает изменения обратно в файл. | | Ядро F1, ядро на Rust | Часть на Rust, которая владеет книгой: формулы, разрежённое хранение ячеек, история изменений и запись файла. Второго владельца нет — интерфейс только показывает и просит. | | Поверхность редактора, Web Surface | Готовый пользовательский интерфейс, который размещают в окне браузера, в окне просмотра веб-страниц внутри приложения или в своём контейнере. На страницах A4 встречается под обоими именами: заголовки разделов называют его Web Surface, текст — поверхностью. | | Surface Host, служба поверхности | Небольшая программа, которая отдаёт файлы этой поверхности и держит один сеанс документа. Слушает только локальный адрес — снаружи к ней не подключиться. Запускается на той же машине, где открыт документ. | | `fastdoc`, `fastsheet` в именах | Внутренние имена движков: `fastdoc` — документного, `fastsheet` — табличного. Встречаются в названиях схем и событий, в переменных оформления и в имени объекта в окне браузера. Это не отдельные продукты: так назывались A4 и F1 до переименования, а имена в коде остались прежними — их смена сломала бы совместимость у тех, кто уже встроил редактор. | | Ваше приложение, приложение-хост | Приложение, в которое встраивается редактор. Ему принадлежат бренд, пользовательский путь, вход, хранилище и рабочие процессы. | | Адаптер к приложению | Ваш код между вашим приложением и редактором: запускает процесс ядра, читает параметры подключения, передаёт команды и разбирает ответы. Пишется под ваш язык и вашу среду; разметку документа он не разбирает и своей копии файла не держит. | | Evaluation Kit, комплект для оценки | Собранный набор для первой пробы: примеры, образцы документов, сквозной путь на настоящем файле и заранее известный правильный результат каждого шага. Даётся, чтобы ваш инженер открыл свой документ за час, не собирая ничего сам. | | Мэшап, mashup | Набор запросов Power Query, который хранится внутри книги: сами запросы, их группы, подключения к источникам и связи с листами. «Чужим» он называется, когда собран не в F1, а в Excel: такой набор F1 читает, обновляет и записывает обратно, не теряя того, чего не понимает. | | DTO, объект передачи данных | Описание того, из каких полей состоит запрос или ответ: какие поля есть, какого они типа и какие обязательны. Не команда и не действие, а форма сообщения — по ней ваш код собирает запрос и разбирает ответ. | | OEM, встраивание под своей маркой | Поставка, при которой ваш продукт включает чужой редактор как свою часть: пользователь видит ваш интерфейс и ваше имя, а не наше. Отсюда «OEM-профиль» — набор событий и настроек, нужный именно такой поставке. | | Дымовой прогон | Короткая автоматическая проверка, что собранная программа вообще запускается и открывает документ. Она не проверяет функции по отдельности — только что дым не пошёл. В справочнике такие маршруты помечены отдельно: во встраивании они не нужны. | | LTS, длительная поддержка | Версия, которую поддерживают дольше обычного: для неё выпускают исправления и обновления безопасности оговорённый срок, а не до следующего выпуска. | | Единый вход, SSO | Вход в редактор той же учётной записью, которой пользователь уже вошёл в ваш продукт: отдельной пары имени и пароля у редактора нет. Проверяет пользователя ваша система, редактор получает от неё только проекцию учётной записи — кто это, какая роль и что ему разрешено. | | Контракт сеанса, Rust Session Protocol | Узкая граница между вашим приложением и редактором: какие команды можно отправлять, какие события приходят, как живёт сеанс и что вообще доступно. У неё есть версия, и она меняется не молча. Все 28 команд перечислены в [справочнике](/reference/a4/session-protocol/). | | Сеанс JSONL | Самый простой способ обратиться к ядру: процессор запускается и обменивается с вашей программой строками — один запрос JSON в строке, один ответ JSON в строке. Буква L в названии и значит «строка»: каждая строка — законченный JSON, а не кусок общего. | | Стандартный ввод и вывод, stdin и stdout | Два потока, через которые запущенная программа получает данные и отвечает. Ими и пользуется сеанс JSONL: своего сетевого порта ему не нужно. | | Пропуск, токен | Случайная строка, которую процессор создаёт при запуске и без которой к его порту не подключиться: соединение без пропуска или с чужим отклоняется. Живёт, пока работает процесс, и на следующем запуске будет другой. В адресах и в полях запроса он называется `token` — на страницах это тот же пропуск. | | Локальный адрес, 127.0.0.1 | Адрес самой машины. Соединение по нему не выходит за её пределы: снаружи, даже из своей сети, к такому порту подключиться нельзя. | | Точка применения политик | Заранее известный момент, в который редактор спрашивает ваше приложение, можно ли продолжать: перед выполнением команды, перед сохранением, перед выдачей данных наружу. Правила остаются вашими — редактор не хранит их у себя, а только даёт место, где ваш ответ будет учтён. | | Агент | Программа, которая работает с документом вместо человека: сама читает его, предлагает правку и применяет её. От макроса отличается дорогой: агент ходит тем же контрактом, что и интерфейс, поэтому его действия видны, проверяемы и отменяемы. Щёлкать по кнопкам и править файл в обход редактора он не может. | | Контракт операций, Compute Contract | Типизированная граница F1: через неё к ядру обращаются и интерфейс, и автоматизация, и адаптеры к чужим приложениям. Другого пути к книге нет. Все 203 операции — в [справочнике](/reference/f1/overview/). | | Профиль возможностей | Именованный набор того, что входит в конкретную поставку: функции, платформы, форматы, операции и ограничения. Именно он, а не общие слова, определяет обещание. | | Матрица возможностей | Таблица, где каждая возможность проверена по клеткам: формат, среда выполнения, действие, сохранность разметки и ограничения. Профиль отвечает на вопрос «что входит в поставку», матрица — «что из этого проверено и на чём». | | Явный отказ | Отказ с кодом и причиной, приходящий **до** того, как документ изменится. Противоположность двум худшим исходам: когда операция молча не сработала и когда файл изменился наполовину. Где искать этот код, зависит от вызова: у правки документа он приходит полем ответа, а не признаком успеха в конверте — [как читать ответ](/a4/envelope/). | | Сохранность неподдержанного | Части файла, которые редактор не понимает, переносятся в сохранённый файл без изменений — либо честно помечаются. Именно это отличает редактор от преобразователя, который теряет всё незнакомое. | | Поставка под своим брендом | Редактор выходит под вашим названием, в вашем интерфейсе и внутри ваших процессов. Ядро при этом не раздваивается: настраивается оболочка, а не смысл документа. | | В описанных границах | Перечислено ровно то, что сделано и проверено; остальное не обещается. За границей возможность отказывает предсказуемо — с понятной причиной, а не ломается. | | Сеанс книги, subset, `subsetId` | Сеанс работы с книгой в F1. Открывается операцией `open_workbook_subset` и возвращает `subsetId` — идентификатор, который передают все последующие операции над этой книгой. Ядро держит в памяти не весь файл, а то, что нужно для текущего окна просмотра, отсюда и название. Закрывается операцией `close_workbook_subset`. | | Viewport, окно просмотра | Прямоугольное окно листа, для которого ядро отдаёт данные: левый верхний угол (`top`, `left`) и размер в строках и столбцах (`rows`, `cols`). Индексы нулевые: первая строка — `0`. Окно можно сдвинуть операцией `synchronize_workbook_viewport`, это не правка и в историю не попадает. | | Ревизия, `revision`, `expectedRevision` | Номер состояния книги. Он растёт с каждой правкой, и вызывающий может передать в запросе тот номер, который видел последним. Если книга с тех пор изменилась, запрос отклоняется **до** того, как книга изменится, а не наполовину. Это защита от гонки, когда книгу правят из двух мест одновременно. В F1 поле необязательное: без него правка применяется безусловно — см. [Как устроен сеанс API](/f1/session/). | | Power Query, M-выражение | Механизм получения и преобразования данных из внешних источников: запрос описывается на языке формул M и состоит из применённых шагов (applied steps), каждый из которых преобразует результат предыдущего. Совместим с одноимённым механизмом Microsoft Excel. | | Mashup, набор запросов | Описание запросов Power Query в формате Microsoft, хранящееся внутри файла книги. «Внешним» (foreign) оно называется, когда создано не продуктом, а сторонним приложением: такие описания F1 читает, обновляет и записывает обратно, сохраняя то, что не понимает. | | Writeback, обратная запись | Перенос изменений из внутренней модели документа обратно в файл формата — DOCX или XLSX. Части файла, которых правка не касалась, переносятся без изменений; за это отвечает preservation. Обратная запись принадлежит ядру: интерфейс не правит файл напрямую. | | Projection, проекция | Ограниченный срез состояния, который ядро отдаёт интерфейсу: не весь документ или книга, а ровно то, что нужно для текущего окна просмотра или запроса. Благодаря этому большой файл не обязан целиком превращаться в DOM или объекты JavaScript. | | Sparse workbook state, разрежённое хранение | Разрежённое хранение книги: в памяти держатся только заполненные ячейки и заданные форматы, а не полная матрица листа. Лист с миллионом строк не занимает память под пустые строки. Открытие тоже разрежённое — сначала загружается активный лист. | | Headless, работа без интерфейса | Режим работы ядра без пользовательского интерфейса: команды приходят по контракту, ответом становятся данные или готовый файл. Так ядро используют на сервере и в пакетной обработке. | | Dirty, есть несохранённые изменения | Состояние сеанса, когда в документе есть изменения, которых нет в сохранённом файле. В A4 признак вычисляется сравнением: хеш текущей модели отличается от хеша последнего сохранённого состояния. Хост обычно показывает это пользователю и спрашивает подтверждение перед закрытием окна. | | Cold reopen, повторное открытие с нуля | Повторное открытие сохранённого файла заново — как правило, новым процессом, без опоры на состояние в памяти. Так проверяют, что в файл действительно попало то, что показывал редактор: правка, история, форматирование и неподдерживаемые части документа. | | Acceptance, приёмка | Заранее согласованный набор документов и действий, на котором проверяется работа интеграции. Смысл в том, чтобы обещание совместимости было проверяемым: не «поддерживаем DOCX», а «на этих файлах эти операции дают такой результат». | | Privacy level, уровень приватности | Уровень приватности источника данных в Power Query. Он ограничивает, данные каких источников можно смешивать в одном запросе, чтобы значения из закрытого источника не утекли в запрос к внешнему. | # Как читать эту документацию > Структура сайта, маршруты чтения по ролям и из каких исходных материалов собрана документация. Документация разделена на четыре уровня — от продуктовой картины до машинно выверенного справочника API. ## Структура [Заголовок раздела «Структура»](#структура) | Раздел | Для кого | Содержание | | ---------------------------------------- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | | [Платформа](/platform/story/) | Продукт, пресейл, закупка, служба безопасности | Продуктовая формула, состав поставки, настройка под свой бренд, паритет с Word и Excel, пилот и коммерческие условия. | | [A4](/a4/overview/) | Архитекторы и интеграторы документной части | Архитектура, жизненный цикл, установка, быстрый старт, Surface, Host API, рецепты. | | [F1](/f1/overview/) | Архитекторы и интеграторы табличной части | Слои, среды выполнения, установка, первый проект, сеанс API, набор для встраивания. | | [Справочник A4](/reference/a4/overview/) | Разработчики | Rust Session Protocol (28 команд), Surface API, `window.fastdocShell` (306 методов), события, каталог DTO (479 типов). | | [Справочник F1](/reference/f1/overview/) | Разработчики | Compute Contract: транспорт, соглашения сеанса и 203 операции по доменам. | ## Маршруты чтения [Заголовок раздела «Маршруты чтения»](#маршруты-чтения) **Оценка за один вечер.** [Что такое FastOffice](/start/intro/) → [Что вы получаете](/platform/story/) → [Функциональный паритет](/platform/parity/) → [Пилот и приёмка](/platform/pilot/). **Технический прототип A4.** [Установка A4](/a4/install/) → [Быстрый старт](/a4/quickstart/) → [Объекты запросов и ответов](/a4/envelope/) → [Команды сеанса](/reference/a4/session-protocol/). **Технический прототип F1.** [Установка F1](/f1/install/) → [Быстрый старт: первый проект](/f1/quickstart/) → [Как устроен сеанс API](/f1/session/) → [Справочник Compute Contract](/reference/f1/overview/). **Проектирование интеграции A4.** [Архитектура](/a4/architecture/) → [Жизненный цикл](/a4/lifecycle/) → [Host API](/a4/host-api/) → [контракт взаимодействия](/a4/interaction/) → [Что зафиксировать до интеграции](/a4/status/#%D1%87%D1%82%D0%BE-%D0%B7%D0%B0%D1%84%D0%B8%D0%BA%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%B4%D0%BE-%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%B0-%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D0%B8). Две страницы в середине описывают интерфейс, который ещё предлагается, а не работает: по ним договариваются о форме будущего контракта. Что доступно сегодня — [Готовность и границы](/a4/status/). **Проектирование интеграции F1.** [Архитектура: четыре слоя](/f1/architecture/) → [Что происходит от открытия до сохранения](/f1/lifecycle/) → [Среды выполнения](/f1/environments/) → [Интеграция в приложение](/f1/integration/) → [Контрольный список готовности](/f1/checklist/). **Проверка безопасности.** [Безопасность платформы](/platform/security/) → [Ответственность и безопасность A4](/a4/responsibility/) → [Риски и границы](/platform/risks/). ## На чём основана документация [Заголовок раздела «На чём основана документация»](#на-чём-основана-документация) Документация собрана из спецификаций обоих продуктов и сверена с их исходным кодом. Числа, имена команд и операций, коды отказов и границы возможностей сверяются с кодом при подготовке каждого изменения: если документация разойдётся с продуктом, правка не уходит дальше. При сборке сайта проверки идут заново — на машине, где исходников продуктов нет. Там сверяется, что страницы совпадают со своим сборщиком, что ни один раздел исходников не потерялся, что все ссылки ведут на существующие страницы и что во внешний текст не попал внутренний материал. Плюс то, для чего исходники не нужны: имена команд сверяются со списком, снятым с самой поставки, а число операций — со списком, снятым с ядра выпуска. Не прошла проверка — не будет и выкладки. К сравнению с Excel это не относится: оно опирается на официальную документацию Microsoft, и источники названы прямо на странице [Карта возможностей рядом с Excel](/f1/atlas/). # Что такое FastOffice > Встраиваемая офисная платформа: A4 для DOCX и F1 для XLSX внутри вашего продукта, под вашим брендом и в вашем контуре безопасности. **FastOffice** — встраиваемая офисная платформа для компаний, которым нужен собственный редактор Word/Excel-класса *внутри своего продукта*, а не ещё один внешний офисный пакет рядом с ним. Платформа состоит из двух движков и общей модели встраивания: | Движок | Формат | Что даёт | Документация | | ------ | ------ | ------------------------------------------------------------------------------------------------------------------ | -------------------------- | | **A4** | DOCX | Документный процессор и готовая поверхность редактора: открытие, вёрстка, правка, сохранение и повторное открытие. | [Раздел A4](/a4/overview/) | | **F1** | XLSX | Табличный процессор: формулы, разрежённое состояние книги, история, импорт и сохранение. | [Раздел F1](/f1/overview/) | Что именно обещано FastOffice — не полная копия Microsoft Office и не средство, которое заведомо лучше самого Office. Обещано другое: **функциональный паритет по согласованным сценариям и документному корпусу** — то есть на ваших документах и ваших операциях, — плюс преимущество в самом встраивании: контроль состояния, сохранение, автоматизация и проверяемая приёмка. Подробнее — [Функциональный паритет](/platform/parity/). ## Три вещи, которые стоит понять сразу [Заголовок раздела «Три вещи, которые стоит понять сразу»](#три-вещи-которые-стоит-понять-сразу) 1. **Границу владения.** Вам принадлежат продукт, бренд, авторизация, хранилище и бизнес-процесс. FastOffice отвечает за документную и табличную семантику. Граница между ними — узкая, версионированная и закреплённая контрактом. См. [Настройку под свой бренд](/platform/white-label/). 2. **У документа один владелец — ядро на Rust.** Модель документа, формулы, история и запись файла живут в ядре. Поверхность показывает проекции и отправляет типизированные намерения, но не пишет DOCX и XLSX напрямую. 3. **Отказ лучше тихой порчи.** Неподдержанная или устаревшая операция получает явный отказ с причиной — **до** того, как что-либо изменится. Файла, изменённого наполовину, не возникает. ## С чего начать [Заголовок раздела «С чего начать»](#с-чего-начать) Если не знаете, с чего начать, посмотрите [как читать эту документацию](/start/how-to-read/): там маршруты по ролям и устройство разделов. | Роль | Первая страница | | ------------------------------ | --------------------------------------------------------------------------- | | Продукт, пресейл, руководитель | [Что вы получаете](/platform/story/) | | Архитектор | [Архитектура A4](/a4/architecture/) и [Архитектура F1](/f1/architecture/) | | Интегратор | [Быстрый старт A4](/a4/quickstart/) или [Быстрый старт F1](/f1/quickstart/) | | Служба безопасности | [Безопасность и эксплуатация](/platform/security/) | | ИИ-ассистент, читающий за вас | [AI-инструменты и MCP](/start/ai/) | # Подключить редактор за 15 минут > Редактор документов и таблиц у вас на сайте, в настольной программе и в телефоне. Скажите Клоду, что нужно, — он сделает. Программист не нужен. § 01 · обещание Редактор Word и Excel внутри вашего продукта — на сайте, в настольной программе и в телефоне. Вам не нужно быть программистом и не нужно никого ждать. Скопируйте задание, отдайте его Клоду — и через пятнадцать минут смотрите на работающий редактор со своим документом. ![Редактор A4 с открытым договором внутри страницы](/examples/a4-demo.png) Это не макет: тот же редактор открыт прямо на этом сайте — [попробуйте сами](/a4/demo/). 1. **Скопируйте задание**оно готово, ниже 2. **Отдайте Клоду**он читает нашу документацию сам 3. **Смотрите редактор**с вашим документом § 02 · подключение ## Выберите, куда подключаете [Заголовок раздела «Выберите, куда подключаете»](#выберите-куда-подключаете) ### На сайт [Заголовок раздела «На сайт»](#на-сайт) Ваш продукт живёт в браузере. Редактор открывается прямо на странице — пользователь никуда не уходит, файл остаётся у вас. Задание для Клода — скопируйте целиком ```text Подключись к MCP-серверу https://docs.plantype.ru/mcp и по странице «Встроить в веб-приложение» подними у меня редактор документов на тестовой странице. Я не программист: объясняй по шагам простыми словами и спрашивай, если от меня что-то нужно. ``` [Что будет по шагам →](/start/web/) ### В настольную программу [Заголовок раздела «В настольную программу»](#в-настольную-программу) Учётная система, отраслевая платформа, надстройка над 1С. Редактор открывается внутри вашей программы, а вы знаете о каждом изменении. Задание для Клода — скопируйте целиком ```text Подключись к MCP-серверу https://docs.plantype.ru/mcp и по странице «Встроить в настольное приложение» покажи мне, как открыть, изменить и сохранить документ из моей программы. Я не программист: сделай маленький пример, который я просто запущу и увижу результат. ``` [Что будет по шагам →](/start/desktop/) ### В мобильное приложение [Заголовок раздела «В мобильное приложение»](#в-мобильное-приложение) Телефон и планшет. Сегодня это работает так: считает ядро на сервере, а экран показывает ваше приложение. Задание для Клода — скопируйте целиком ```text Подключись к MCP-серверу https://docs.plantype.ru/mcp и по странице «Встроить в мобильное приложение» объясни, что из мобильного пути работает сегодня, а чего ещё нет, и собери мне маленькое тестовое приложение, чтобы я увидел редактор у себя в телефоне. ``` [Что будет по шагам →](/start/mobile/) § 03 · проверка ## Что вы увидите [Заголовок раздела «Что вы увидите»](#что-вы-увидите) Не запись экрана и не картинка: обе программы открываются прямо здесь, в браузере, без установки. Документ живёт в вашей собственной кабинке — правки видите только вы. Договор в редакторе A4 Заголовки, списки, таблица со сроками и суммой. Поправьте абзац — и увидите, как редактор выглядит внутри чужого приложения. [Открыть живой редактор →](/a4/demo/) Смета в таблице F1 Формулы, доли, два итога. Измените количество или цену — пересчитает ядро, а не разметка страницы. [Открыть живую таблицу →](/f1/demo/) § 04 · возможности ## Что умеет редактор [Заголовок раздела «Что умеет редактор»](#что-умеет-редактор) Коротко и по делу — то, ради чего документы вообще открывают. | Что нужно | Документы | Таблицы | | ------------------------------ | ------------------------------------------------------------------------- | ----------------------------------------------------------- | | Открыть и сохранить без потерь | DOCX, а также ODT, RTF, HTML, текст, EPUB, FB2 | 13 форматов: XLSX, XLSB, XLSM, ODS, CSV и другие | | Оформить | заголовки, списки, колонтитулы, водяные знаки, таблицы, картинки и фигуры | ширина и высота, объединение, темы, условное форматирование | | Собрать документ | оглавление, список иллюстраций, библиография, поля и ссылки | сводные таблицы, промежуточные итоги, фильтры | | Работать вдвоём | примечания, запись исправлений, сравнение и сведение версий | защита листа и диапазонов, рецензирование | | Посчитать | — | формулы, пересчёт, трассировка зависимостей, Power Query | | Выпустить | печать, PDF, в том числе со встроенными шрифтами | печать, разметка страницы, экспорт | | Проверить чужой файл | состав макросов без запуска, чем защищён, готовность к архивному PDF/A | состав макросов, защита, совместимость | Полные карты — [что A4 умеет с документом](/a4/capabilities/) и [карта рядом с Excel](/f1/atlas/). § 05 · агент ## Не чат рядом с таблицей. Агент внутри правил документа [Заголовок раздела «Не чат рядом с таблицей. Агент внутри правил документа»](#не-чат-рядом-с-таблицей-агент-внутри-правил-документа) Помощник, который «умеет работать с Excel», обычно кликает по интерфейсу или пишет в файл мимо редактора. Тогда никто не знает, что именно изменилось, и откатить это одним движением нельзя. У нас агент ходит тем же путём, что и человек, — через те же операции, ту же историю и то же сохранение. 1. посмотрел 2. составил план 3. показал точные изменения 4. дождался разрешения 5. применил целиком 6. проверил Отказ приходит **до** того, как файл изменится, а применённое отменяется одной операцией — не по клетке, а всё сразу. Подробно — [VBA, Power Query и агенты](/platform/automation/). § 06 · происхождение ## Спасибо, Microsoft [Заголовок раздела «Спасибо, Microsoft»](#спасибо-microsoft) В 1985 году Excel показал, что сложные вычисления могут стать частью обычной работы. Word и Excel научили целые отрасли работать с документами, и на этих форматах держится деловой оборот до сих пор — включая ваши договоры и сметы. Мы не хотим перечеркнуть этот путь. Мы хотим, чтобы работа, которую он сделал возможной, продолжалась и там, где самого Office быть не может: в чужом приложении, на сервере, в автоматическом процессе. **Раньше вашу систему встраивали в Excel. Теперь Excel-класс встраивается в вашу систему.** § 07 · почему это быстро ## Почему помощник справляется за пятнадцать минут [Заголовок раздела «Почему помощник справляется за пятнадцать минут»](#почему-помощник-справляется-за-пятнадцать-минут) Наружу выведены **28 команд** документного сеанса и **203 операции** табличного контракта, из них **185** принимает ядро последнего выпуска. Каждое из этих чисел снято с установленных сборок, а не выписано из планов: при каждом изменении документации сборка сверяет их с кодом продуктов и не проходит, если они разошлись. Поэтому помощник и справляется за пятнадцать минут: он читает не рекламу, а описание, которое совпадает с программой. [Получить сборки](/start/beta/)Три поля. Пришлём A4 и F1 и честно скажем, что уже работает, а что пока сырое. [Зачем это вашей компании](/platform/replace-office/)Что меняется, когда офис оказывается внутри вашего продукта, а не рядом с ним. # Встроить в мобильное приложение > Что для телефона и планшета работает сегодня, каким путём это делается по шагам и чего пока нет — без обещаний, которые нечем подтвердить. Начнём с того, чего вы не найдёте на этой странице: готового мобильного редактора, который ставится в ваше приложение одной строкой. Его нет — ни у документов, ни у таблиц. Мы говорим об этом сразу, потому что узнать такое на третьей неделе пилота дороже, чем на первой минуте чтения. При этом задача «работать с документом с телефона» решается уже сегодня — и ниже показано, как именно. ## Что честно работает сегодня [Заголовок раздела «Что честно работает сегодня»](#что-честно-работает-сегодня) | Путь | Документы (A4) | Таблицы (F1) | | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------- | | Ядро на сервере, экраны ваши | Работает. Основной путь для телефона. | Работает. Основной путь для телефона. | | Ядро внутри приложения | Сквозной путь на Android пройден: открыть, изменить, сохранить. Набор операций узкий. На iOS работоспособность на устройствах ещё не заявляется. | Мобильной поставки нет ни на одной системе. | | Готовый мобильный интерфейс | Нет. | Нет. | Разбор всех четырёх подходов с их ценой — [Телефон и планшет](/f1/mobile/) и [где размещается A4](/a4/deployment/). ## Рабочий путь: ядро на сервере, экраны ваши [Заголовок раздела «Рабочий путь: ядро на сервере, экраны ваши»](#рабочий-путь-ядро-на-сервере-экраны-ваши) Смысл простой: телефон не считает документ, он его показывает. Тяжёлую работу делает то же самое ядро, но на вашем сервере — там, где у него есть память и где вы его контролируете. 1. **Поставьте ядро на свой сервер.** Тот же исполняемый файл, что и для настольного пути. Как он работает службой — [Процессор на сервере](/f1/server/) для таблиц, [Редактор в браузере](/a4/webhost/) для документов. 2. **Заведите у себя три адреса.** Это ваш обычный API, ничего особенного: ```plaintext POST /workbooks → открыть документ, вернуть номер сеанса POST /workbooks/{id}/commands → выполнить действие POST /workbooks/{id}/save → забрать готовый файл ``` Через них мобильное приложение и разговаривает с ядром. Наружу вы отдаёте свой номер сеанса, а внутренние имена ядра клиенту не показываете. 3. **Покажите документ на экране телефона.** Два способа, и оба ваши: * **окно просмотра веб-страниц внутри приложения** — тогда экран рисует оболочка редактора, и делать интерфейс не нужно; * **свои экраны на Swift или Kotlin** — тогда вы рисуете сами, а у ядра спрашиваете только содержимое. 4. **Возьмите узкий сценарий на первый пилот.** Не «весь Excel в кармане», а одна понятная задача: открыть книгу → найти и изменить нужный диапазон → сохранить. Такой пилот проходится и показывает настоящую цену работы. ## Чего ждать от телефона, а чего не ждать [Заголовок раздела «Чего ждать от телефона, а чего не ждать»](#чего-ждать-от-телефона-а-чего-не-ждать) * **Памяти меньше.** Большую книгу приходится держать в ней ещё меньшей частью, чем на компьютере. * **Система может выгрузить приложение из памяти**, пока оно в фоне, — вместе с открытым документом. Поэтому нужны контрольные точки и восстановление сеанса. * **Палец — не мышь.** Выделение, экранная клавиатура, жесты, компактная лента и диалоги под узкий экран — это отдельная работа, и она ваша. * **iOS и Android разные** в файлах, «Поделиться», работе без сети и разрешениях. ## Что появится и чего это ждёт [Заголовок раздела «Что появится и чего это ждёт»](#что-появится-и-чего-это-ждёт) Чтобы ядро поехало внутрь мобильного приложения, нужны две вещи: сборки под iOS и Android и мост между ядром и платформой. Ядро к этому готово — оно собирается библиотекой с интерфейсом на C, то есть тем, к чему такой мост и подключается. Самих сборок и моста пока нет, как нет и публичного мобильного набора для разработчика. Что из этого куда движется — [Что готовится дальше](/platform/roadmap/) и [Риски и честные границы](/platform/risks/). ## Дальше [Заголовок раздела «Дальше»](#дальше) Посмотреть, как это выглядит Живые примеры открываются в браузере телефона так же, как на компьютере. [Редактор](/a4/demo/) · [Таблица](/f1/demo/) Понять цену Что придётся сделать вам и что фиксируется договором до начала работы. [Пилот и приёмка](/platform/pilot/) [Встроить в веб-приложение](/start/web/)Тот же серверный путь, но для браузера — и там он проходится за один вечер. [Встроить в настольное приложение](/start/desktop/)Если у вас есть и настольная программа: ядро работает рядом с ней отдельным процессом. # Встроить в веб-приложение > Первые шаги для веб-продукта: что взять из поставки, что запустить у себя, какие четыре строки поставить на страницу — и какой экран увидит пользователь. У пользователя вашего продукта есть страница со списком файлов. Сегодня он нажимает «скачать» и уходит в чужую программу. После этих шагов он нажмёт «редактировать» и останется у вас: документ откроется прямо на странице, под вашим именем, а файл не покинет ваш контур. Ниже — путь целиком, без предположений о том, что вы уже что-то знаете о редакторах. Всё, что нужно сделать руками, помещается в четыре шага. ## Что должно быть у вас [Заголовок раздела «Что должно быть у вас»](#что-должно-быть-у-вас) Три вещи, и две из них у вас почти наверняка уже есть. | Что нужно | Что это значит человеческим языком | | ---------------------------- | ----------------------------------------------------------------------------------------------- | | Страница со списком файлов | Та самая, где сейчас стоит «скачать». Туда добавится «редактировать». | | Адрес «кто сейчас вошёл» | Ваш сервер отвечает, что за пользователь пришёл. Это ваш личный кабинет — он уже есть. | | Адрес «отдай файл по номеру» | Ваш сервер отдаёт сам документ тому, у кого есть право. Это ваше хранилище — оно тоже уже есть. | Своих учётных записей у редактора нет и не будет: он спрашивает у вас, кто пришёл, и верит вашему ответу. Пароли, роли и права остаются вашими. ## Четыре шага [Заголовок раздела «Четыре шага»](#четыре-шага) 1. **Возьмите ядро.** В поставке лежит один исполняемый файл — процессор документов. Никаких зависимостей ставить не нужно, это одна программа. Где она лежит после установки, сказано в [Установке и проверке](/a4/install/); дальше мы зовём её `$CLI`. 2. **Запустите службу у себя.** Одна команда на вашем сервере. Она поднимает маленький процесс, который слушает только локальный адрес — снаружи к нему не подключиться. ```bash FASTDOC_CLI_BIN="$CLI" \ WEBHOST_WS_DIR=/opt/fastdoc/webhost \ node webhost/cabin-manager.mjs \ --template /opt/fastdoc/blank.docx \ --docs-dir /opt/fastdoc/cabins \ --port 8090 \ --auth-url 'https://ваш-хост/api/me' \ --attach-url 'https://ваш-хост/api/files/{id}/content' ``` Два последних адреса — это те самые ваши «кто вошёл» и «отдай файл». Больше служба ничего о вашей системе не знает. 3. **Пропустите её через свой сервер.** Обычный проброс в nginx с одним обязательным условием: **переключение на WebSocket должно проходить**. Без него редактор не свяжется с ядром и покажет пустое место. Готовый образец настройки лежит в поставке. Редактор должен открываться по https и **на том же домене**, что и ваше приложение. Иначе браузер не отдаст ему ваши куки, и пользователь увидит «нужен вход» вместо документа. 4. **Поставьте рамку на страницу.** Четыре строки в том месте, где сейчас ссылка «скачать»: ```html ``` Вместо `document-id` подставьте номер файла из вашей же базы — тот, что вы и так знаете. ## Что увидит пользователь [Заголовок раздела «Что увидит пользователь»](#что-увидит-пользователь) Он нажимает «редактировать» и остаётся на вашем сайте. Открывается редактор с его документом: лента, страницы, курсор, всё как в привычной программе. Правит абзац, нажимает сохранить — и файл возвращается в ваше хранилище вашим же адресом, новой версией. Посмотреть, как это выглядит, можно прямо сейчас, не устанавливая ничего: [живой пример редактора](/a4/demo/) и [живой пример таблицы](/f1/demo/) — это работающие программы, а не снимки экрана. Одна вещь, на которой спотыкаются все Сохранённый файл приходит к вам как `multipart/form-data` — одной частью с именем `file`. Ваш обработчик обязан **разобрать** составное тело, а не записать его в файл целиком. Если записать целиком, документы будут портиться после каждого сохранения — молча, без единой ошибки в журнале. Это не выдуманная опасность: на ней споткнулся образец хоста в самой поставке. ## То же самое для таблиц [Заголовок раздела «То же самое для таблиц»](#то-же-самое-для-таблиц) Для книг XLSX путь такой же по смыслу: оболочка работает в браузере, процессор — на вашей стороне, между ними постоянное соединение. Подробно — [Среды выполнения F1](/f1/environments/). Есть и второй путь, которого у документов нет: **ядро таблиц собирается под WebAssembly и работает прямо в браузере**, на устройстве пользователя. Тогда ваш сервер отдаёт только страницу и файл, а считает всё браузер — ставить и обновлять на сервере нечего. Что это даёт и чего стоит — [Ядро в браузере](/f1/wasm/). ## Дальше, когда простого станет мало [Заголовок раздела «Дальше, когда простого станет мало»](#дальше-когда-простого-станет-мало) Первые шаги отвечают на вопрос «как открыть и сохранить». Дальше начинаются задачи посложнее, и для каждой есть свой набор вызовов. | Что вы хотите сделать | Куда смотреть | | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Собрать документ по шаблону: заголовки, таблицы, колонтитулы, оглавление | [Что A4 умеет с документом](/a4/capabilities/) | | Свести правки нескольких человек, принять или отклонить исправления | [Совместная работа над договором](/a4/capabilities/#%D1%81%D0%BE%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D0%BD%D0%B0%D0%B4-%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%BE%D0%BC) | | Разослать один документ по списку получателей из CSV | [Печать и выпуск](/a4/capabilities/#%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D1%8C-%D0%B8-%D0%B2%D1%8B%D0%BF%D1%83%D1%81%D0%BA) | | Посчитать книгу: формулы, сводные таблицы, запросы к данным | [Карта возможностей рядом с Excel](/f1/atlas/) | | Понять, по какому щелчку что происходит, и добавить своё меню | [Реакция на щелчки](/f1/interaction/) | | Точные имена всех вызовов с полями | [Справочник A4](/reference/a4/overview/), [Справочник F1](/reference/f1/overview/) | Проверить за 15 минут Ядро отвечает, ваш документ открыт и сохранён — до всякого встраивания. [Быстрый старт A4](/a4/quickstart/) Разобрать устройство Кто чем владеет, где проходят границы и почему у оболочки нет своей копии документа. [Редактор в браузере](/a4/webhost/) [Встроить в настольное приложение](/start/desktop/)Если ваш продукт — программа на компьютере, а не сайт: 1С, учётная система, своя оболочка.