Обновление данных приложения для новой версии проекта
В процессе развития проекта возникают ситуации, когда при переходе на новую версию проекта нужно обновить данные, которые содержатся в приложении.
Например, в предыдущей версии в регистре сведений Заявки в реквизите Ответственный сохранялась ссылка на пользователя, который принял решение по данной заявке. Но выяснилось, что после удаления пользователя из приложения исчезает и информация о том, какой именно пользователь принимал решение по данной заявке. Чтобы это исправить, в новой версии разработчики добавили в регистр еще один реквизит — ОтветственныйСтрокой типа Строка
. Теперь, чтобы существующие данные приложения адаптировать к новой логике, нужно обойти все заявки и в нов ый реквизит ОтветственныйСтрокой записать ФИО того пользователя, который указан в реквизите Ответственный.
Другой пример — когда приложение содержит какие-то стандартные классификаторы, которые обновляются со временем. При переходе на новую версию проекта нужно обновить тот классификатор, который уже используется в приложении.
Для решения подобных задач предназначен элемент проекта вида Проект и аннотации @НастройкаПриложения
и @ОбновлениеПроекта
. Ими следует помечать методы-обработчики, осуществляющие первоначальную настройку приложения, и методы-обработчики, осуществляющие обновление данных, соответственно. Эти события вы можете обработать в модуле проекта.
Элемент проекта вида «Проект»
Элемент Проект описывает все приложение в целом. «1С:Шина» автоматически создает такой элемент в новом проекте. Он расположен в самом верху проекта.
Тип «Проект»
Для проекта целиком «1С:Шина» создает один тип встроенного языка — Проект
. Этот тип доступен и на сервере, и на клиенте.
Этот тип не имеет конструктора и имеет единственный экземпляр, который доступен как свойство глобального контекста:
// Получить менеджера проекта
пер МенеджерПроекта = Проект
Модуль проекта
В проекте модуль, расширяющий тип Проект
, называется модулем проекта. Он исполняется на сервере.
В этот модуль вы можете добавить обработчики первоначальной настройки и обновления данных приложения.