No avanza en ciclo foreach en toba 3.4

Tengo el evento modificacion de un formulario_ml en el que recorro con un foreach el array $datos que este recibe por parámetro, pero noto que no avanza y no incrementa una variable llamada comprob.
Este es el código de ese evento:

	function evt__formulario_ml__modificacion($datos)
	{
        $this->dep('datos')->resetear();
		$sql = "select * from paramet";
		$paramet = consultar_fuente($sql);
        $this->s__cuit = $paramet[0]["cuit"];
        $this->s__fijcom = $paramet[0]["ptovta"];
        $array_tipo = array("id_tipo" => $this->s__id_tipo);
        $tipos_fac = toba::tabla('tipos_fac');
        $tipos_fac->cargar($array_tipo);
        $tipo_fac = $tipos_fac->get();
        $this->s__alicuota = $tipo_fac["alicuota"];
        $this->s__haber = array();
        $conceptos = toba::tabla("conceptos");
        $result = $conceptos->get_listado();
        foreach ($result as $value) $this->s__haber[] = 0;
        $this->s__importe = 0;
        $this->s__iva = 0;
        $arca = new FacturacionARCA();
        $autenticar = $arca->autenticar();
        if(is_string($autenticar)) {
            toba::notificacion()->error($autenticar);
        }else{
            $tipo_arca = $tipo_fac["tipo"]=="A" ? 1 : 6;
            $comprob = $arca->obtenerUltimoComprobante($this->s__cuit, $this->s__fijcom, $tipo_arca);
            foreach ($datos as $key => $value) {
                if (!empty($datos[$key]["seleccionar"])) {
                    $id_cliente = $datos[$key]["id_cliente"];
                    $id_cuota = $datos[$key]["id_cuota"];
                    $importe = $this->cuota($id_cuota);
                    if (!empty($importe)) {
                        $comprob++;
                        $factura = $this->factura($id_cliente, $comprob, $importe);
                        if (!empty($factura)) {
                            $id_factura = $factura["id_factura"];
                            $total = round($factura["importe"] + $factura["iva"], 2);
                            $this->detalle($id_factura, $id_cliente, $id_cuota, $comprob, $total);
                            $this->ctacte($id_cliente, $comprob, $total);
                        }
                    }
                }
            }
        }
        $this->dep('datos')->resetear();
	}

Este es el código de los otros métodos que se llaman desde el evento:

	private function cuota($id_cuota)
	{
		$importe = 0;
		if (!empty($id_cuota)) {
			$array_cuota = array("id_cuota" => $id_cuota);
			$result = $this->dep("datos")->tabla("conceptos_cuotas")->get_listado($array_cuota);
			if (!empty($result)) {
				foreach ($result as $value) {
					$importe += $value["importe"] * $value["cantidad"];
				}
			}
		}
		$importe = round($importe, 2);
		return $importe;
	}

	private function factura($id_cliente, $comprob, $importe)
	{
		$facturas = toba::tabla("facturas");
        $iva = round($importe * $this->s__alicuota / 100,2);
		$timezone = new DateTimeZone("America/Argentina/Cordoba");
		$ahora = new DateTime("now", $timezone);
		$fecalt = $ahora->format("Y-m-d H:i:s.u");
		$fecha_bd = new DateTime($this->s__datos_filtro["fecha"], $timezone);
		$referencia = strtoupper(IntlDateFormatter::formatObject($fecha_bd, 'MMMM/Y', 'es_AR'));
		$datos = array("id_facturae" => 0, "id_cliente" => $id_cliente, "fecha" => $this->s__datos_filtro["fecha"], "id_tipo" => $this->s__id_tipo, "fijcom" => $this->s__fijcom, "comprob" => $comprob, "referencia" => $referencia, "iva" => $iva, "importe" => $importe, "fecalt" => $fecalt);
		$facturas->set($datos);
		$facturas->sincronizar();
        $factura = $facturas->get();
        return $factura;
	}

	private function detalle($id_factura, $id_cliente, $id_cuota, $comprob, $total)
	{
		$array_cuota = array("id_cuota" => $id_cuota, "factura" => false, "anula" => false);
		$result = $this->dep("datos")->tabla("conceptos_cuotas")->get_filas($array_cuota, true);
		foreach ($result as $key => $value) {
			$id_concepto = $value["id_concepto"];
            $i = $id_concepto - 1;
            $this->s__haber[$i] += $value["importe"] * $value["cantidad"];
			$iva = $value["importe"] * $value["cantidad"] * $this->s__alicuota / 100;
			$importe = $value["importe"] * $value["cantidad"] + $iva;
			$this->pendiente($id_cliente, $comprob, $id_concepto, $total, $importe);
			$this->detfac($id_factura, $id_concepto, $value["cantidad"], $value["importe"]);
            $concepto_cuota = $this->dep("datos")->tabla("conceptos_cuotas")->get_fila($key);
            $concepto_cuota["factura"] = true;
            $this->dep("datos")->tabla("conceptos_cuotas")->set($concepto_cuota);
            $this->dep("datos")->tabla("conceptos_cuotas")->sincronizar();
            $this->s__importe += $importe;
            $this->s__iva += $iva;
		}
	}

	private function pendiente($id_cliente, $comprob, $id_concepto, $total, $importe)
	{
		$array_pendiente = array("id_cliente" => $id_cliente, "fecha" => $this->s__datos_filtro["fecha"]);
		$pendientes = toba::tabla("pendientes");
        $pendientes->resetear();
        $pendientes->cargar($array_pendiente);
		$pendiente = $pendientes->get();
		if (!empty($pendiente)) {
			$id_pendiente = $pendiente["id_pendiente"];
		} else {
			$timezone = new DateTimeZone("America/Argentina/Cordoba");
			$ahora = new DateTime("now", $timezone);
			$fecalt = $ahora->format("Y-m-d H:i:s.u");
			$datos = array("id_cliente" => $id_cliente, "fecha" => $this->s__datos_filtro["fecha"], "tipo" => "FAC", "fijcom" => $this->s__fijcom, "comprob" => $comprob, "total" => $total, "fecalt" => $fecalt);
			$pendientes->set($datos);
			$pendientes->sincronizar();
			$pendiente = $pendientes->get();
			$id_pendiente = $pendiente["id_pendiente"];
		}
		if (!empty($id_pendiente)) {
			$array_detalle = array("id_pendiente" => $id_pendiente, "id_concepto" => $id_concepto, "importe" => $importe);
			$conceptos_pendientes = toba::tabla("conceptos_pendientes");
			$conceptos_pendientes->set($array_detalle);
			$conceptos_pendientes->sincronizar();
		}
	}

	private function detfac($id_factura, $id_concepto, $cantidad, $importe)
	{
		$array_detalle = array("id_factura" => $id_factura, "id_concepto" => $id_concepto, "cantidad" => $cantidad, "importe" => $importe);
		$detalle = toba::tabla("detalle");
		$detalle->set($array_detalle);
		$detalle->sincronizar();
	}

	private function ctacte($id_cliente, $comprob, $importe)
	{
		$ctacte = toba::tabla("ctacte");
		$timezone = new DateTimeZone("America/Argentina/Cordoba");
		$ahora = new DateTime("now", $timezone);
		$fecalt = $ahora->format("Y-m-d H:i:s.u");
		$fecha_bd = new DateTime($this->s__datos_filtro["fecha"], $timezone);
		$referencia = strtoupper(IntlDateFormatter::formatObject($fecha_bd, 'MMMM/Y', 'es_AR'));
		$datos = array("id_cliente" => $id_cliente, "fecha" => $this->s__datos_filtro["fecha"], "tipo" => "FAC", "fijcom" => $this->s__fijcom, "comprob" => $comprob, "referencia" => $referencia, "importe" => $importe, "fecalt" => $fecalt);
		$ctacte->set($datos);
		$ctacte->sincronizar();
	}
´´´
¿Cómo puedo solucionar este error?

Ya funciona perfecto, el problema era que modificaba un registro de los que leía en el foreach y al modificarlo desaparecía de la consulta.