Итак, что я предлагаю: на странице оформления заказа (обычно это /personal/order/make/) до подключения компонента одношагового оформления заказа, необходимо определить константу:
define('MAKE_ORDER_PAGE','Y');
Далее, пишем обработчик для события добавления пользователя и в нем вписываем нужное значение. Рассмотрим на примере свойства "Телефон" (не знаю, зачем делали доп.свойство, когда есть штатные, но уже будет так). Значение поля с телефоном можно получить из заполнненных в заказе полей:
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('main', 'OnBeforeUserAdd', array('CInit','OnBeforeUserAddHandler'));
class CInit{
function OnBeforeUserAddHandler(&$arFields){
if(defined('MAKE_ORDER_PAGE') && MAKE_ORDER_PAGE=='Y'){
if(isset($_REQUEST['ORDER_PROP_3'])){
$arFields['UF_PHONE'] = $_REQUEST['ORDER_PROP_3'];
}
}
}
}
Таким образом, получим заполненное обязательное поле.
