Réponse pour QGIS 3.x:
Pour une solution plus simple sans python, voir le commentaire de gustry ci-dessous
Ajoutez ce script à votre éditeur de fonction personnalisé:
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def get_crs(layer_name, feature, parent):
return QgsProject.instance().mapLayersByName(layer_name)[0].crs().description()

puis obtenez le nom crs dans l'éditeur d'expression avec
get_crs(@layer_name)

Pour le nom CRS de votre projet (par exemple projection dans votre mise en page d'impression), utilisez ceci:
Ajoutez ce script à votre éditeur de fonction personnalisé:
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def get_projectcrs(project_crs, feature, parent):
return QgsCoordinateReferenceSystem(project_crs).description()
puis obtenez le nom crs dans l'éditeur d'expression avec:
get_projectcrs(@project_crs)
Bien sûr, vous pouvez également taper par exemple 'EPSG:4326'
manuellement ou utiliser une autre fonction que celle @project_crs
qui renvoie un code EPSG.
Remarques:
Jetez également un œil à https://qgis.org/api/api_break.html pour plus d'informations sur les modifications de qgis 3.x