Address filter in gstr1 report (#14290)

diff --git a/erpnext/regional/report/gstr_1/gstr_1.js b/erpnext/regional/report/gstr_1/gstr_1.js
index 3a63527..b2c8aed 100644
--- a/erpnext/regional/report/gstr_1/gstr_1.js
+++ b/erpnext/regional/report/gstr_1/gstr_1.js
@@ -12,6 +12,21 @@
 			"default": frappe.defaults.get_user_default("Company")
 		},
 		{
+			"fieldname":"company_address",
+			"label": __("Address"),
+			"fieldtype": "Link",
+			"options": "Address",
+			"get_query": function() {
+				var company = frappe.query_report_filters_by_name.company.get_value();
+				if (company) {
+					return {
+						"query": 'frappe.contacts.doctype.address.address.address_query',
+						"filters": { link_doctype: 'Company', link_name: company}
+					};
+				}
+			}
+		},
+		{
 			"fieldname":"from_date",
 			"label": __("From Date"),
 			"fieldtype": "Date",
diff --git a/erpnext/regional/report/gstr_1/gstr_1.py b/erpnext/regional/report/gstr_1/gstr_1.py
index 2c128e7..690fbbc 100644
--- a/erpnext/regional/report/gstr_1/gstr_1.py
+++ b/erpnext/regional/report/gstr_1/gstr_1.py
@@ -102,7 +102,8 @@
 
 		for opts in (("company", " and company=%(company)s"),
 			("from_date", " and posting_date>=%(from_date)s"),
-			("to_date", " and posting_date<=%(to_date)s")):
+			("to_date", " and posting_date<=%(to_date)s"),
+			("company_address", " and company_address=%(company_address)s")):
 				if self.filters.get(opts[0]):
 					conditions += opts[1]