Кафе, автобусен билет, тефтер. Малките покупки лесно се забравят, докато стигнете до електронната таблица. А ако записването изискваше само едно съобщение в Telegram, а проверката на месеца още едно?
В този урок създаваме Pocket Ledger, тракер за разходи в Telegram с Google Sheets. Изпратете покупка, потвърдете предложените данни и попитайте за месечната сума. Таблицата съхранява редовете и извършва изчисленията; ботът води разговора. Ето готовия резултат.

Същият резултат в таблицата. Кафето за 4,50 EUR увеличава 7,70 EUR до 12,20 EUR; 6,00 USD остават отделно.
Екранните снимки проследяват реална демонстрация с измислени разходи. Сравнихме запазения ред с извикването на Action в Inbox, след което съпоставихме двата отговора в Telegram със стойностите, върнати от Google Sheets. Личните идентификатори и данните за достъп са скрити в публикуваните изображения.
Първата цел е едно записано кафе. Втората е обща сума, която можете да проверите в таблицата. Ще научите и защо отговорът „записано“ в чата е само половината от доказателството.
Изтеглете пакета за настройка на Pocket Ledger с оформената начална работна книга, аватар, промпт, настройки на Actions и тестов лист. Импортирайте работната книга в таблицата, създадена от Quickchat AI, и следвайте стъпките по-долу. Примерите за копиране навсякъде използват английски език и ноември 2026 г., за да можете да сравните резултатите си с екранните снимки.
Какво ви трябва, за да създадете бот за разходи в Telegram?
Необходими са ви Telegram, профил в Google и профил в Quickchat AI. Настройката използва контролния панел и формула в електронна таблица. Няма програма, която да хоствате.
- Създайте профил в Quickchat AI, завършете потвърждението и създайте агент с име
Pocket Ledger. - Подгответе профил в Google за новата таблица. Започнете с измислените записи по-долу.
- Използвайте нов бот в Telegram за това упражнение. Осигурете си втори доверен профил в Telegram за теста на достъпа накрая.
Планът Free на Quickchat AI е предназначен за лично обучение с нетърговска цел и включва ограничен ресурс. Разговорите с AI и Simulation Testing изразходват кредити. Прегледайте актуалните планове и включени ресурси, преди да изберете план за постоянна употреба.
Две посоки, две действия. Записването на ред не дава на агента начин да прочита предишни общи суми.
Стъпка 1: Как да свържете личния си бот в Telegram?
BotFather създава самоличността на бота. Quickchat AI осигурява агента, който отговаря на съобщенията му.
Отворете официалния @BotFather, изпратете /newbot, наречете бота Pocket Ledger и изберете свободно потребителско име, завършващо на bot. Използвайте /setuserpic, за да качите аватара от пакета. Пазете токена в тайна; ще го поставите директно в Quickchat AI.

В Quickchat AI отворете External Apps → Telegram → Your own bot. Изберете Connect to Telegram, поставете токена в Bot Token и потвърдете диалога. Включете Enable your own bot и изберете Save. Ръководството за BotFather описва подробно тези екрани.
Свързаният бот носи същото име Pocket Ledger, което ще виждате в Telegram.
Отворете връзката към новия си бот в Telegram, изпратете /start, след което изпратете Hello в личния чат. /start изпраща приветственото съобщение, а обикновеното съобщение създава разговора в Inbox и метаданните на подателя, необходими по-долу. Оставете действията с лични данни неактивни, докато ги настройвате.

Отворете този разговор в Quickchat AI чрез Inbox → Details → Visitor. Намерете Telegram User Id и Telegram Chat Type (ключовете на метаданните са telegram_user_id и telegram_chat_type). Копирайте числовия потребителски идентификатор с бутона, който се появява при посочване, и потвърдете, че типът на чата е private.
Вземете идентификатора си на подател от това поле. Личните идентификатори са скрити на снимката; използвайте собствената си действителна стойност.
Идентификаторът идва от метаданните на подателя в Telegram. Потребителското ви име, число, въведено в съобщение, и идентификаторът на самия бот са различни неща. В следващите стъпки ще използвате идентификатора на подателя, за да ограничите и двете действия.
Стъпка 2: Как да подготвите таблицата в Google Sheets?
Интеграцията с Google Sheets създава електронна таблица и начално действие. Използвайте същия файл, така че действието и разрешението от Google да се отнасят до един и същ ресурс.
- Отворете Actions & MCPs → Add Action → Google Sheets и разрешете достъп до профила си в Google. Ръководството за свързване с Google Sheets обяснява съгласието и началната конфигурация.
- Изключете началното действие веднага. То се създава активно. Запазете името му,
log_lead_to_google_sheet, защото при повторно свързване системата го търси по това име. Ще променим предназначението му, така че да записва разходи. - Отворете създадената електронна таблица и я наречете
Pocket Ledger demo. В този нов демонстрационен файл изберете File → Import → Upload, посочетеpocket-ledger-starter.xlsxот пакета и изберете Replace spreadsheet, след което натиснете Import data. Така подготвятеExpensesиSummaryвъв файла, до който Quickchat AI има достъп. Използвайте тази опция само в новата демонстрационна таблица. - Проверете трите начални реда по-долу. В
Summaryначалните суми трябва да са 7,70 EUR и 6,00 USD. Стъпка 6 обяснява формулата и свързва Action за четене.
Започнете със свързването на Google Sheets. Разрешаването на достъпа създава таблицата, която използват и двете Actions.
Предпочитате сами да създадете разделите? Преименувайте началния раздел на Expenses. За тези примери на английски задайте File → Settings → Locale → United States. Форматирайте A:D и F:H като Plain text, а E като Number с два знака след десетичната запетая, после поставете блока по-долу в A1. Фиксирайте заглавния ред и разширете колоните. Добавете Summary според Стъпка 6. Google описва и импортирането на работна книга от Excel в съществуваща таблица.
Копирайте трите начални разхода
date month item category amount currency note conversation_url
2026-11-01 2026-11 coffee food 4.50 EUR synthetic example
2026-11-02 2026-11 bus ticket transport 3.20 EUR synthetic example
2026-11-03 2026-11 notebook stationery 6.00 USD synthetic example
Три начални разхода, готови за четвъртия. Сумите са числа в E; валутните кодове са отделни текстови стойности във F.
Колоната conversation_url ще свързва всеки нов разход с неговия разговор. Оставете я празна за трите ръчно въведени примера. Разрешението drive.file на Google обхваща файлове, създадени от приложението или изрично предоставени на него. Тази конфигурация използва таблицата, създадена от интеграцията, и не предоставя достъп до целия ви Drive.
Стъпка 3: Как да ограничите разходите до собствения си чат?
Задайте Run only when за всяко действие, което чете или записва в бележника. Двете условия трябва да са изпълнени едновременно, така че само вашият идентификатор не е достатъчен в групов чат.
| Ключ на метаданните | Сравнение | Стойност |
|---|---|---|
telegram_user_id | равно на | Истинският ви числов идентификатор на подател от стъпка 1 |
telegram_chat_type | равно на | private |
- Отворете неактивното действие
log_lead_to_google_sheetи намерете Run only when. - Добавете и двете условия от таблицата. Използвайте точните ключове на метаданните и цифрите на своя идентификатор, без потребителско име или префикс
@. - Запазете действието, като го оставите неактивно. Приложете същите условия към действието за четене, когато го създадете в стъпка 6.
Условията на действието за записване в локалната демонстрация. Заменете измисления идентификатор с истинския си идентификатор на подател и повторете двете условия за действието за четене.
И двете условия трябва да присъстват и в двете действия. Друг подател или групов чат трябва да бъдат спрени от проверката, преди HTTP заявка да достигне Google Sheets.
Това са условия за действията, прилагани от сървъра. Инструкцията „отговаряй само на мен“ не е проверка за достъп. Ограничете също споделянето на таблицата и достъпа до профила си в Quickchat AI.
Стъпка 4: Как да накарате бота да записва потвърден разход?
Променете началното действие, така че да добавя един ред в реда на колоните на таблицата. Задайте When to run → AI decides, за да може да изчака потвърждение. След това дайте на агента правило за потвърждение, преди да включите действието.
Настройте полетата за разхода
В What to ask the user first заменете полетата за потенциални клиенти с тези параметри. Запазете имената на параметрите точно както са показани.
| Параметър | Тип данни | Задължителен | Описание за въвеждане |
|---|---|---|---|
date | Текст | Да | Дата на разхода във формат YYYY-MM-DD, потвърдена от собственика. Попитайте, ако липсва. |
month | Текст | Да | YYYY-MM, извлечен от потвърдената дата. |
item | Текст | Да | Кратко име на покупката. |
category | Текст | Да | Проста категория, съгласувана със собственика, като храна или транспорт. |
amount | Десетично число | Да | Положителна числова сума без символ за валута. |
currency | Текст | Да | Потвърден ISO код на валутата, като EUR или USD. Изяснете двусмислените символи. |
note | Текст | Не | Незадължителна бележка. Оставете празно, ако не е предоставена. |
Запазете действителния идентификатор на таблицата от съществуващото поле API Endpoint. Променете диапазона на Expenses!A:H, запазете метода POST и задайте Query Params на valueInputOption=RAW и insertDataOption=INSERT_ROWS. Премахнете дублиращите се параметри на заявката, ако вече присъстват в URL адреса.
Копирайте образеца на заявката за добавяне
POST https://sheets.googleapis.com/v4/spreadsheets/YOUR_CREATED_SHEET_ID/values/Expenses!A:H:append
Query Params:
valueInputOption = RAW
insertDataOption = INSERT_ROWS
Headers:
Authorization = Bearer {{google_sheets_access_token}}
Content-Type = application/json
YOUR_CREATED_SHEET_ID е пояснителен заместител. Запазете реалния си идентификатор, който вече присъства в началния URL адрес. Не го заменяйте с този текст. Изберете съществуващия System Token за Google Sheets като стойност за Authorization, а в тялото изберете вградената променлива за URL адреса на разговора.
В раздела Body въведете:
{"values":[["{{date}}","{{month}}","{{item}}","{{category}}","{{amount}}","{{currency}}","{{note}}","{{conversation_url}}"]]}
Локална конфигурация на действието за разходи. Тялото определя реда на клетките, а форматът на параметъра за сума определя числовия му тип.
Запазете кавичките около {{amount}} в редактора. Тъй като този точен заместител сочи към параметър от тип Decimal Number, заместването създава JSON число, например 4.5. Премахването на кавичките прави JSON в редактора невалиден. В получената таблица проверете дали E съдържа число и участва във формулата.
API за добавяне на Google добавя реда. RAW запазва текст, като бележка, започваща с =, буквално, вместо да го изпълнява като формула. Числовият параметър задава типа на сумата.
Копирайте описанието на действието за записване
Save one personal expense to the configured Google Sheet. Call only after the owner explicitly confirms the proposed date, item, category, amount and currency. Ask for missing or ambiguous fields before saving. After confirmation, append one row once. Report success only after a successful API response. If the outcome is uncertain, tell the owner to inspect the Sheet before submitting again.
Дайте инструкции на Pocket Ledger
Отворете Identity → Main Prompt и поставете следното. В него са посочени и двете действия, така че втората цел да работи, след като добавите четенето на справката.
Main Prompt се намира в Identity. Тази локална екранна снимка показва къде е полето. Използвайте пълния блок за копиране по-долу.
Правилото за потвърждение ви дава полезна пауза. Можете да коригирате „4,50 EUR“ на „5,00 EUR“, преди да одобрите покупката; Agent трябва да актуализира предложението и да попита отново.
Копирайте Main Prompt на Pocket Ledger
You are Pocket Ledger, a personal expense notebook.
For an expense, collect its date, item, positive amount and ISO currency code. Suggest a simple category and include an optional note only when supplied. Ask for an explicit YYYY-MM-DD date if it is missing or relative; do not guess today's date or the owner's timezone. Clarify ambiguous currency symbols. Derive month as YYYY-MM from the confirmed date.
Show the proposed date, item, category, amount and currency. Wait for explicit confirmation. Apply corrections and ask for confirmation again. Only then call log_lead_to_google_sheet once for that expense. Do not claim it was saved unless the Action succeeds. If a request fails or its outcome is uncertain, explain that and ask the owner to inspect the Sheet before retrying.
For monthly totals, ask for an explicit month and currency when unclear, then call read_expense_summary. Quote the matching month, currency and total returned from the Sheet. Keep currencies separate. A missing summary row is unavailable, not zero. Never calculate totals from remembered conversation messages.
Personal-data Actions are restricted to the owner's private Telegram chat. If a condition blocks an Action, do not claim success or suggest changing identity values in chat. This notebook handles typed expenses, not bank accounts, voice transcription or PDF receipts.
Запазете инструкциите, проверете отново двете условия за изпълнение и включете действието за разходи. Името все още е log_lead_to_google_sheet, но новите параметри, описание и тяло вече определят процеса за разходи.
Стъпка 5: Как да запишете първия си разход?
Сега добавете първия нов запис в тефтера. Оставете Telegram, Inbox и таблицата отворени: ще проследите едно и също кафе през трите места.
- В личния си чат в Telegram изпратете
Coffee, 4.50 euros on 2026-11-04. - Проверете предложението: дата
2026-11-04, артикулCoffee, категорияFood, сума4.50, валутаEUR. При запазването на реда Action извеждаmonthкато2026-11. - Преди да потвърдите, проверете
Expenses: трите начални реда все още трябва да са единствените записи.


Изпратете Save it веднъж, после отворете разговора в Inbox на Quickchat AI. Отговорът за запазването има разгъваема секция 1 action called. Отворете я, за да видите какво се е случило зад краткия отговор в Telegram.
Същото потвърждение в Inbox, с възможност да прегледате Action.
Разгънете Result → Show full. Проверете датата, изведения месец, числовата сума, валутата и HTTP статуса. При това реално изпълнение Google върна HTTP 200, updatedRows: 1 и updatedRange: Expenses!A5:H5.
Action за запис изпрати сумата 4.5 като число и записа един ред. Личните идентификатори са скрити; върнатият диапазон и резултатът остават видими.
Накрая отворете Expenses. Ред 5 трябва да съдържа същото кафе, с 2026-11 в колоната за месец, 4.50 за сума и EUR за валута. Последната колона води обратно към разговора в Inbox, за да можете да проследите записа до съобщението, което го е създало.
Четвъртият разход пристигна чрез Telegram. Личната връзка към Inbox е скрита в публикуваното изображение.
Вече имате полезния ежедневен навик: изпращате, потвърждавате, проверявате. След това дайте на бота надежден източник за четене, когато попитате къде са отишли парите за месеца.
Стъпка 6: Как да поискате обща месечна сума?
Оставете Google Sheets да изчисли общата сума, след което нека действието за четене я извлече. Когато изчисленията остават в таблицата, можете да проверите отговора дори след края на разговора.
Добавете раздел Summary
Ако сте импортирали началната работна книга, Summary и формулите му вече са подготвени. Началните стойности са 7,70 EUR и 6,00 USD; запазването на кафето променя само реда за EUR. Ако създавате таблицата ръчно, следвайте стъпките по-долу.
Началната точка: две валути, две независими суми.
- Създайте раздел с име
Summary. Задайте Plain text за колони A:B, след което въведетеmonth,currency,totalв A1:C1. - Въведете
2026-11иEURв A2:B2, след което2026-11иUSDв A3:B3. - Въведете тази формула в C2 и я копирайте надолу в C3. Форматирайте C като число с два знака след десетичната запетая.
=SUMIFS(Expenses!$E$2:$E$501,Expenses!$B$2:$B$501,A2,Expenses!$F$2:$F$501,B2)
Функцията SUMIFS събира сумите, чийто месец и валута съвпадат с реда в справката. Ако регионалните настройки на таблицата изискват точка и запетая между аргументите, заменете запетаите във формулата с точка и запетая. Числата в JSON заявките продължават да използват десетична точка.
Изберете C2, за да видите формулата зад 12,20 EUR. Редът за USD остава 6,00.
Началните 7,70 EUR плюс новото кафе за 4,50 EUR дават 12,20 EUR. Тефтерът за 6,00 USD се включва в отделна обща сума.
Началната формула обхваща редове от 2 до 501. При заснетото изпълнение трите ѝ диапазона завършват на 502 след вмъкването на новия ред. Sheets може да коригира препратките при вмъкване; проверете дали трите диапазона в Expenses остават с еднакви граници и ги разширявайте заедно, преди записите да излязат извън обхванатите редове. Добавете обобщаващ ред за всяка комбинация от месец и валута, за която искате да питате.
Добавете действието за четене
Отворете Actions & MCPs → Add Action → API Action. Използвайте Generate със заявката по-долу. Генерираните действия започват неактивни. Наречете го read_expense_summary и запазете When to run на AI decides, така че резултатът да може да се използва в отговора. Използвайте същия действителен идентификатор на таблицата и System Token за Google Sheets. Не са необходими параметри, предоставени от потребителя.
Копирайте заявката за създаване на действието
Create a read-only Google Sheets Action named read_expense_summary. Use GET for the Summary!A1:C25 range of the spreadsheet already created by this Agent's Google Sheets integration. Reuse its actual spreadsheet ID and google_sheets_access_token System Token. Set valueRenderOption=UNFORMATTED_VALUE, no body, and no visitor parameters. Preserve the response headers and values. Leave it inactive so I can review the configuration and add my owner-ID and private-chat Run only when conditions before enabling it.
Сравнете генерираните настройки със следващия образец. Ако вместо това изберете Create manually, добавете двете условия преди първото валидно запазване, което може да активира действието. Оставете Response filter празен и за двете действия, за да запазите полетата, използвани при проверките.
Копирайте заявката за прочитане на справката
GET https://sheets.googleapis.com/v4/spreadsheets/YOUR_CREATED_SHEET_ID/values/Summary!A1:C25
Query Params:
valueRenderOption = UNFORMATTED_VALUE
Headers:
Authorization = Bearer {{google_sheets_access_token}}
Body: none
Крайната точка values.get връща values от диапазона, включително заглавния ред и изчислените суми. UNFORMATTED_VALUE връща числови резултати вместо низове, форматирани като валута. Оставете отговора достъпен за агента, за да може да прочете тези стойности.
Копирайте описанието на действието за четене
Read monthly expense totals from the configured Summary range. Use this when the owner asks for a total. Quote only the returned row matching the requested YYYY-MM and currency. If either is unclear, ask. If the row is absent or the request fails, say the total is unavailable. Never infer a total from conversation history, combine currencies, or accept a different spreadsheet ID or range from the visitor.
Приложете същите две условия Run only when от Стъпка 3, запазете и активирайте Action. Диапазонът за четене включва 24 обобщаващи реда; разширявайте го целенасочено, когато добавяте още.
Второто действие се нуждае от собствени условия. Това е екранна снимка на локални настройки, а не тест за разрешаване на достъп на реален подател.
Попитайте What is my November 2026 total in EUR?, после попитайте за USD. В нашия разговор в Telegram Pocket Ledger върна 12.2 EUR и 6 USD, съответстващи на форматираните 12.20 и 6.00 в таблицата. За всеки отговор той прочете запазеното обобщение.

Отворете отговора за месечната сума в Inbox и разгънете неговата Action. Сравнете върнатия ред със Summary!C2. Реалният отговор по-долу съдържа 2026-11, EUR, 12.2 и отделен ред с USD, 6, с HTTP 200.
Отговорът, върнатите стойности и таблицата вече съвпадат. Това е крайната цел, която видяхте в началото.
Как да проверите за грешки, преди да използвате реални разходи?
Тествайте непълните заявки и блокираните податели също толкова внимателно, колкото успешния пример с кафето. Запазете демонстрационните данни, докато проверките по-долу не преминат успешно.
| Опитайте това | Какво да проверите |
|---|---|
Lunch, $12 yesterday | Агентът пита за валутата и точната дата. Не се появява нов ред. |
| Поправете предложената сума преди потвърждение | Поправеното предложение се потвърждава, преди да бъде добавен един-единствен ред. |
| Попитайте за общата сума за ноември в EUR, след това в USD | Отделни резултати: 12,20 EUR и 6,00 USD за примерните данни. |
| Попитайте за декември 2026 г., когато няма ред за декември в справката | Агентът казва, че общата сума не е налична, вместо да измисля нула. |
| Втори подател иска обща сума и опитва да запише разход | И двете действия са отказани и не се разкриват лични стойности. |
| Собственикът отправя същите заявки в група | И двете действия са отказани, защото чатът не е личен. |
| Записването е неуспешно или времето за изчакване изтича | Отговорът съобщава за грешка или несигурност. Проверете таблицата, преди да опитате отново. |
За повторяеми езикови тестове отворете Testing → Create Dataset → Paste messages и използвайте съобщенията и критериите за оценяване от комплекта. Проведете отделен пълен разговор за последователността на потвърждение. Метаданните в Preview или Simulation са тестови данни. Те не доказват, че реален втори подател в Telegram е блокиран.
Локалният набор от данни е подготвен за тестване. Наличието му не означава завършено изпълнение на Simulation и не доказва запис в Google Sheets.
Ако дадено поведение не работи, променете една свързана инструкция, след което повторете същия вход и отново проверете извикването и таблицата. Например преждевременното добавяне изисква по-внимателен преглед на формулировката за потвърждение в действието за записване. Потвърждението е инструкция, а не гаранция за уникалност в базата данни. След изтичане на времето за изчакване проверката на таблицата е по-важна от повторното изпращане.
След като целият процес заработи, премахнете измислените редове с разходи, запазете заглавията и формулите и добавете редове за справка за месеците и валутите, които действително използвате. Първата ви реална покупка може да следва същите кратки стъпки като кафето.
Може ли AI асистент да помогне с настройката на Pocket Ledger?
Свързан асистент за управление на профила може да помогне с подготовката на агента и прегледа на настройките на действията. Следвайте Manage with AI чрез страницата на Quickchat AI в ChatGPT или Claude. Дайте му комплекта за настройка и тази заявка:
Help me configure Pocket Ledger from this setup kit. Inspect the available Quickchat AI tools first. Prepare the Main Prompt and the two HTTP Actions using the exact field names, numeric amount type and fixed ranges. Keep log_lead_to_google_sheet as the starter name. Ask me to complete Google OAuth and Telegram Bot Token setup in the dashboard. Apply both owner/private run conditions before enabling either Action. Do not run credit-consuming tests or append expenses until I ask. Report any setting your tools cannot configure so I can complete it in the dashboard.
Собственикът завършва съгласието в Google и свързването с Telegram. Прегледайте настройките и изпълнете същите проверки по-горе, независимо кой ги е въвел.
Често задавани въпроси
Как да следя разходите си в Telegram с Google Sheets?
Свържете бот в Telegram с агент на Quickchat AI и разрешете достъп до Google Sheets. Настройте едно действие да добавя разход след потвърждение и друго да прочита месечна справка, изчислена с формула. Ограничете и двете действия до вашия потребителски идентификатор в Telegram и личен чат.
Може ли ботът да ми каже колко съм похарчил този месец?
Да, когато исканият месец и валута имат ред в конфигурирания диапазон Summary. Google Sheets изчислява общата сума със SUMIFS, а действието за четене я извлича. Действие, което само добавя редове, не може да извлича общи суми, а липсващ ред в справката не означава нула.
Може ли някой друг да прочете разходите ми чрез бота в Telegram?
И двете действия с лични данни трябва да изискват потвърдения ви telegram_user_id и telegram_chat_type със стойност private. Тези условия блокират извикванията от други податели и групи. Тествайте и двата случая, преди да добавите лични данни, и ограничете също достъпа до таблицата и профила в Quickchat AI.
Безплатен ли е този бот за разходи в Telegram?
Създаването на бот в Telegram е безплатно. Планът Free на Quickchat AI поддържа лично обучение с нетърговска цел и ограничен брой AI кредити. Отговорите с AI и Simulation Testing използват кредити. Постоянната употреба зависи от наличните ви кредити и план.
Нужни ли са ми Apps Script, Python или сървър за автоматизация?
Тази конфигурация използва действия на Quickchat AI и формула в Google Sheets. Поставяте предоставените настройки на заявките, JSON тяло и инструкции в контролния панел. Не внедрявате Apps Script, Python бот или сървър за автоматизация.
Мога ли да използвам съществуващата си таблица за разходи?
Тази конфигурация използва таблицата, създадена от интеграцията на Quickchat AI с Google Sheets. Нейното разрешение drive.file не ѝ дава неограничен достъп до вашия Drive. Не заменяйте идентификатора на таблицата с произволен съществуващ файл с предположението, че той е достъпен.
Може ли ботът да чете снимки на касови бележки или гласови съобщения?
Това ръководство обхваща разходи, въведени като текст. Извличането на данни от касови бележки изисква отделен тест за доставяне на изображения през Telegram и потвърждение, преди да разчитате на него. Транскрибирането на глас и разчитането на касови бележки в PDF не са част от тази настройка.
Как се обработват различните валути и дублираните записи?
Всяка валута има отделна обща месечна сума. Конфигурацията не преобразува валути. Потвърждението намалява случайните записи, но не осигурява атомарна защита срещу дублиране. Ако времето за записване изтече, проверете таблицата, преди да изпратите заявката отново.