Как грамотно перевести реквизит из одного типа в другой? (в расширении)

1. Mi4man 173 14.07.20 10:51 Сейчас в теме
Привет!

Помогите, пожалуйста, разобраться со следующим вопросом.

Исходные данные:
Есть расширение. В нем есть документ «Заявка». У него есть реквизит «Статус» - тип «Перечисление».

Задача:
Перевести Статус из Перечисления в Справочник.


Как я делал:
- реквизит переименовал в «Удалить Статус»
- добавил новый реквизит «Статус»
- при запуске систему добавил обновление: во всех заявках прописывается реквизит «Статус» на основании «Удалить Статус».
Все отработало отлично.

Проблема:
Существует несколько различный версий расширений, и они все немного видоизменены друг от друга.
Поэтому они будут обновляться через «Сравнить-объединить» ( а не полной загрузкой cfe)
При этому получается следующее:
- «Статус» перезаписывается, т.е. обнуляется.
- «Удалить Статус» - просто добавляется новый пустой реквизит.
Таким образом мы не сможем установить нормально перезаписать статусы.



Вопрос: каким образом можно обновиться методом «Сравнить, Объединить» без потери статусов?

Возможное решения:
1. выпускать промежуточные версии для обновления, но с обязательным контролем порядка обновлений.
Например в первой версии мы бы добавили временный реквизит, куда бы перекинули текущие статусы.
А во втором обновлении мы бы из временного реквизита переписали в уже нормальный.

Но хочется расмтореть что-то попроще.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. noprogrammer 237 14.07.20 11:02 Сейчас в теме
(1) Уж не знаю поможет или нет, но можно сделать данный реквизит составным типом (временно на момент переноса), чтобы не добавлять новый и не переименовывать старый.
Sashares; +1 Ответить
4. Sashares 34 14.07.20 11:07 Сейчас в теме
(2)Поддержу.
При обновлении в тот же реквизит записывать значение с нужным типом.
В интерфейсе ограничить выбор только новым типом.
6. Mi4man 173 14.07.20 11:56 Сейчас в теме
(2) Да, тоже так думал. Но есть такой момент:
- в итоге в новых версиях захочется избавиться от уже ненужного перечисления.
Если мы захотим его удалить, тогда надо будет вводить понятие "Промежуточный релиз и контроль порядка обновления" (я описывал как возможное решение), т.к. если обновиться сразу на актуальный релиз (уже без перечисления), то у нас обнулятся Статусы.
- если же мы сохраним Перечисление (переименовав в "Удалить..."), тогда нам придется всегда поддерживать этот составной тип (в запросах и пр.)
Тогда уже лучше его выделить в отдельный реквизит...
7. Sashares 34 14.07.20 12:05 Сейчас в теме
(6)
- в итоге в новых версиях захочется избавиться от уже ненужного перечисления.
Если мы захотим его удалить, тогда надо будет вводить понятие "Промежуточный релиз и контроль порядка обновления" (я описывал как возможное решение), т.к. если обновиться сразу на актуальный релиз (уже без перечисления), то у нас обнулятся Статусы.

И что?
Вместе с расширением поставлять файл ReadMe.txt и/или UpdateXXX аналогично типовым конфигурациям/библиотекам, в которых прописать требования для работы/обновления расширения.

Не прочитали - ваши проблемы - восстанавливайте из бэкапа.
8. Mi4man 173 14.07.20 12:29 Сейчас в теме
(7)
И что?
Вместе с расширением поставлять файл ReadMe.txt и/или UpdateXXX аналогично типовым конфигурациям/библиотекам, в которых прописать требования для работы/обновления расширения.

Не прочитали - ваши проблемы - восстанавливайте из бэкапа.


Да, этот вариант есть сейчас. Но ищу более попроще ...
3. DanDy 51 14.07.20 11:06 Сейчас в теме
При сравнении объединении конфигураций, на сколько я помню можно указать руками соответствие объектов/реквизитов
если ПКМ щелкнуть по реквизиту "Статус" то там есть "отменить соответствие объектов" и после этого к "Удалить статус" можно будет привязать освободившийся "Статус" из конфы которая накатывается
5. Mi4man 173 14.07.20 11:47 Сейчас в теме
(3)
сколько я помню можно указать руками соответствие объектов/реквизитов
если ПКМ щелкнуть по реквизиту "Статус" то там есть "отменить соответствие объектов" и после этого к "Удалить статус" можно будет привязать освободившийся "Статус" из конфы которая накатывается


Возможно, но дело в том, что другие расширения будет обновлять другой специалист, который может не обладать такой информацией.
Т.е. надо такое решение, при котором обновление проходит по простой схеме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот