Как изменить тип поля в CRM и сохранить все данные
В этом видео я покажу, как изменить тип поля в daocrm, даже если в нем уже есть данные. Мы разберем пошаговый алгоритм, который позволяет сменить формат данных (например, с числа на текст) и ничего не потерять. Мы разберем:
- Почему тип поля нельзя изменить в один клик;
- Как подготовить старое поле к переносу данных;
- Как создать новое поле и перенести в него данные;
- Как правильно удалить старое поле после завершения работы.
Почему нельзя изменить тип поля в CRM напрямую и как это обойти
Привет, я Илья, основатель daocrm.
Представьте ситуацию: вы создали поле "Номер договора" с типом "Число". Со временем в базе накопилось много сделок с заполненными номерами. Но вдруг вам понадобилось добавить в номер договора букву (например, "25-А"). Система не даст это сделать — поле ведь числовое.
В daocrm нельзя просто взять и поменять тип поля, т.к. в нем уже могут храниться данные.
Но решение есть. Сегодня я покажу пошаговый алгоритм, как перенести данные из одного поля в другое, сменив тип и ничего не потеряв.
Логика простая:
- Создаем новое поле нужного типа.
- Переносим данные из старого поля в новое.
- И удаляем старое поле.
Давайте сделаем это на практике.
Тип поля заблокирован: числовое поле не принимает буквы и не даёт сменить формат
Сначала попробуем ввести букву в поле с номером договора.
Видите? Ничего не происходит. Поле даже не дает напечатать букву, потому что сейчас оно принимает только цифры.
Нам нужно сменить тип этого поля на "Текст". Но если мы зайдем в настройки, то увидим, что выпадающий список с выбором типа поля заблокирован. Изменить его напрямую нельзя. Поэтому мы пойдем другим путем: мы создадим поле с новым типом и автоматически перенесем в него все старые данные.
Переименование старого поля: освобождаем имя для нового поля в CRM
Чтобы мы смогли создать новое поле с таким же названием, нам нужно сначала "освободить" это имя.
В настройках поля:
- Меняем название на "Номер договора (старое)".
- И важный момент: чуть ниже нажимаем "Изменить" у "Имя в API" и кликаем на иконку справа, чтобы обновить его. Это нужно, чтобы daocrm разрешила нам создать поле с тем же названием.
- Сохраняем.
Создание нового поля и перенос данных через формулу TEXT в daocrm
Теперь имя свободно. Добавляем новое поле. Называем его "Номер договора". Тип выбираем "Текст".
Чтобы сразу перенести данные из старого поля в новое, нужно задать формулу. Прокручиваем ниже к полю с формулой. Открываем вкладку "Функции" и находим раздел "Функции преобразования".
Поскольку тип старого поля — число, а нового — текст, нам нужна функция TEXT. Но если вам нужно преобразовать другие типы, выберите здесь соответствующую функцию. Например, LIST_ITEM — чтобы преобразовать в элемент списка, MEMBER — в пользователя CRM, или MATCH — она позволяет задать правила замены: для каждого старого значения указываете, что должно быть в новом.
Нажимаю на TEXT, открывается описание функции. Нажимаю по названию — и она вставляется в формулу. Теперь нужно добавить ссылку на старое поле. Открываю вкладку "Поля" и нажимаю по названию старого поля. Готово.
Ниже в "Перерасчитать формулу" выбираем "Во всех записях". Нажимаем "Добавить". Перенос данных обычно происходит за 20-30 секунд, но иногда может занять несколько минут.
Обновим страницу. Давайте вернемся в карточку сделки. Смотрите: у нас теперь два поля с номером договора. В новом поле данные скопировались точь-в-точь.
Как удалить старое поле в CRM: сначала снимаем формулу, потом удаляем
Теперь нам нужно удалить старое поле. Но пока новое поле ссылается на него в формуле, CRM не даст этого сделать.
Поэтому порядок действий такой:
- Снова заходим в новое текстовое поле.
- Удаляем формулу и сохраняем его. Данные при этом никуда не исчезнут, они уже записались.
- Теперь удаляем старое поле и обновим страницу еще раз.
Всё! У нас осталось только одно поле "Номер договора" с нужным типом "Текст", и все данные на месте. Теперь в номер договора можно вводить буквы.
По этому принципу вы можете менять любые типы полей, кроме файлов.