Столкнулся с проблемой, что на странице настроек кастомного модуля не работает сохранение полей.
Страница настроек у модуля оформляется в виде одного скрипта, где указывается массив с ключами полей, их наименованием и параметра поля ввода.
array( 'IS_ACTIVE', Loc::getMessage('PRMEDIA_FREEDELIVERYACTION_IS_ACTIVE'), false, array( 'checkbox' ) ),
Далее по скрипту реализовывается вывод формы и обработка POST-запроса с процессом сохранения значений через функцию __AdmSettingsSaveOptions($moduleId, $arOptions);
Так вот. Если вы столкнулись с тем, что значения ну никак не сохраняются, то знайте, что проблема может быть в длине ключей, которые вы указывается в массиве опций. Возможно, это где-то описано в документации, но как всегда не каждый раз получается на это выйти.