The 「了」 after a verb is an auxiliary verb for aspect and it means the movement of the verb has been down. And the 「了」in a sentence's end is an auxiliary verb for tone. It means there'll be something changes after the sentence. So, 「他们七八年没见面了」can be translated as "They haven't seen each other for about 7 or 8 years (and they will meet each other after )". Without the 「了」, the state that they haven't seen each other could continue.
In my opinion, I think the「了」of auxiliary verb for tone is showing a future inclination. And it doesn't mean the thing will definitely realize.
Finally, 「没」 and 「没有」 in your sentence have the same meaning. So both them are right in your sentence.
I wish my poor English can be helpful for you.