12.A由题意知,在R上f()有最人值由y,得y.所以当x<1时,y>0.y三单调递增,>≥1时,y<0,y=单调递减故y=罗在r上有最大值日y、=1.此时r=1.当a>0时,x-1>1,在(-,a)上,存在x使得f(x)>1.在[.+…)上,f(x)≤1,所以f(x)在R上无最大值.不合题意;当≤0时,在(-,)上.x+1<1,即/(x)<1,在a,·)上(x)≤1,且x能取到1.所以f(x)在R上有最大值.且最大值为1.符合题意,综上所述a的取值范围是(.0.故选A