import tkinter as tk from tkcalendar import DateEntry from datetime import datetime import json, requests # Функция обработки выбора варианта def on_select(): global ID selected_value = var.get() # Варианты значений для разных выборов values = { 1: [('7381440800374463','ad06d608-b690-11ed-87bd-0cc47ab40806','Самара_Кирова_виваленде')], 2: [('9961440300763405','030c75c2-2f29-11eb-119f-0cc47ab40806','Волгоград_Энгельса')], 3: [('9961440300902043','d4fff292-2f2a-11eb-119f-0cc47ab40806','Волжский_Ленина')], 4: [('7381440900835933','ee3baf4d-d98d-11e6-b191-e83935b036c7','Новороссийск')], 5: [('9961440300902580','33bbe69c-2f2b-11eb-119f-0cc47ab40806','Камышин_Некрасова')], 6: [('7381440900836108','b50bc5a3-12e1-11e5-9265-e83935b036c7','Краснодар_Привокзальная')], 7: [('9961440300515155','e33636ce-2f29-11eb-119f-0cc47ab40806','Волгоград_Авиаторов')], 8: [('7381440900834264','691807dd-2629-11e9-993e-f06a44526bea','Волгоград_Еременко')], 9: [('9961440300902408','13f3b7e6-2f2a-11eb-119f-0cc47ab40806','Волгоград_Аллея_Героев')], 10: [('7381440900836042','147c9228-3d13-11ef-94eb-8a456ecaea20','Крымск_Синева')] } if selected_value in values: ID = values[selected_value] execute_logic() else: result_label.config(text="Ошибка! Не выбран вариант.") # Логика программы (пример) def execute_logic(): CurDate = date_entry.get_date().strftime('%Y-%m-%d') message = f'Выбранная дата: {CurDate}\nЗначение ID: {ID[0][1]}' result_label.config(text=message) print(ID[0]) taxcom = ID[0] fn = taxcom[0] salepoint = taxcom[1] data = {"salepoint": salepoint} data = json.dumps(data, ensure_ascii=False).encode('utf8') # result = requests.post('https://1c.maverik.ru/bso_maverik/hs/exchange/GetTaxcomCredentials', data=data, verify=False, allow_redirects=False, auth=('robot', 's38*Cqy2L*PB')) print(fn, salepoint) headers = { "Content-Type": "application/json", "Integrator-ID": "BFFFC47E-38BB-4845-8399-7C2F5AB11A3C" } data = { "Login": "kassa@ip-tr.ru", "Password": "123456" } result = requests.post('https://api-lk-ofd.taxcom.ru/API/v2/Login', headers=headers, data=json.dumps(data), timeout=(20, 240)) sessionToken = result.json()['sessionToken'] headers = { "Content-Type":"application/json", "Session-Token": f"{sessionToken}" } print('Autorezation') print(result.text) try: print('check 1') result = requests.get(f"https://api-lk-ofd.taxcom.ru/API/v2/ShiftList?fn={fn}&begin={CurDate}T00:00:00&end={CurDate}T23:59:59", headers=headers, timeout=(20, 240)) print(result.text) shiftNumber = result.json()['records'][0]['shiftNumber'] fnFactoryNumber = result.json()['records'][0]['fnFactoryNumber'] except Exception as e: print(e) if manual_entry.get(): shiftNumber = manual_entry.get() print('Номер смены: ', shiftNumber) result = requests.get(f'https://api-lk-ofd.taxcom.ru/API/v2/DocumentList?fn={fn}&shift={shiftNumber}&type=3', headers=headers, timeout=(20, 240)) # result = requests.get(f'https://api-lk-ofd.taxcom.ru/API/v2/DocumentList?fn={fn}&shift=127&type=3', headers=headers, timeout=(20, 240)) cheks = result.json()['records'] print(cheks) data = {"salepoint": salepoint, "res": str(cheks)} data = json.dumps(data, ensure_ascii=False).encode('utf-8') print('54') # print(ID[0]) result = requests.post('https://1c.maverik.ru/bso_maverik/hs/exchange/saveTaxcomDocs', data=data, allow_redirects=False, auth=('robot', 's38*Cqy2L*PB')) print(result.text) print(fn, salepoint, taxcom[2]) result_1c_label.config(text=f"Результата: {result.text}") # Создание окна приложения root = tk.Tk() root.title("Загрузка чеков ИП") root.geometry("400x450") # Выбор даты tk.Label(root, text='Выберите дату:').pack(pady=10) # date_entry = DateEntry(root, selectmode='day', year=2025, month=5, day=15) date_entry = DateEntry(root) date_entry.pack(pady=10) # Переменная для хранения выбранного варианта var = tk.IntVar() # Список радиокнопок для выбора варианта options = [ ("Самара_Кирова_виваленде", 1), ("Волгоград_Энгельса", 2), ("Волжский_Ленина", 3), ("Новороссийск", 4), ("Камышин_Некрасова", 5), ("Краснодар_Привокзальная", 6), ("Волгоград_Авиаторов", 7), ("Волгоград_Еременко", 8), ("Волгоград_Аллея_Героев", 9), ("Крымск_Синева", 10) ] for option_text, value in options: tk.Radiobutton(root, text=option_text, variable=var, value=value, command=on_select).pack(anchor=tk.W) label_manual = tk.Label(root, text="Ручной ввод смены:") # label_manual.pack(pady=15) label_manual.pack(fill=['none', '0', '20', 'both']) manual_entry = tk.Entry(root) manual_entry.pack(pady=0) print(manual_entry) # Метка результата result_label = tk.Label(root, text='', font=('Arial', 12)) result_label.pack(pady=0) # Метка результата result_1c_label = tk.Label(root, text='', font=('Arial', 12)) result_1c_label.pack(pady=0) root.mainloop()