public ComplementoComprobante this[int indice]
 {
     get {
     if(indice >= 0 && indice < complementos.Count) {
        var aux = new ComplementoComprobante[complementos.Count];
        complementos.Values.CopyTo(aux, 0);
        return aux[indice];
     }
     throw new Exception("ComplementosConcepto::this[indice]. Indice fuera de rango");
      }
 }
 public void AgregarComplemento(ComplementoComprobante complemento)
 {
     if(complementos == null)
      complementos = new Complemento();
       complementos.Agregar(complemento);
       /*switch(complemento.GetType().Name) {
      case "TimbreFiscalDigital":
         timbreFiscal = complementos.Elementos -1;
         break;
      case "Nomina":
         nomina = complementos.Elementos -1;;
         break;
      case "EstadoDeCuentaCombustible":
         combustible = complementos.Elementos - 1;
         break;
       }*/
 }
 /// <summary>
 /// Agrega un complemento
 /// </summary>
 /// <param name="complemento">Complemento a agregar</param>
 public void Agregar(ComplementoComprobante complemento)
 {
     if(complementos.ContainsKey(complemento.GetType().Name))
     throw new Exception("Ya se ha agregado un complemento del tipo: " + complemento.GetType().Name);
      complementos.Add(complemento.GetType().Name, complemento);
 }