Заметки
БП стартует, но не меняет поле
БП стартует, но не меняет поле: тип поля, права, формат значения, стадия, обязательность.
Эта заметка про сценарий «БП стартует, но не меняет поле». Главная идея — не переносить решение вслепую между сделками, смарт-процессами, роботами и PHP-кодом, а проверить формат данных, права и точку запуска.
Когда использовать
Чек-лист нужен для первичной диагностики, чтобы не пропустить базовые причины.
Используйте его, когда проблема повторяется и нужно быстро отделить ошибку настройки от ошибки кода: Тип поля, права, формат значения, стадия, обязательность.
Чек-лист
Проходите пункты сверху вниз и фиксируйте результат проверки.
- Проверьте, доходит ли процесс до действия изменения поля.
- Проверьте формат значения: ID списка вместо текста, массив для множественного поля, user_1 для сотрудника.
- Проверьте права пользователя, от имени которого выполняется изменение.
- Проверьте, не является ли поле обязательным, зависимым или заблокированным настройками карточки.
- Проверьте, не перезаписывает ли поле следующий робот или другой БП.
- Проверьте, не пытаетесь ли изменить FM-поле как обычную строку.
- Проверьте правильный код поля: UF_CRM_* или camelCase в универсальных методах.
Рабочий подход
После базовой диагностики станет понятно, куда копать дальше.
Если один из пунктов подтвердился, исправьте его и повторите сценарий на тестовой карточке. Если все пункты в порядке, переходите к журналу БП, логам PHP и проверке конкретного действия.
Частые ошибки
Главная ошибка — сразу переписывать процесс, не проверив инфраструктуру и формат данных.
Не делайте вывод по одной карточке. Сравните ручной запуск, импорт, запуск из кода и запуск от реального пользователя.