Жизненный цикл проекта

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

Для модификации проектов нужно использовать среду разработки. Она не работает «сама по себе», а только во взаимодействии с конкретным приложением, существующим на сервере.

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

Изменение существующего проекта

Мы рекомендуем создать копию работающего приложения, доработать ее, а после этого обновить работающее приложение. Создать копию работающего приложения можно двумя способами.

Способ 1. Если для доработки вам не нужны данные, которые содержатся в работающем приложении, или если у вас есть архив проекта работающего приложения, то можно:
Способ 2. Если для доработки вам нужна полная копия работающего приложения с данными, то тогда:
  • сделайте резервную копию приложения (без списка пользователей);
  • затем создайте приложение из выгрузки.

Изменение проекта

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

Разработчик открывает панель управления и нажимает Редактировать. В результате этого «1С:Шина» открывает в браузере разработчика среду разработки, выгружает проект с сервера и открывает его в среде разработки.

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

Обновление приложения

Процесс обновления приложения имеет фиксированный жизненный цикл, при котором приложение переходит из одного состояния в другое. «1С:Шина» отображает текущее состояние приложения в панели управления.

Если все хорошо, то в процессе обновления приложение последовательно пройдет через следующие состояния:
  • Остановлено
  • Обновляется
  • Обновлено
  • Остановлено
  • Запускается
  • Запущено
При переходе приложения из состояния Обновляется в Обновлено «1С:Шина» выполняет ряд критичных действий:
  • Проверяет проект, который был загружен на сервер.
  • Выполняет миграцию данных приложения, если это необходимо. Миграция данных может потребоваться в двух случаях:
    • Если новый проект использует другие структуры данных — например, существующему справочнику был добавлен новый реквизит.
    • Если после создания приложения был обновлен сервер и в новой версии сервера изменилась структура системных таблиц «1С:Шины».
Совет: По разным причинам обновление приложения может закончиться ошибкой. В этом случае приложение перейдет в состояние Ошибка и будет ожидать проект без ошибок. Чтобы вернуть приложение в работоспособное состояние, проанализируйте сообщение сервера, исправьте ошибку в проекте (или откатите назад несколько своих изменений) и снова опубликуйте проект либо запустите его.

Обновление данных приложения

После успешного обновления проекта сервер запускает приложение. При запуске приложения «1С:Шина» вызовет методы, осуществляющие обновления данных приложения (при условии, что они есть, и при условии, что они не были вызваны ранее). Данные методы следует расположить в модуле проекта и пометить аннотацией @ОбновлениеПроекта (подробнее).

Сохранение новой версии проекта на сервере

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