o sea, debe patalear como loco... (je je je)
el problema es que estas componiendo el nombre dinamicamente y asumes que la variable a la que asignas el nombre es el objeto correspondiente a ese nombre.
Me explico. Asignas:
ape1 = "ape1_"+id_persona.value;
y referencias:
ape1.disabled=true;
pero "ape1" es una variable con contenido String, es un objeto de tipo string y no un objeto "input type=text", me entiendes?
bueno, el punto es que necesitas hacer referencia al objeto "input type=text" de nombre igual al contenido en "ape1", es decir, debes hacer algo asi como:
var elApellidoMaterno=document.getElementById(ape1);
elApellidoMaterno.disabled=true;
Por lo que al crear tu campo debes agregar el atributo "id" (o no te va a encontrar el elemento):
<input type="text" name="ape1_7668"
id="ape1_7668" value="Vidal" size="15" />
bueno, eso. Saludos.