Перейти к содержанию

Импорт конфигурации

Импорт конфигурации используется для загрузки настроенных объектов из другого экземпляра системы "Первая Форма".

ℹ️ Для работы механизма необходимо соблюдать условие, что на площадке-приемнике не создаются никакие сущности (за исключением пользователей, орг.структуры и групп пользователей), и все настройки попадают в базу только через механизм переноса. Это позволит предотвратить конфликты переносимых данных. Если на площадке-приёмнике уже создавались сущности и идентификаторы расходятся с источником, используйте режим «Импортировать без сохранения идентификаторов».

ℹ️ Рекомендуется использовать одинаковую версию платформы на площадке-источнике и площадке-приёмнике. Начиная с версии 2.268 поддерживается кросс-версионный перенос: при расхождении версий утилита автоматически создаёт заглушки для недостающих зависимостей (категории, группы, справочники) и выполняет сопоставление сущностей по GUID через linq2db. Если на площадке-приёмнике отсутствуют таблицы или колонки из более новой версии, необходимо предварительно выполнить миграцию схемы (dbdeploy)

Порядок действий:

1. Нажмите кнопку Выбрать файл миграции. Выберите файл (архив) с данными для импорта.

2. При необходимости включите дополнительные опции:

Название Описание
Нужна денормализация переносимых категорий Выполнение денормализации категорий, которые участвуют в импорте. Рекомендуется включать при переносе категорий, в которых добавлены новые дополнительные поля (ДП) — без денормализации данные задач по этим полям могут отображаться некорректно. Опция гарантированно применяется при полном переносе категории. Если импортируются только отдельные объекты категории, например новые дополнительные поля и блоки, автоматическая денормализация может не обновить структуру денормализованной таблицы для этой категории. В таких случаях после импорта нужно вручную выполнить денормализацию категории
Загружать все резолюции По умолчанию при переносе категории вместе с ней не импортируются резолюции, которые используются в подписях на переходах.
Настройка позволяет опционально импортировать резолюции подписей вместе с отмеченными категориями
Импортировать как новые сущности Если настройка активна, все объекты будут создаваться на базе-приемнике с новым GUID и новым ID. В качестве ID создавшего версию пользователя будет указан ID служебной учетной записи Робот 1Ф (Systemrobot). Используется при переносе сущностей при развертывании новой системы с разными базами.
Исключения:
-Системные статусы: Новая, Выполняется, Завершена, Отклонена — не создается дубликат
-Группы Administrators, Исключить из чатов, Включить в чаты — проверяется по ID в общих настройках приложения
Импортировать без сохранения идентификаторов > ℹ️ Эта опция доступна только в CLI-режиме и недоступна в веб-интерфейсе.
Если настройка активна, сущности сопоставляются по GUID. Существующие на площадке-приёмнике объекты обновляются с сохранением их ID. Новые объекты вставляются с ID, назначенным генератором площадки-приёмника (без IDENTITY_INSERT). После импорта выполняется замена идентификаторов в смарт-выражениях и ремап ссылок в JSON-полях порталов. При импорте без сохранения идентификаторов система автоматически заменяет ID в поле Параметр смарт-правил (EventsActions.ParameterValue). Это обеспечивает корректную работу правил, ссылающихся на переходы, ДП и другие переносимые сущности, — их ID приводятся в соответствие с целевой базой. Используется для переноса обновлённой конфигурации на площадку с расходящимися ID (типичный сценарий: dev → prod). Взаимоисключающий с опцией «Импортировать как новые сущности» — нельзя включить обе одновременно. Доступна только через CLI (ключ -iowki) и WinForms-утилиту; в веб-интерфейсе (SPA) не поддерживается.

ℹ️ Для денормализации сводного раздела при импорте конфигурации необходимо активировать опцию Нужна денормализация переносимых категорий

В режимах «Импортировать как новые сущности» и «Импортировать без сохранения идентификаторов» утилита после импорта автоматически обновляет внутренние ID-ссылки в JSON-полях конфигурационных сущностей. Это важно для порталов и виджетов: в шаблонах порталов пересчитываются ссылки на блоки в TemplateJson, Dashboard, Mesh, а также связанные PortalId/BlockId в TypeParams блоков. Благодаря этому после переноса портал продолжает корректно открываться и отображать виджеты.

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

  • Название — название переносимой сущности. Большинство переносимых объектов не имеют отдельного названия с переводом.

  • Таблица — наименование таблицы БД, в которую переносится сущность.

  • GUID — GUID переносимого объекта.

  • Статус — статус переноса.

Опция Показать только изменяемые скрывает записи в статусе "Без изменений".

Для записей со статусом «Обновить» результат проверки может содержать список изменённых полей объекта. Эти данные используются для детального анализа отличий между импортируемой сущностью и сущностью на площадке-приёмнике до запуска импорта. Для записей со статусами «Добавить», «Конфликт» и «Без изменений» список изменённых полей не формируется.

Таблица со списком переносимых сущностей поддерживает фильтрацию и сортировку.

В процессе анализа переносимых сущностей им может быть присвоен один из четырех статусов:

  • Добавить — объект отсутствует в источнике и будет добавлен.

  • Обновить — объект присутствует в источнике, но будет обновлен.

  • Конфликт — объект с данным идентификатором уже присутствует в приёмнике, загрузка невозможна.

  • Без изменений — объект в приемнике и источнике идентичный, и останется без изменений.

Нажмите кнопку Импортировать. Импорт осуществляется с сохранением Id.

В процессе импорта утилита просматривает список зависимых сущностей, которые не были включены в экспорт, но на которые ссылается какая-либо из импортируемых сущностей. При этом целевая база проверяется на наличие в ней перечисленных зависимых сущностей. Сопоставление выполняется не только по ID, но и по GUID — если ID разные, а GUID одинаковый, сущности будут сопоставлены корректно. Если какие-то зависимые сущности не найдены, выдается сообщение об ошибке. Пока такие ошибки обнаруживаются, процесс импорта не начинается.

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

Полезные ссылки

Экспорт конфигурации

Работа с переносом конфигурации из командной строки

Утилита переноса (сквозной механизм)