Вообще, для этого есть дополнительно поле
access key
В vk_api не приходит это поле в лонгполл, может так должно быть, может это упущение vk_api, но в любом случае, придется дернуть сообщение по его ID, и там уже будет и access key который можно добавить в запрос docs.getById, так и будет там url, по которому можно файл загрузить (не знаю для всех ли видов файлов есть url)
for event in VkLongPoll(vk_session).listen():
if event.type == VkEventType.MESSAGE_NEW and event.to_me:
if event.attachments:
if event.attachments["attach1_type"] == "doc":
vk.messages.getById(message_ids=event.message_id)['items'][0]['attachments'][0]
Дальше уже от ваших нужд. Либо берете url из ответа и делаете с файлом ваши задачи, либо достаете accesskey и пробуете
document = event.attachments["attach1"] + '_' + access_key
response = vk.docs.getById(docs=document)