protected function collectPropertyFieldsFromDB()
    {
        $fields = CIBlockProperty::getByID($this->fields['ID'])->fetch();
        $fields['VALUES'] = [];

        $filter = [
            'IBLOCK_ID'   => $this->fields['IBLOCK_ID'],
            'PROPERTY_ID' => $this->fields['ID'],
        ];
        $sort = [
            'SORT'  => 'ASC',
            'VALUE' => 'ASC',
        ];

        $propertyEnums = CIBlockPropertyEnum::GetList($sort, $filter);
        while ($v = $propertyEnums->GetNext()) {
            $fields['VALUES'][$v['ID']] = [
                'ID'     => $v['ID'],
                'VALUE'  => $v['VALUE'],
                'SORT'   => $v['SORT'],
                'XML_ID' => $v['XML_ID'],
                'DEF'    => $v['DEF'],
            ];
        }

        return $fields;
    }