public void Check(Questionnaire questionnaire, string expression)
        {
            if (string.IsNullOrEmpty(expression))
            {
                return;
            }

            //проверяем имена вопросов
            foreach (Match m in Regex.Matches(expression, QuestNamePattern))
            {
                if (questionnaire.All(q => q.Id != m.Value))
                {
                    throw new Exception("Вопрос " + m.Value + " не найден");
                }
            }

            //проверяем синтаксис
            Calculate(new Anketa(), new Condition {
                Expression = expression
            });
        }