You may have a look at the following article about using Stored Procedure with parameters in Power BI.
Execute SQL Server Stored Procedure With User Parameter In Power BI
This will use Power Query parameters. When you publish the report to Power BI Service, you are able to change parameter values on its dataset settings page. Next time when you refresh this dataset, it will apply the new parameter values to the query and import data from the database accordingly. If your database is on the local server, you need to set up an on-premises data gateway to help perform the refresh in Power BI Service.
What is an on-premises data gateway? | Microsoft Learn
Tutorial: Refresh data from an on-premises SQL Server database - Power BI | Microsoft Learn
For the second question, I'm afraid the answer is no. Currently the closest solution is to use the Dynamic M query parameters in Power BI Desktop. However, this feature only supports DirectQuery mode while Stored Procedures are not supported in DirectQuery mode.
Community Support Team _ Jing
If this post helps, please Accept it as Solution to help other members find it.