Руководство пользователя

Инструкция по работе с сервисом генерации и обработки документов

AIVIO помогает быстро создавать документы по готовому шаблону и данным из Excel. Вместо ручного копирования текста вы загружаете файлы, запускаете обработку и получаете готовый комплект документов для скачивания.

На этой странице документация разделена на отдельные сценарии: генерация документов, конвертация КА в GGE и конвертация ВОР в GGE. У каждого сценария свои правила подготовки файлов, поэтому ниже они описаны отдельно и без смешения.

1 шаблон

Готовый документ становится основой для целой серии файлов.

1 Excel

Данные можно передать строками или столбцами; Aivio сам определит подходящий формат.

Готовый результат

После обработки вы скачиваете отдельный файл или архив с полным комплектом документов.

Схема основного сценария работы: шаблон, Excel, запуск обработки и скачивание результата
Наглядный сценарий работы: подготовьте шаблон, загрузите Excel, запустите обработку и скачайте готовый пакет документов.

Быстрый старт

Как начать пользоваться сервисом

Сначала определите, что именно вам нужно сделать: сгенерировать документы по шаблону, выполнить конвертацию КА в GGE или подготовить ВОР в формате GGE. Это разные сценарии с разными правилами подготовки Excel-файла.

Если нужна генерация документов

  1. Подготовьте шаблон документа.
  2. Подготовьте Excel: для обычной генерации укажите плейсхолдеры в первой строке, а для комплекта по столбцам — в первом столбце.
  3. Загрузите шаблон и Excel в сервис.
  4. Проверьте замечания на экране проверки и при необходимости подтвердите продолжение.
  5. Дождитесь обработки и скачайте итоговый файл или ZIP-архив.

Если нужна конвертация КА в GGE

  1. Подготовьте Excel-файл именно для конвертации по структуре КА.
  2. Проверьте, что файл содержит структуру КА: основной формат — 421/пр с изменениями 30/пр на 27 граф; legacy-файлы на 20 или 26 граф тоже распознаются с предупреждением.
  3. Загрузите файл в раздел конвертации и дождитесь проверки Excel.
  4. Если сервис показал предупреждения, проверьте их и при необходимости подтвердите продолжение.
  5. Запустите обработку и скачайте ZIP-архив с результатом.

Если нужна конвертация ВОР в GGE

  1. Подготовьте XLSX-файл ВОР по официальному фиксированному шаблону.
  2. Проверьте шапку ведомости, список файлов, разделы и строки работ.
  3. Убедитесь, что у каждой работы заполнены номер, наименование, единица измерения, объем и ссылка на страницу исходного файла.
  4. Загрузите файл в раздел «Конвертация ВОР» и дождитесь завершения обработки.
  5. Скачайте ZIP-архив с GGE-файлом результата.
Главный совет перед первым запуском

Не используйте один и тот же мысленный сценарий для всего сервиса. Генерация работает с шаблоном документа и своим Excel-файлом, конвертация КА в GGE использует структуру конъюнктурного анализа, а ВОР в GGE ожидает официальный XLSX-шаблон ведомости объемов работ.

Возможности сервиса

Что умеет сервис

Сервис рассчитан на повседневную работу с однотипными документами. Он избавляет от ручной подстановки данных и помогает быстрее получать итоговые файлы в нужном формате.

Генерация документов по шаблону

Сервис берет один подготовленный шаблон и автоматически подставляет в него значения из таблицы, сохраняя структуру и оформление документа.

Работа с Excel-данными

Таблица Excel используется как источник данных. Каждая строка описывает отдельный комплект информации для генерации.

Формирование итоговых файлов

После обработки вы получаете готовые документы по всем строкам Excel. При большом объеме результат может быть собран в архив для удобной загрузки.

Конвертация КА в GGE

Отдельный режим для Excel-файлов конъюнктурного анализа. Сервис проверяет структуру файла, формирует результат в формате GGE и отдает его в ZIP-архиве.

Конвертация ВОР в GGE

Отдельный режим для ведомостей объемов работ. Сервис принимает официальный XLSX-шаблон ВОР, формирует GGE-файл и упаковывает результат в ZIP-архив.

Скачивание результата

Итог появляется прямо в интерфейсе: вы можете скачать отдельный файл или архив и сразу передать документы дальше по рабочему процессу.

Генерация документов

Как проходит генерация документов шаг за шагом

Этот блок относится только к генерации документов по шаблону. Если вам нужна конвертация КА или ВОР в GGE, используйте отдельные разделы ниже: там другие Excel-файлы и другие правила подготовки.

  1. Подготовьте шаблон документа

    Используйте чистовую версию документа, которая уже содержит нужный текст, таблицы, подписи и оформление. Чем ближе шаблон к финальному виду, тем меньше ручных правок понадобится после генерации.

  2. Подготовьте Excel-файл с данными

    Соберите все значения в одной таблице. Первая строка содержит названия полей, а каждая следующая строка должна описывать отдельный документ или отдельный набор данных.

  3. Загрузите файлы в сервис

    Выберите шаблон и Excel-файл в форме загрузки. Перед запуском еще раз проверьте названия файлов, чтобы случайно не использовать устаревшую версию шаблона или таблицы.

  4. Запустите проверку файлов

    После нажатия кнопки сервис сначала проверит шаблон и Excel: сравнит плейсхолдеры, заголовки и покажет экран проверки, если найдет ошибки или предупреждения.

  5. Если нужно, подтвердите продолжение

    Если сервис показал только предупреждения, вы сможете посмотреть их и нажать «Продолжить несмотря на предупреждения». Если есть ошибки, сначала исправьте файлы и загрузите их заново.

  6. Дождитесь результата и скачайте его

    После подтверждения или если предупреждений нет, задача перейдет в обработку. В зависимости от выбранного режима вы получите один итоговый документ или ZIP-архив с файлами для скачивания.

Важно

Если результат выглядит не так, как ожидалось, причина чаще всего находится в шаблоне или Excel-файле. Перед повторным запуском проверьте именно исходные данные.

Генерация документов

Каким должен быть шаблон для генерации

Этот раздел относится только к генерации документов. Шаблон — это основа будущего файла, в который сервис будет подставлять данные из Excel. Для конвертации КА в GGE шаблон документа не требуется.

Образец шаблона для генерации документов с плейсхолдерами на латинице, кириллице и с морфологическими формами
Образец шаблона для генерации: в документе можно использовать плейсхолдеры на латинице и кириллице, а также морфологические формы, например для даты, ФИО и суммы.

Что должно быть в хорошем шаблоне

  • Готовая структура документа: заголовки, постоянный текст, таблицы, подписи и оформление.
  • Понятные места для подстановки значений из Excel.
  • Плейсхолдеры в шаблоне могут быть как на латинице, так и на кириллице.
  • Один единый стиль оформления без случайных шрифтов и лишних отступов.
  • Достаточно места для длинных фамилий, названий компаний, дат и сумм.

Что лучше проверить заранее

  • Открывается ли шаблон без ошибок и предупреждений.
  • Не осталось ли в документе старых данных от прошлой версии.
  • Не «плывут» ли таблицы и переносы строк при длинных значениях.
  • Используете ли вы именно финальную версию шаблона, а не промежуточный черновик.
Главное правило

Если шаблон уже настроен и в нем есть специальные места для автоматической подстановки данных, не удаляйте их и не меняйте их написание без необходимости.

Как писать плейсхолдеры

Плейсхолдеры можно использовать и на латинице, и на кириллице: например, {{name}}, {{contract_number}}, {{ФИО}}, {{Город}}. В обычном Excel те же названия указываются в первой строке без фигурных скобок. В Excel по столбцам плейсхолдеры указываются в первом столбце, можно с фигурными скобками.

Что желательно учитывать при подготовке

  • Лучше использовать копию уже проверенного шаблона, а не создавать новый с нуля перед срочной задачей.
  • Если в документе есть таблицы, заранее проверьте длинные строки, чтобы текст не выходил за границы ячеек.
  • Для первого теста подберите 2-3 строки Excel с разными типами данных: короткие, длинные, с датами и суммами.

Частые ошибки пользователей

  • Случайно удаляют место, куда сервис должен подставлять данные.
  • Меняют шаблон в спешке и не проверяют переносы строк после правок.
  • Оставляют в документе старые значения, которые затем попадают в готовый файл.
  • Используют несколько похожих версий шаблона и загружают не ту.

Генерация документов

Справочник по морфологии

Морфология работает только в генерации документов. Она нужна, когда одно и то же значение из Excel должно автоматически подставляться в разных формах: с инициалами, в нужном падеже, прописью или в специальном формате для даты и числа.

Базовый принцип

В Excel достаточно одной базовой колонки, например ФИО или Дата. В шаблоне вы можете использовать не только базовый плейсхолдер, но и его производные формы, например {{ФИО.кому}} или {{Дата.прописью}}.

Латиница и кириллица

Названия плейсхолдеров могут быть как на латинице, так и на кириллице. Например, одинаково допустимы {{name}}, {{client_name}}, {{ФИО}} и {{Организация}}.

Что важно помнить

Для морфологии не нужно заводить отдельные колонки под каждую форму. Если в Excel есть колонка ФИО, этого достаточно, чтобы в шаблоне использовать и {{ФИО}}, и {{ФИО.кого}}, и {{ФИО.инициалы}}.

Тип значения Что хранить в Excel Примеры плейсхолдеров в шаблоне
ФИО ФИО → Иванов Иван Иванович {{ФИО}}, {{ФИО.кому}}, {{ФИО.кого}}, {{ФИО.с_кем}}, {{ФИО.о_ком}}, {{ФИО.инициалы}}, {{ФИО.инициалы_перед}}, {{ФИО.инициалы.кому}}, {{ФИО.инициалы_перед.кому}}
Дата Дата → 19.03.2026 {{Дата}}, {{Дата.прописью}}, {{Дата.в_родительном}}, {{Дата.в_дательном}}, {{Дата.в_творительном}}, {{Дата.в_предложном}}
Число Сумма → 123 {{Сумма}}, {{Сумма.прописью}}, {{Сумма.цифрами_и_прописью}}
Организация или обычный текст Организация → ООО «Ромашка» {{Организация}}, {{Организация.кому}}, {{Организация.кого}}, {{Организация.с_кем}}, {{Организация.о_ком}}

Когда морфология особенно полезна

  • Когда одно и то же ФИО нужно в нескольких падежах.
  • Когда в документе нужны варианты с инициалами и без них.
  • Когда дату нужно выводить не цифрами, а словами.
  • Когда число должно подставляться и цифрами, и прописью.

Что система делает по умолчанию

  • Если использовать базовый плейсхолдер без суффикса, подставится исходное значение из Excel.
  • Если значение написано латиницей, сервис обычно подставляет его без склонения.
  • Для ФИО поддерживаются полная форма и варианты с инициалами.
  • Для морфологии важна правильная базовая колонка в Excel, а не количество дополнительных колонок.
Практическое правило

Сначала создайте и проверьте базовый плейсхолдер, например {{ФИО}} или {{Дата}}. После этого добавляйте производные формы: {{ФИО.кому}}, {{ФИО.инициалы}}, {{Дата.прописью}} и другие.

Генерация документов

Как подготовить Excel для генерации документов

Этот Excel-файл нужен именно для генерации документов по шаблону. Aivio автоматически определяет один из двух форматов: генерацию по строкам или генерацию комплекта по столбцам.

Схема структуры Excel-файла для генерации документов
В обычном формате первая строка содержит названия плейсхолдеров, а ниже располагаются данные для документов.
Схема Excel-файла для генерации комплекта документов по столбцам
В формате по столбцам первая строка содержит названия документов, первый столбец содержит плейсхолдеры, а каждый следующий столбец — данные для отдельного DOCX.

Вариант 1: генерация по строкам

  • Сервис начинает читать таблицу с первой строки.
  • В первой строке должны быть названия плейсхолдеров без фигурных скобок.
  • Названия плейсхолдеров в первой строке могут быть как на латинице, так и на кириллице.
  • Начиная со второй строки разместите сами данные.
  • Каждая следующая строка должна быть заполнена как единый набор данных для одного документа.
  • Один столбец — один тип данных: например, отдельно дата, отдельно номер, отдельно сумма.
Клиент Номер договора Дата Сумма
ООО Альфа 15-2026 05.04.2026 125 000
ООО Бета 16-2026 06.04.2026 98 500

Вариант 2: комплект по столбцам

  • Первая строка содержит названия будущих документов: например, Акт 001, Акт 002, Акт 003.
  • Первый столбец содержит плейсхолдеры шаблона, начиная со строки 2.
  • Плейсхолдеры можно писать с фигурными скобками: {{act_number}}, {{customer}}.
  • Каждый следующий столбец после первого — отдельный набор данных для отдельного DOCX.
  • Названия документов в первой строке не сравниваются с плейсхолдерами.
Заполнитель Акт 001 Акт 002
{{act_number}} 001 002
{{customer}} ООО Альфа ООО Бета
{{object_name}} Объект 1 Объект 2

Что проверить перед загрузкой

  • Файл сохранен в формате .xlsx или .xls. Для стабильной работы лучше использовать .xlsx.
  • Для генерации по строкам: в первой строке стоят названия плейсхолдеров, которые вы используете в шаблоне.
  • Для генерации по столбцам: в первом столбце, начиная со второй строки, стоят плейсхолдеры шаблона.
  • В таблице нет пустых строк между заполненными данными.
  • Нет объединенных ячеек, которые могут мешать чтению структуры.
  • Даты, суммы и номера записаны в одном формате по всей таблице.
  • В обязательных полях нет пустых значений и ошибок формул.

Как Aivio определяет формат

  • Если в первом столбце, начиная со второй строки, найдены плейсхолдеры вида {{...}}, сервис включает генерацию по столбцам.
  • Если таких плейсхолдеров нет, используется обычная генерация по строкам.
  • Выбирать режим вручную не нужно: достаточно правильно оформить Excel.
  • На странице проверки Aivio покажет, что именно он прочитал: заголовки Excel или названия документов и плейсхолдеры из первого столбца.
Простая самопроверка

Для генерации по строкам проверьте первую строку: там должны быть названия плейсхолдеров. Для генерации по столбцам проверьте первый столбец: там должны быть плейсхолдеры, а в первой строке — названия документов.

Этот Excel относится только к генерации

Если вам нужна конвертация КА или ВОР в GGE, не ориентируйтесь на этот пример. Для каждого сценария конвертации используется отдельный Excel-файл со своей структурой, и они описаны в разделах «Конвертация КА в GGE» и «Конвертация ВОР в GGE» ниже.

Что важно не забыть

  • Не добавляйте в середину таблицы комментарии, промежуточные заголовки и итоговые строки.
  • Если используете формулы, убедитесь, что они уже показывают итоговое значение, а не ошибку.
  • Избегайте случайных пробелов в названиях полей и в ключевых значениях.

Типичные ошибки в таблице

  • Одинаковые названия у разных столбцов.
  • Плейсхолдер для режима по столбцам случайно указан в первой строке, а не в первом столбце.
  • В первом столбце режима по столбцам есть лишний плейсхолдер, которого нет в DOCX-шаблоне.
  • Смешение текста и чисел в одном и том же поле.
  • Разный формат дат в соседних строках.
  • Часть строк заполнена не полностью, но все равно отправляется в генерацию.

Генерация документов

Что вы получаете после генерации

После успешной генерации сервис формирует один итоговый результат для скачивания. Его тип зависит от того, включена ли опция «Объединить документы в один файл».

Что формируется на выходе

Если включена опция объединения, сервис собирает один итоговый документ .docx. Если опция выключена, сервис формирует отдельные документы и упаковывает их в ZIP-архив.

Где скачать результат

После завершения обработки ссылка на скачивание появляется на странице статуса и на странице результата. Готовый результат также остается доступным в списке ваших документов.

Если результат не появился сразу

Подождите немного дольше, особенно если таблица большая. Если итог не появился, проверьте страницу статуса, затем шаблон, Excel и раздел с частыми ошибками. После завершения результат можно скачать позже из списка документов.

После скачивания

Откройте хотя бы 1-2 готовых документа и убедитесь, что даты, суммы, фамилии и переносы строк выглядят именно так, как вы ожидаете получить в финальном пакете.

Отдельный сценарий

Конвертация КА в GGE: отдельная инструкция

Этот раздел не относится к генерации документов по шаблону. Здесь описан отдельный сценарий, в котором сервис берет Excel-файл конъюнктурного анализа и преобразует его в формат GGE. Для этого сценария действует собственное правило структуры файла.

Схема конвертации: сервис ищет строку номеров колонок и ключевые заголовки Excel
Ключевое правило конвертации КА в GGE: сервис определяет структуру автоматически. Основной формат — КАЦ 421/пр с изменениями 30/пр на 27 граф; legacy-формы на 20 и 26 граф поддерживаются для совместимости.

Когда использовать конвертацию

  • Когда у вас уже есть Excel-файл КА и его нужно перевести в формат GGE.
  • Когда следующая система или рабочий процесс принимают именно GGE-файл.
  • Когда не нужна генерация документов по шаблону, а нужна именно конвертация структуры данных.

Какой Excel нужен для конвертации

  • Это отдельный Excel-файл, не тот пример, который используется для генерации документов.
  • Сервис ищет строку с номерами граф 1..27 для актуальной формы, а также 1..20 или 1..26 для legacy-файлов.
  • Заголовки могут быть выше или ниже строки номеров; фиксированное положение блока больше не требуется.
  • Допускаются пустые служебные Excel-столбцы между логическими колонками, если нумерация и ключевые заголовки остаются читаемыми.
  • В актуальной форме должны сохраняться графы индекса фактической инфляции / индекса по ГОСР и коэффициента пересчета в единицу измерения по графе 5.
  • Не меняйте смысл обязательных колонок без необходимости: номер, код ресурса, наименование, единица измерения, итоговая сметная цена без НДС, реквизиты поставщика и статус.
  • В колонке статуса допустимы только значения 1 или 2.

Как проходит конвертация

  1. Откройте раздел конвертации в сервисе.
  2. Загрузите правильный Excel-файл и дождитесь проверки структуры.
  3. Если сервис показал ошибки, исправьте файл и загрузите его заново. Если показаны только предупреждения, проверьте их и при необходимости подтвердите продолжение.
  4. После подтверждения откроется страница статуса, где можно отслеживать ход обработки.
  5. Когда обработка завершится, скачайте ZIP-архив с результатом.
Обязательное правило для КА в GGE

Сервис ориентируется на структуру таблицы, а не на фиксированный номер строки. Для нового файла используйте форму 421/пр с изменениями 30/пр на 27 граф. Формы на 20 и 26 граф распознаются как legacy и показывают предупреждение, но могут быть сконвертированы, если обязательные поля читаются.

Если появился экран проверки Excel

Это штатная часть сценария. Сервис показывает предупреждения, первые строки таблицы и найденные ошибки еще до запуска конвертации, чтобы вы могли исправить файл вовремя.

Отдельный сценарий

Конвертация ВОР в GGE: отдельная инструкция

Этот раздел относится к ведомости объемов работ. Для ВОР используется отдельный XLSX-шаблон и отдельная GGE-схема, поэтому файл КАЦ или произвольную таблицу работ сюда загружать не нужно.

Когда использовать ВОР в GGE

  • Когда у вас есть ведомость объемов работ в официальном XLSX-шаблоне.
  • Когда результат нужен в формате GGE для проверки или дальнейшей загрузки в рабочую систему.
  • Когда не нужна конвертация конъюнктурного анализа: ВОР и КАЦ обрабатываются разными сценариями.

Какой XLSX нужен

  • На текущем этапе поддерживается официальный фиксированный XLSX-шаблон ВОР.
  • В шапке должны быть заполнены основные сведения: стройка, объект, основание, дата, составитель и проверяющий.
  • В файле должен быть блок исходных файлов с идентификаторами и именами файлов.
  • Разделы и строки работ должны оставаться в структуре шаблона, без произвольной перестановки обязательных колонок.

Что обязательно для строки работы

  • Номер работы.
  • Наименование работы.
  • Единица измерения.
  • Количество или объем.
  • Ссылка на исходный файл, номер страницы и описание страницы.
  • Формула объема может быть пустой, но сама колонка должна оставаться в шаблоне.

Как проходит конвертация

  1. Откройте раздел «Конвертация ВОР» в боковом меню.
  2. Укажите понятное название файла, чтобы потом легче найти результат в «Моих документах».
  3. Загрузите XLSX-файл ВОР из официального шаблона.
  4. Выберите строгий режим или черновой режим с предупреждениями.
  5. Нажмите «Начать конвертацию ВОР» и дождитесь страницы статуса.
  6. После завершения скачайте ZIP-архив с GGE-файлом.

Чем ВОР отличается от КАЦ

  • КАЦ использует структуру конъюнктурного анализа и схему MarketAnalysis.
  • ВОР использует структуру ведомости объемов работ и схему QuantityTakeoff.
  • Файл КАЦ не подойдет для раздела ВОР, а файл ВОР не подойдет для раздела КАЦ.
  • Если вы сомневаетесь, какой раздел нужен, ориентируйтесь на исходный документ: конъюнктурный анализ открывайте в «Конвертация КА», ведомость объемов работ — в «Конвертация ВОР».
Обязательное правило для ВОР в GGE

Строгий режим используется по умолчанию. Черновой режим разрешает скачать только XSD-valid GGE с предупреждениями и не подставляет фиктивные реквизиты, даты или ссылки.

Перед первым запуском

Проверьте файл на небольшой ведомости: заполните шапку, один раздел, блок файлов и несколько строк работ. Так проще увидеть, что структура шаблона сохранена и результат формируется ожидаемо.

API и интеграции

Как использовать API для генерации и конвертации

Если вы хотите запускать обработку документов не через обычную форму сайта, а из CRM, внутреннего портала или другого сервиса, можно использовать API. Для этого нужен отдельный API-ключ, который создаётся в профиле пользователя.

Что можно делать через API

  • Запускать генерацию документов по шаблону DOCX и Excel-файлу.
  • Запускать конвертацию КА или ВОР из Excel в GGE.
  • Получать статус обработки и ссылку на скачивание результата.
  • Просматривать и отзывать свои API-ключи.

Как получить API-ключ

  1. Откройте профиль пользователя.
  2. Перейдите в раздел API-ключи.
  3. Создайте новый ключ с понятным названием, например для CRM или интеграционного бота.
  4. Сохраните токен сразу после создания: позже он полностью не показывается.
Важно

Токен API-ключа показывается только один раз в момент создания. Передавайте ключ в заголовке Authorization: Api-Key ВАШ_API_КЛЮЧ и не храните его в открытом коде, GitHub, публичных репозиториях или frontend-коде. Если ключ был раскрыт, перевыпустите его и отзовите старый.

Как считается лимит API

Запуски через API расходуют квоту API-вызовы, а не квоту Документы. Это относится и к генерации, и к конвертации через маршруты /api/documents/....

Как передавать авторизацию

API-ключ передаётся в каждом запросе через заголовок Authorization.

Authorization: Api-Key ВАШ_API_КЛЮЧ

Используйте этот же заголовок для запуска задачи, опроса статуса и скачивания готового архива.

Основные маршруты API

  • POST /api/documents/generate/ — запуск генерации.
  • GET /api/documents/generate/<archive_id>/status/ — статус генерации.
  • GET /api/documents/generate/<archive_id>/download/ — скачивание архива генерации.
  • POST /api/documents/convert/ — запуск конвертации.
  • GET /api/documents/convert/<conversion_id>/status/ — статус конвертации.
  • GET /api/documents/convert/<conversion_id>/download/ — скачивание архива конвертации.
  • GET /api/documents/keys/ — список ваших ключей.
download_url — это API-ссылка

Если просто открыть её в браузере, архив может не скачаться, потому что браузер не передаёт API-ключ в заголовке Authorization. Для скачивания используйте Python, curl, Postman или другой API-клиент.

Конвертация через API

  1. Отправьте Excel-файл запросом POST /api/documents/convert/.
  2. Для КА можно не передавать тип: по умолчанию используется conversion_type=market_analysis. Для ВОР передайте conversion_type=work_amount_sheet.
  3. API вернёт status_url.
  4. Периодически опрашивайте status_url с тем же заголовком авторизации.
  5. Когда status == "ok", status == "completed" или status == "completed_with_warnings", в ответе появится download_url.
  6. download_url ведёт на /api/documents/convert/<conversion_id>/download/.
  7. Скачайте архив отдельным GET-запросом с заголовком Authorization.

Генерация через API

  1. Отправьте шаблон DOCX и Excel запросом POST /api/documents/generate/.
  2. Aivio автоматически определит формат Excel: по строкам или по столбцам.
  3. API вернёт status_url.
  4. Периодически опрашивайте status_url с тем же API-ключом.
  5. Когда status == "ok", в ответе появится download_url.
  6. download_url ведёт на /api/documents/generate/<archive_id>/download/.
  7. Скачайте архив отдельным GET-запросом с заголовком Authorization.
Генерация по столбцам через API

Передавать отдельный параметр режима не нужно. Если в Excel в первом столбце, начиная со второй строки, стоят плейсхолдеры вида {{...}}, API запустит генерацию комплекта по столбцам. В стартовом ответе будет поле generation_mode со значением column_batch. Если проверка вернёт предупреждения, в ответе также будут document_titles и excel_placeholders.

Конвертация ВОР через API

Используйте тот же маршрут POST /api/documents/convert/, что и для КА, но добавьте параметр conversion_type=work_amount_sheet. Для ВОР можно передать validation_mode=strict или validation_mode=draft; строгий режим используется по умолчанию.

Python: конвертация КА и скачивание архива

import os import time from urllib.parse import urljoin import requests BASE_URL = "https://aivio.ru" API_KEY = os.environ["AIVIO_API_KEY"] headers = { "Authorization": f"Api-Key {API_KEY}", } def make_url(path_or_url: str) -> str: return urljoin(BASE_URL, path_or_url) with open("source.xlsx", "rb") as source_file: start = requests.post( make_url("/api/documents/convert/"), headers=headers, files={"file": source_file}, data={"conversion_type": "market_analysis"}, timeout=60, ) start.raise_for_status() status_url = make_url(start.json()["status_url"]) while True: status_response = requests.get(status_url, headers=headers, timeout=30) status_response.raise_for_status() status = status_response.json() if status["status"] in {"ok", "completed"}: download_url = make_url(status["download_url"]) archive_response = requests.get( download_url, headers=headers, timeout=120, stream=True, allow_redirects=False, ) archive_response.raise_for_status() with open("converted_archive.zip", "wb") as archive_file: for chunk in archive_response.iter_content(chunk_size=1024 * 1024): if chunk: archive_file.write(chunk) print("Архив сохранён: converted_archive.zip") break if status["status"] == "error": print("Ошибка:", status.get("message", "Неизвестная ошибка")) break time.sleep(2)

Пример запускает конвертацию, опрашивает status_url и скачивает ZIP-архив отдельным авторизованным запросом.

  • Ключ берётся из переменной окружения AIVIO_API_KEY, а не хранится в коде.
  • urljoin корректно работает и с относительными, и с абсолютными ссылками из API.
  • allow_redirects=False помогает увидеть неожиданный редирект вместо скачивания файла.

Python: конвертация ВОР и скачивание архива

import os import time from urllib.parse import urljoin import requests BASE_URL = "https://aivio.ru" API_KEY = os.environ["AIVIO_API_KEY"] headers = { "Authorization": f"Api-Key {API_KEY}", } def make_url(path_or_url: str) -> str: return urljoin(BASE_URL, path_or_url) with open("vor.xlsx", "rb") as source_file: start = requests.post( make_url("/api/documents/convert/"), headers=headers, files={"file": source_file}, data={ "title": "ВОР по объекту", "conversion_type": "work_amount_sheet", }, timeout=60, ) start.raise_for_status() status_url = make_url(start.json()["status_url"]) while True: status_response = requests.get(status_url, headers=headers, timeout=30) status_response.raise_for_status() status = status_response.json() if status["status"] in {"ok", "completed"}: download_url = make_url(status["download_url"]) archive_response = requests.get( download_url, headers=headers, timeout=120, stream=True, allow_redirects=False, ) archive_response.raise_for_status() with open("vor_gge_archive.zip", "wb") as archive_file: for chunk in archive_response.iter_content(chunk_size=1024 * 1024): if chunk: archive_file.write(chunk) print("Архив ВОР сохранён: vor_gge_archive.zip") break if status["status"] in {"error", "failed"}: print("Ошибка:", status.get("message", "Неизвестная ошибка")) break time.sleep(2)

Для ВОР используется тот же маршрут конвертации, но обязательно передаётся conversion_type=work_amount_sheet.

  • vor.xlsx должен быть файлом ВОР из поддерживаемого XLSX-шаблона.
  • title необязателен, но помогает найти результат в истории.
  • Готовый результат скачивается через download_url с тем же заголовком Authorization.

Python: генерация и скачивание архива

import os import time from urllib.parse import urljoin import requests BASE_URL = "https://aivio.ru" API_KEY = os.environ["AIVIO_API_KEY"] headers = { "Authorization": f"Api-Key {API_KEY}", } def make_url(path_or_url: str) -> str: return urljoin(BASE_URL, path_or_url) with open("template.docx", "rb") as template_file, open("data.xlsx", "rb") as data_file: start = requests.post( make_url("/api/documents/generate/"), headers=headers, files={ "template_file": template_file, "data_file": data_file, }, timeout=60, ) start.raise_for_status() status_url = make_url(start.json()["status_url"]) while True: status_response = requests.get(status_url, headers=headers, timeout=30) status_response.raise_for_status() status = status_response.json() if status["status"] == "ok": download_url = make_url(status["download_url"]) archive_response = requests.get( download_url, headers=headers, timeout=120, stream=True, allow_redirects=False, ) archive_response.raise_for_status() with open("generated_archive.zip", "wb") as archive_file: for chunk in archive_response.iter_content(chunk_size=1024 * 1024): if chunk: archive_file.write(chunk) print("Архив сохранён: generated_archive.zip") break if status["status"] == "error": print("Ошибка:", status.get("message", "Неизвестная ошибка")) break time.sleep(2)

Пример запускает генерацию документов, ждёт готового статуса и скачивает архив через API-ссылку с тем же ключом.

  • template_file — шаблон DOCX для генерации.
  • data_file — Excel-файл с данными.
  • download_url ведёт на /api/documents/generate/<archive_id>/download/.

Типичные ошибки API

Какие ответы API возвращает чаще всего

Ниже приведены самые типичные HTTP-статусы для интеграций. Они помогут быстрее настроить обработку ошибок на стороне CRM, бота или внутреннего сервиса.

Код Описание
400 — неверный запрос Причина: файл не прошёл предварительную проверку, отсутствуют обязательные поля, нарушен формат загрузки или есть предупреждения без подтверждения продолжения.
Решение: проверьте шаблон, Excel-файл и обязательные параметры запроса. Если API вернул списки errors или warnings, исправьте данные и повторите запрос. Если возвращены только предупреждения, отправьте запрос повторно с подтверждением force_warnings=true.
401 — ошибка аутентификации Причина: API-ключ отсутствует, передан с ошибкой, отозван или пользователь, связанный с ключом, недоступен.
Решение: проверьте заголовок авторизации и убедитесь, что используете действующий API-ключ. При необходимости создайте новый ключ в личном кабинете.
403 — доступ запрещён Причина: файл принадлежит другому пользователю или другому API-ключу, либо у пользователя исчерпан лимит API-вызовов по тарифу.
Решение: проверьте, что скачиваете результат, созданный этим же пользователем/API-ключом. Если проблема в лимите, проверьте доступную квоту в аккаунте.
404 — объект не найден Причина: указан неверный ID, файл ещё не создан, задача завершилась ошибкой или объект недоступен текущему пользователю.
Решение: проверьте archive_id или conversion_id, дождитесь статуса ok и только потом скачивайте архив.
500 — ошибка сервера Причина: при запуске генерации или обработке запроса на стороне сервиса произошёл внутренний сбой.
Решение: повторите запрос позже. Если проблема сохраняется, передайте в поддержку текст ошибки, пример запроса и request_id, если он был возвращён.
503 — сервис временно недоступен Причина: генерация документов временно отключена администратором или сервис находится в режиме ограничения доступа.
Решение: подождите и повторите запрос позже. Если доступ не восстанавливается, уточните статус сервиса у поддержки.

Ссылка открывается в браузере, но файл не скачивается

Это ожидаемо для защищённой API-ссылки. Браузер не передаёт заголовок Authorization, поэтому сервис может вернуть 401 или 403. Используйте Python, curl, Postman или другой API-клиент.

В Python получилась двойная ссылка

Если URL выглядит как https://aivio.ruhttps://aivio.ru/..., не склеивайте BASE_URL с download_url вручную. Используйте urllib.parse.urljoin, как в примере выше.

Пример ответа 202

{ "archive_id": 12, "status": "processing", "request_id": "req-ab12cd34", "task_id": "celery-task-id", "status_url": "/api/documents/generate/12/status/" }

Пример готового статуса

{ "archive_id": 12, "status": "ok", "download_url": "/api/documents/generate/12/download/" }

Пример ответа 400

{ "detail": "Файлы не прошли предварительную проверку.", "errors": [], "warnings": ["Лишняя колонка extra"], "can_force": true }

Пример ответа 401

{ "detail": "Неверный API ключ." }

Пример ответа 404

{ "detail": "Архив не найден." }
Практический совет

Сначала проверьте интеграцию на тестовом шаблоне и маленьком Excel-файле из 1-2 строк. Так проще убедиться, что внешний сервис правильно формирует запросы и обрабатывает ответы API.

Частые ошибки

Что делать, если что-то пошло не так

Большинство проблем можно решить без помощи разработчика. Ниже собраны ошибки отдельно для генерации и для конвертации, чтобы было проще быстро найти свой сценарий.

Файл не загружается

Проверьте, что файл не поврежден, полностью сохранен и открывается на вашем компьютере. Для Excel поддерживаются .xlsx и .xls, а шаблон для генерации должен быть в формате .docx.

Шаблон не подходит

Скорее всего, в шаблоне не хватает нужных мест для подстановки данных, случайно удалены рабочие элементы или используется старая версия документа. Возьмите проверенный шаблон и протестируйте его на небольшой таблице.

Excel для генерации заполнен неверно

Если используете генерацию по строкам, проверьте названия столбцов в первой строке. Если используете генерацию по столбцам, проверьте плейсхолдеры в первом столбце и названия документов в первой строке. Также проверьте пустые ячейки, формат дат и отсутствие объединенных ячеек.

Не распознана структура Excel для конвертации

Для конвертации сервис ищет структуру на 27 граф по актуальной форме 421/пр с изменениями 30/пр или legacy-структуры на 20/26 граф. Если номера граф удалены, заголовки сильно переименованы или таблица содержит другой набор колонок без поддерживаемого маппинга, обязательные колонки не будут распознаны.

Генерация не запускается

Убедитесь, что оба файла загружены полностью. После отправки сервис может показать страницу проверки: если там есть ошибки, их нужно исправить; если есть только предупреждения, можно проверить их и продолжить запуск.

Конвертация не запускается

Проверьте, что вы загрузили Excel именно в раздел конвертации. Если сервис показывает экран проверки, посмотрите ошибки по структуре файла, обязательным колонкам и значениям статуса: в этой колонке допустимы только 1 или 2.

ВОР не конвертируется

Проверьте, что файл загружен в раздел «Конвертация ВОР» и подготовлен по официальному XLSX-шаблону. Для ВОР важны шапка ведомости, блок исходных файлов, разделы, строки работ и ссылки на страницы исходных файлов.

Результат пустой

Чаще всего это означает, что сервису не удалось найти нужные данные в таблице или связать их с шаблоном. Проверьте соответствие шаблона и Excel, затем выполните тест на 1-2 строках.

Не скачивается результат

Проверьте интернет-соединение, попробуйте скачать файл повторно и убедитесь, что браузер не блокирует загрузку. Если скачанный файл не открывается, сначала проверьте исходные файлы, а затем повторите запуск.

Если ошибка повторяется

Не запускайте одну и ту же задачу много раз подряд без проверки файлов. Гораздо быстрее открыть шаблон и Excel, найти неточность и повторить запуск уже на исправленной версии.

FAQ

Популярные вопросы и короткие ответы

Если вам нужен быстрый ответ без длинной инструкции, начните с этого раздела. Здесь собраны вопросы, которые чаще всего возникают у пользователей при первой работе с сервисом.

Нужно ли готовить отдельный Excel для каждого документа?

Нет. В обычном формате один Excel содержит много строк, и каждая строка соответствует отдельному документу. В формате по столбцам один Excel содержит много столбцов, и каждый столбец после первого соответствует отдельному документу. Для конвертации КА и ВОР используются другие, отдельные Excel-сценарии.

Нужно ли выбирать режим генерации вручную?

Нет. Aivio определяет режим автоматически. Если плейсхолдеры вида {{...}} находятся в первом столбце начиная со второй строки, будет использован режим по столбцам. В остальных случаях используется обычный режим по строкам.

Можно ли загрузить сразу большой список данных?

Да, но для первой проверки лучше использовать небольшой тестовый набор. Так легче убедиться, что шаблон и таблица подготовлены правильно.

Поддерживаются ли старые файлы Excel формата .xls?

Да, сервис принимает .xls и .xlsx. Для стабильной работы лучше заранее пересохранить таблицу в .xlsx.

Нужен ли шаблон документа для конвертации КА в GGE?

Нет. Шаблон документа нужен для генерации. Для конвертации КА в GGE используется только корректно подготовленный Excel-файл.

Можно ли загрузить ВОР в раздел конвертации КА?

Нет. ВОР и КАЦ используют разные структуры и разные GGE-схемы. Для ведомости объемов работ используйте раздел «Конвертация ВОР», а для конъюнктурного анализа — «Конвертация КА».

Можно ли использовать произвольную таблицу ВОР?

На текущем этапе нужен официальный фиксированный XLSX-шаблон ВОР. Произвольные таблицы могут не содержать обязательных блоков и ссылок, поэтому сервис не сможет надежно собрать GGE-файл.

С какой строки должна начинаться таблица при конвертации КА в GGE?

Фиксированной строки больше нет. Сервис автоматически ищет структуру таблицы по номерам граф 1..27 для актуальной формы или 1..20/1..26 для legacy-форм и ключевым заголовкам. Таблица может начинаться выше или ниже, если эти признаки сохранены.

Почему даты или суммы в результате выглядят не так, как ожидалось?

Обычно причина в формате данных в Excel. Проверьте, одинаково ли записаны даты и числа во всей таблице.

Что делать, если после загрузки появилась страница проверки?

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

Можно ли использовать один и тот же шаблон много раз?

Да. Если шаблон уже проверен и дает правильный результат, лучше сохранить его как рабочий образец и использовать повторно.

Что меняет опция «Объединить документы в один файл»?

Если опция включена, сервис собирает один итоговый документ. Если выключена, он формирует отдельные документы и упаковывает их в ZIP-архив.

Можно ли сначала проверить только один документ?

Да, это даже желательно. Для генерации по строкам оставьте в Excel 1-2 строки данных. Для генерации по столбцам оставьте 1-2 столбца документов после первого столбца с плейсхолдерами. Выполните тестовую генерацию и только потом запускайте полный пакет.

Нужно ли держать страницу открытой, пока идет обработка?

Не обязательно. Готовый результат сохраняется в сервисе и после завершения его можно скачать повторно со страницы результата или из списка документов. Для первого запуска просто удобнее дождаться завершения в текущей вкладке.

Что подготовить, если придется обращаться в поддержку?

Возьмите шаблон, Excel-файл, скриншот ошибки и короткое описание шага, на котором возникла проблема. Это значительно ускорит разбор ситуации.

Полезные советы

Как уменьшить количество ошибок и ускорить работу

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

Тестируйте на маленьком наборе данных

Первые запуски лучше делать на нескольких строках Excel. Так вы быстрее поймете, все ли работает правильно, и не потратите время на повторную сборку большого пакета документов.

Храните проверенные шаблоны отдельно

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

Следите за единым форматом данных

Когда в одной колонке все значения оформлены одинаково, сервису проще корректно собрать итоговый документ. Особенно это важно для дат, номеров и сумм.

Проверяйте длинные значения заранее

Фамилии, адреса, названия компаний и большие суммы могут вести себя иначе, чем короткие примеры. Лучше заметить это в тесте, чем после полной генерации.

Называйте файлы понятно

Ясные названия помогают не перепутать шаблон, Excel и итоговый архив. Особенно удобно, если в названии есть дата или версия.

Сразу проверяйте результат

Не откладывайте проверку до конца дня. После скачивания откройте несколько документов сразу, пока исходные файлы и контекст задачи еще под рукой.

Помощь

Что делать, если проблема не решилась

Если вы уже проверили шаблон, Excel и рекомендации выше, но задача все равно не выполняется корректно, лучше сразу обратиться в поддержку с подготовленной информацией.

Когда стоит писать в поддержку

Обращайтесь, если загрузка проходит, но результат не формируется; если ошибка повторяется даже после исправления файлов; или если итоговый документ системно отличается от ожидаемого результата.

Чем точнее вы опишете ситуацию, тем быстрее специалисты смогут воспроизвести проблему и подсказать решение. В большинстве случаев достаточно короткого описания и исходных файлов, с которыми возникла сложность.

Что приложить к обращению

  • Шаблон документа, если проблема связана с генерацией.
  • Excel-файл, который вы использовали для генерации или конвертации.
  • Скриншот ошибки или описание того, что пошло не так.
  • Указание, на каком шаге возникла проблема: загрузка, генерация, скачивание или конвертация.
  • Один пример того, как должен выглядеть правильный результат.