Заметки
Чем смарт-процессы отличаются от сделок в коробке
Смарт-процесс похож на сделку в интерфейсе, но для кода это отдельный тип CRM со своим entityTypeId. Обработчик OnAfterCrmDealUpdate не превращается в обработчик смарта после замены ID элемента.
Для элементов смарт-процессов используйте универсальные методы crm.item.* или фабрику CRM в коробке. Перед переносом кода проверьте события, поля, категории и формат стадий.
Возможности задаются настройками типа: клиент, товары, документы и автоматизация могут быть включены по-разному. Поэтому даже два смарт-процесса на одном портале не обязаны поддерживать одинаковый сценарий.
Общая D7-модель помогает повторно использовать код, но не снимает различий API. Особенно опасно копировать из сделки буквенный тип владельца товарных строк или имя placement без проверки метаданных нужной сущности.