С начала 7.0 версии AIOGram был полностью переписан, и в новой версии есть иной подход к передаче переменных между хэндлерами.
Вместо использования `state.proxy()` нужно использовать `dp.current_state()`, и сохранять/получать переменные через `context` объекта хэндлера.
Пример передачи переменной между хэндлерами:
```python
from aiogram import Bot, Dispatcher, types
from aiogram.dispatcher import FSMContext
from aiogram.contrib.fsm_storage.memory import MemoryStorage
TOKEN = 'your_token'
bot = Bot(token=TOKEN)
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)
class MyStateFSM(types.Message):
some_variable: str
@dp.message_handler(commands=['start'])
async def start(message: types.Message, state: FSMContext):
await message.answer("Enter your variable:")
# Сохраняем переменную в состоянии FSM
await MyStateFSM.some_variable.set()
@dp.message_handler(state=MyStateFSM.some_variable)
async def handle_variable(message: types.Message, state: FSMContext):
# Получаем переменную из состояния FSM
variable = message.text
# Используем переменную
await message.answer(f"Your variable: {variable}")
# Сбрасываем состояние FSM
await state.finish()
if __name__ == '__main__':
from aiogram import executor
executor.start_polling(dp)
```
В приведенном выше примере хэндлер `start` сохраняет переменную `some_variable` в состоянии FSM при обработке команды `/start`. Затем, хэндлер `handle_variable` получает эту переменную и использует ее для ответа пользователю. В конце хэндлера `handle_variable` состояние FSM сбрасывается с помощью `state.finish()`.
Вышеуказанный код применяется только для передачи состояний переменной между хэндлерами. Если вам необходимо передавать переменные между различными файлами или модулями, вы можете использовать глобальные переменные или передачу переменных через контекст объекта бота/диспетчера (`bot.context`, `dp.context`).