Изменение типа реквизита.

1. Bob_Dobr 25.03.24 08:34 Сейчас в теме
Добрый день! Вот такая интересная задачка. Нужно изменить тип полей во всей конфигурации со строки на СправочникСсылка.МойСправочник
Строку заменить на ссылочный объект, адаптировать все запросы поиска и все, что связано с этим полем. Как я понял, нужно найти во всей конфе все обращения к этому справочнику и в найденных изменить строку на ссылочный объект.
По теме из базы знаний
Найденные решения
6. Vinzor 91 25.03.24 10:12 Сейчас в теме
Делал подобное. Только не "везде где есть", а там где надо было.
Итерация 1. В реквизите (2 документов и 1 регистре) сделал составной тип данных, добавил тип справочник.
В документах поставил контроль, чтобы выбирали только из справочника.
Итерация 2 . Обработка конвертации данных. Все записи со старым типом конвертировали на новый по таблице сопоставления.
Итерация 3. Из составного типа убрали "старый" тип данных.
7. newlogin1 25.03.24 10:48 Сейчас в теме
(1)Посмотри как в типовых делают. У старого меняют название на УдалитьРеквизит, добавляют новый Реквизит, обработчик обновление переносит и адаптирует данные если нужно.
В коде понятное дело через глобальный поиск если нужно изменить код. Так же можно по старому реквизиту найти места использования и заменить если он гдето используется (например параметры выбора)
Такой подход даст возможность если что сверить корректность переноса и старые данные останутся пока реквизит не удалишь (если там чтото важное есть)
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Vadim-SH 25.03.24 09:13 Сейчас в теме
(1) Потеряются данные после реструктуризации.
3. Bob_Dobr 25.03.24 09:17 Сейчас в теме
(2) Я правильно понимаю, чтоб это найти все места которые обращаются к моему справочнику, достаточно правой кнопкой мыши - найти ссылки на объект в конфигурации.
5. Vadim-SH 25.03.24 10:02 Сейчас в теме
(3) Я бы переименовал нужный реквизит, потом создал новый со старым именем и новым типом.
Затем сделал обработку для конвертации данных.
При переименовании 1с выдаст список ссылок на реквизит, который можно использовать для адаптации алгоритмов. Но лучше поискать самому.
7. newlogin1 25.03.24 10:48 Сейчас в теме
(1)Посмотри как в типовых делают. У старого меняют название на УдалитьРеквизит, добавляют новый Реквизит, обработчик обновление переносит и адаптирует данные если нужно.
В коде понятное дело через глобальный поиск если нужно изменить код. Так же можно по старому реквизиту найти места использования и заменить если он гдето используется (например параметры выбора)
Такой подход даст возможность если что сверить корректность переноса и старые данные останутся пока реквизит не удалишь (если там чтото важное есть)
8. Bob_Dobr 25.03.24 11:15 Сейчас в теме
(7) Согласен. Искат и вручную править код . придется попыхтеть
9. Bob_Dobr 25.03.24 12:13 Сейчас в теме
(7)
Есть идея. Т.к. документов много. Менять не все сразу, а поэтапно. Беру один документ. Меняю в нем реквизит. И исправляю везде код связанный с ним.
4. VmvLer 25.03.24 09:50 Сейчас в теме
(3) кроме этого, еще "глобальный поиск" по всем галкам (модули, макеты, даже справка) и
по расширениям тоже.

после правки всех найденных, останется вероятность ошибки типов в модулях со слишком универсальным стилем.
6. Vinzor 91 25.03.24 10:12 Сейчас в теме
Делал подобное. Только не "везде где есть", а там где надо было.
Итерация 1. В реквизите (2 документов и 1 регистре) сделал составной тип данных, добавил тип справочник.
В документах поставил контроль, чтобы выбирали только из справочника.
Итерация 2 . Обработка конвертации данных. Все записи со старым типом конвертировали на новый по таблице сопоставления.
Итерация 3. Из составного типа убрали "старый" тип данных.
10. Bob_Dobr 25.03.24 19:30 Сейчас в теме
Осталось понять все плюсы и минусы двух вариантов решения. 6 и 7.
Оставьте свое сообщение

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