From 86e8149252e2fac3da6e31dd950e952dee7c8626 Mon Sep 17 00:00:00 2001 From: bn_user Date: Mon, 1 Sep 2025 14:17:23 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20dags/OSV.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dags/OSV.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/dags/OSV.py b/dags/OSV.py index d0bab70..cae8591 100644 --- a/dags/OSV.py +++ b/dags/OSV.py @@ -33,7 +33,7 @@ def get_db_engine(): def read_data_1C(**kwargs): params = {"СписокСчетов": ["66","66.01","66.02", "66.03","66.04","66.21","66.22","66.23","66.24", "67","67.01","67.02", "67.03","67.04","67.21","67.22","67.23","67.24"]} - query = """ВЫБРАТЬ ПЕРВЫЕ 5 * + query = """ВЫБРАТЬ * ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты КАК ОстаткиИОбороты ГДЕ @@ -52,6 +52,25 @@ def read_data_1C(**kwargs): data_from_1c = response.json() df = pd.DataFrame(data_from_1c['data']) + table_name = 'oborotno_salbdovaya_vedomostb' + + with engine.begin() as conn: + if not df.empty: + conn.execute(f"CREATE TEMP TABLE temp_{table_name} AS SELECT * FROM public.{table_name} WHERE 1 = 0") + df.to_sql( + f'temp_{table_name}', + con=conn + if_exists='append', + index=False, + method='multi' + ) + conn.execute(f"DELETE FROM public.{table_name} WHERE ") + conn.execute(f""" + INSERT INTO public.{table_name} + SELECT * FROM temp_{table_name} + --ON CONFLICT (schet, subkonto1, subkonto2, organizaciya) + """ + ) with DAG( dag_id='data_download_from_1C_source',