﻿# Версионность структур в ELMA365

> [HTML Version](elma365-structure-versioning.html)

Поддержка версионности позволяет создавать историю версий структуры и восстанавливать предыдущий вариант настроек, например при возникновении ошибки в текущей версии. 

В ELMA365 версии создаются для следующих структур:

- решение;

- раздел и страница раздела, которая открывается при переходе пользователя в раздел;

- модуль и метод API, заданный в модуле;

- страница, созданная на уровне компании или раздела;

- приложение и страница приложения, которая открывается, если пользователь нажимает на название приложения в левом меню;

- [контракт](contract.md) и страница контракта;

- компонент [Отчет](report.md);

- форма, настроенная в дизайнере интерфейсов;

- виджет;

- бизнес-процесс;

- шаблон документа;

- дело в настройках номенклатуры.

````
начало внимание

````
Чтобы активировать сохранение версий для структур системы, включите фича-флаг `allowVersionsSnapshots`. Подробнее читайте в статьях [«Изменение параметров ELMA365 Enterprise»](change-settings-enterprise.md#enable-feature-flag-enterpeise) и [«Изменение параметров ELMA365 Standard»](change-elma365standard-parameters.md#enable-feature-flag-standard). Если вы используете поставку SaaS, для включения фича‑флага обратитесь к вашему менеджеру ELMA365.

````
конец внимание

## ````
Создание и хранение версий структур

Версия структуры может быть добавлена при разных действиях: создание структуры, изменение её настроек, импорт или обновление структуры и др. Для каждого компонента системы — свой набор действий, с которым можно ознакомиться в  таблице ниже.

Чтобы перейти к списку версий любой структуры, в разделе [Администрирование > Инструменты разработчика](configuration-versioning.md#working-with-versions) выберите пункт **Управление версиями конфигурации**. Вы увидите дерево конфигурации. Выберите нужный компонент, справа от его названия нажмите значок трёх точек и нажмите **Версии**. 

Подробная информация о создании версий каждой структуры и других доступных способах перехода к истории версий представлена в таблице.

## Условия создания версий и переход к истории версий

| | | |
|------|------|------|
| **Структура** | **Когда создаётся версия** | **Как перейти к списку версий** |
| Решение | Автоматически — при импорте или обновлении структуры. Версия раздела также добавится при его копировании.<br>Вручную — если [зафиксировать версию структуры](configuration-versioning.md#fix-version). | Только в разделе **Администрирование > Инструменты разработчика**. |
| Раздел | | 
| Модуль | | 
| Страница раздела | При создании раздела и изменении [его настроек](360006965372.md). | В меню настроек раздела выберите пункт **Дополнительно > История версий страницы**. |
| Метод API, заданный в модуле | При публикации изменений метода API. | Только в разделе **Администрирование > Инструменты разработчика**. |
| Страница, созданная на уровне компании или раздела | При следующих действиях:<br>- создании страницы;<br>- добавлении первого виджета на страницу;<br>- изменении [настроек страницы](360009924451.md#visibility). | Только в разделе **Администрирование > Инструменты разработчика**. |
| Приложение, страница приложения | При создании приложения и изменении [его настроек](app-versioning.md). | В меню настроек приложения** **выберите** **пункт [Дополнительные > История версий](app-versioning.md#version-history). |
| Контракт, страница контракта | При создании контракта, изменении его настроек и полей, а также создании новой версии приложения-источника.<br>Подробнее читайте в статье [«Настройки контракта»](contract-settings.md#version-history). | В меню настроек контракта выберите пункт **История версий:**<br>- на вкладке **Контракт** доступны версии контракта;<br>- на вкладке **Страница** — версии страницы контракта, которые создаются независимо от версий контракта. |
| Отчёт | При создании отчёта, а также изменении настроек отчёта, источника или таблицы.<br>Подробнее читайте в статье [«Создать и настроить отчёт»](create-report.md#versions). | В списке настроек отчёта выберите пункт **Дополнительно > История версий**. |
| Форма, виджет | При публикации изменений формы приложения или виджета в дизайнере интерфейсов.<br>Если отредактирована форма, используемая в бизнес-процессе, её новая версия добавится после публикации процесса. | Откройте форму в дизайнере интерфейсов или [конструктор пользовательского виджета](user_widgets.md#custom-widget-constructor) и перейдите на вкладку **История**. |
| Бизнес-процесс | При публикации процесса в дизайнере бизнес-процессов. | В дизайнере бизнес-процессов перейдите на вкладку **Настройки > История версий**.  |
| Шаблон документа | Если вы добавляете или изменяете шаблон документа — файл с заданным синтаксисом для подстановки переменных, который можно использовать в бизнес‑процессе. | В зависимости от того, где создан шаблон, перейдите:<br>- в раздел **Администрирование > Шаблоны документов**;<br>- в меню настроек раздела или приложения. Затем выберите пункт **Шаблоны документов**.<br>На открывшейся странице нажмите значок трёх точек напротив нужной записи, а затем — **История версий**. |
| Дело в настройках номенклатуры | При создании и изменении [настроек дела](records_classification.md#settings). | В разделе **Администрирование > Настройки номенклатуры**, выберите дело и напротив его названия нажмите значок трёх точек, а затем — [История версий](records_classification.md#versions-of-nomenclature).  |


````
Начало примечание

````
**Примечание**

При импорте или обновлении решения также добавится новая версия структуры, которая входит в состав решения, если настройки структуры отличаются от текущих.

Исключением является раздел, модуль и методы API в составе решения — их новые версии не будут созданы.

````
Конец примечание

## ````
Действия в истории версий

В списке версий структуры текущая версия обозначена значком галочки (elma365-structure-versioning-3.png). Вы можете просмотреть дату и автора изменений, при сохранении которых создана версия, а также комментарий.

Если версия структуры создана в процессе импорта или обновления, комментарий сформируется автоматически с указанием выполненного процесса: **Импорт** или **Обновление**.

**(configuration-versioning-3.png)**

Чтобы открыть меню допустимых действий с версией, выберите её в списке и нажмите значок **три точки**. Вы можете:

- **Редактировать** — изменить название версии решения, раздела или модуля и комментарий к ней;

- **Показать состав** — отобразить дерево компонентов в составе решения, раздела или модуля;

- [Сравнить с текущей](#compare-with-current) — просмотреть прежнюю и текущую версии в формате JSON;

- **Скачать файл** — загрузить версию в виде файла формата **.е365**. Такие файлы версий можно сравнить во внешнем текстовом редакторе, например в Visual Studio Code. Не применяется для версий решения, раздела и модуля;

- **Удалить версию** — доступно только для предыдущих версий. Позволяет очистить историю и удалить ненужные версии безвозвратно. Не применяется для решений, разделов, модулей, форм, виджетов, бизнес-процессов и дел номенклатуры;

- **Снять с публикации** — используется для опубликованных версий формы и виджета;

- **Восстановить версию** — сделать текущей одну из предыдущих версий. Например, если возникла ошибка и у вас нет времени на её решение, вы можете откатить текущую версию. При этом создётся новая версия. Например, текущая версия имеет номер 4, и вы хотите восстановить версию 2. Тогда создаётся версия 5, идентичная версии 2.

## Сравнить версии структуры

Чтобы просмотреть различия версий:

1. В строке с целевой версией, которую хотите восстановить, нажмите значок **три точки** и выберите **Сравнить с текущей**.

2. Откроется вкладка **side-by-side**, на которой размещено содержание двух версий в формате JSON. Различия на ней выделены цветом.

**(elma365-structure-versioning-4.png)**

3. Вы можете сразу отобразить только различия версий. Для этого перейдите на вкладку **inline**. Здесь красным цветом подсвечено содержимое текущей версии, зелёным — целевой версии. 

**(elma365-structure-versioning-5.png)**

4. Чтобы сделать целевую версию текущей, на любой вкладке нажмите **Восстановить версию**.