import sys import pyodbc from config import ZUP_SQL_CONFIG def test_connection(): print("=" * 60) print("🧪 ПРОВЕРКА ПОДКЛЮЧЕНИЯ К MS SQL SERVER (1С:ЗУП)") print("=" * 60) print(f" • Сервер: {ZUP_SQL_CONFIG['server']}") print(f" • База: {ZUP_SQL_CONFIG['database']}") print(f" • Логин: {ZUP_SQL_CONFIG['user']}") print(f" • Драйвер: {ZUP_SQL_CONFIG['driver']}") print("-" * 60) conn_str = ( f"DRIVER={ZUP_SQL_CONFIG['driver']};" f"SERVER={ZUP_SQL_CONFIG['server']};" f"DATABASE={ZUP_SQL_CONFIG['database']};" f"UID={ZUP_SQL_CONFIG['user']};" f"PWD={ZUP_SQL_CONFIG['password']};" f"TrustServerCertificate={ZUP_SQL_CONFIG['trust_server_certificate']};" f"Encrypt={ZUP_SQL_CONFIG['encrypt']};" ) try: print("⏳ Установка соединения...") with pyodbc.connect(conn_str, timeout=10) as conn: cursor = conn.cursor() # 1. Проверка версии SQL Сервера cursor.execute("SELECT @@VERSION;") db_version = cursor.fetchone()[0] print("✅ Подключение успешно установлено!\n") print(f"📋 Версия MS SQL Server:\n{db_version.splitlines()[0]}\n") # 2. Проверка доступа к таблице физических лиц _Reference299 cursor.execute("SELECT COUNT(*) FROM dbo._Reference299 WITH (NOLOCK);") count_phys = cursor.fetchone()[0] print(f"📊 Записей в таблице физлиц (_Reference299): {count_phys} шт.") # 3. Проверка доступа к регистру кадровых состояний _InfoRg16921 cursor.execute("SELECT COUNT(*) FROM dbo._InfoRg16921 WITH (NOLOCK);") count_states = cursor.fetchone()[0] print(f"📊 Записей в регистре состояний (_InfoRg16921): {count_states} шт.") print("\n🎉 Все проверки успешно пройдены!") except pyodbc.Error as ex: sqlstate = ex.args[0] if ex.args else "UNKNOWN" print("\n❌ ОШИБКА ПОДКЛЮЧЕНИЯ!") print(f"Код ошибки: {sqlstate}") print(f"Детали:\n{ex}") sys.exit(1) if __name__ == "__main__": test_connection()