Проблема с копированием клиента заключается не только в копировании одного объекта. Есть много объектов, которые нужно скопировать для клиента.
Я скопировал ваш код и выполнил его. Я закомментировал CopyAccounts, поскольку думаю, что он будет вызываться для клонированного объекта, а не для существующего клиента.
Следующая ошибка, которую я получил, была Ошибка: Ошибка произошла во время обработки поля Значение местоположения по умолчанию 8068 Ошибка: Местоположение по умолчанию '8068' не может быть найдено в системе.
Это произошло из-заклонирование других полей внешнего ключа из записи клиента. DefLocationID является местоположением по умолчанию для клиента. Он также пытается установить эти ключи и не может из-за ограничения, наложенного на селектор, требующий, чтобы местоположение было таким же BAccountID, что и запись. DefAddressID, DefContactID и другие ключевые поля будут действовать одинаково.
Таким образом, чтобы завершить это, вам необходимо просмотреть все внешние ключи на Customer / BAccount, которые могут быть установлены, а затем скопировать эти объекты и установитьих к соответствующим ЦАПам. Некоторую информацию, возможно, не нужно копировать, поэтому я просто обнуляю эти ключевые поля и копирую то, что требуется.