Обновление конфигураций через несколько релизов

Постараемся объяснить, почему не стоит обновляться через несколько релизов.

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

1. В релизе конфигурации 3.0.22.5 информация о контактных лицах контрагента хранилась в табличной части «КонтактныеЛица» справочника «Контрагенты»

2. В релизе 3.0.23.2 разработчик решил поменять структуру хранения информации о контактных лицах и создал справочник «КонтактныеЛица», который подчинен справочнику «Контрагенты». Важно: изменения структуры и написание программного кода делаются разработчиком в режиме Конфигуратора. Но у пользователей уже могли быть заполнены данные в базе (в релизе 3.0.22.5) и они хранятся табличной части. Поэтому разработчику необходимо в релизе 3.0.23.2 сделать так, чтобы после обновления эти данные из табличной части перенеслись в новый справочник. И вот тут ключевой момент:

перенос данных разработчик может сделать только написав специальный программный код, который выполняется после запуска конфигурации В РЕЖИМЕ 1С:Предприятие (НЕ в режиме Конфигуратора). Т.е. когда мы делаем обновление в конфигураторе, то меняются структура хранения данных, программные модули и формы, а вот выполнение программного кода может произойти только в режиме работы пользователя – в режиме 1С:Предприятия.

Поэтому разработчик пишет специальную процедуру в релизе 3.0.23.2 (обработчик обновления), которая выполнится при запуске конфигурации в режиме 1С:Предприятие у пользователя после обновления. В нашем случае это перенос данных из табличной части «КонтактныеЛица» справочника «Контрагенты» -> справочник «КонтактныеЛица».

3. В релизе 3.0.24.3 разработчик удаляет из структуры конфигурации табличную часть «КонтактныеЛица» (она уже не нужна, т.к. данные перенесены) из справочника Контрагенты. Так как табличная часть удалена из структуры конфигурации, то у пользователей, после обновления на релиз 3.0.24.3, не будет данных в этой табличной части.

А теперь представим, что произойдет если сделать обновление с 3.0.22.5 сразу на 3.0.24.3 (этап 2 пропускается): добавляется новый справочник «КонтактныеЛица» и одновременно удаляется табличная часть «КонтактныеЛица» справочника «Контрагенты», но при этом перенос данных не производится (этап 2 пропущен)! В итоге данные по контактным лицам будут потеряны!

 

ПС: Данная рекомендация относится к любым конфигураций на платформе 1С:Предприятие. Целью было показать, что МОЖЕТ произойти при обновлении через несколько релизов, а самое главное ПОЧЕМУ.   

Вам помогла эта информация? Да Нет
powered by smfaq