Skip to main content
Glama
1c-odata-mcp

1c-odata-mcp

by foxnaim

Выровнять сумму расшифровки банковского документа

write.document.align_bank_payment_amounts

Corrects a single bank payment detail line on an unposted receipt or write-off when its amount is blank or differs from the document total, aligning payment and settlement amounts, rate, and VAT.

Instructions

Выравнивает единственную строку «Расшифровки платежа» существующего НЕПРОВЕДЁННОГО банковского поступления или списания по сумме документа: сумма платежа и сумма взаиморасчётов = сумма документа, курс и кратность 1, НДС по ставке строки. Для случая, когда сумма в шапке есть, а в строке пусто или другая — иначе 1С проведёт документ с неверными проводками по расчётам. Только рубли и договор в рублях без условных единиц; несколько строк, валюта и неизвестная ставка НДС — отказ, суммы не угадываются. Нужна точная expectedDataVersion; предпросмотр показывает «было → станет», остальные поля сохраняются, контрольное чтение после записи. Проведение — отдельным вызовом post_document.

Input Schema

NameRequiredDescriptionDefault
refYes
confirmNo
databaseNoИмя базы 1С из list_databases. Без указания — база по умолчанию.
entitySetYes
operationIdNoUUID из предпросмотра. Передайте его при confirm=true, чтобы повтор не создал дубликат.
expectedDataVersionYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.12.0

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false, destructiveHint=false, openWorldHint=true; the description goes well beyond that with preview semantics ("было → станет"), preservation of all other fields, a post-write control read, refusal rather than guessing, and a hard concurrency requirement on expectedDataVersion. Minor gap: it never explains the confirm=true / operationId idempotency path explicitly, though the flow is implied by "предпросмотр".

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five dense sentences, front-loaded with the action and scope, then the rationale, then the refusal conditions, then the concurrency/verification mechanics, then the posting hand-off. No filler or restated boilerplate; each sentence adds information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an output schema existing, the description still explains what the caller will observe (preview diff, unchanged fields, control read). For a mutation tool with six params, three required, and refusal semantics, nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (only database and operationId are documented), so the description must carry weight. It does explain expectedDataVersion's exactness requirement — a required parameter with no schema description — and implies the preview/idempotency flow. It still leaves confirm, entitySet and ref's expected values unstated, so it compensates well but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb ("Выравнивает") and a precise object: the single "Расшифровка платежа" line of an existing UNPOSTED bank receipt or writeoff, aligned to the document total. It also enumerates exactly which fields are overwritten (payment amount, settlement amount, rate, multiplicity, VAT), so an agent can distinguish it from generic line-editing siblings like update_document_lines.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the triggering condition explicitly (header amount present but the line is empty or different, otherwise 1C posts wrong settlement entries), the hard exclusions (multiple lines, currency, unknown VAT rate → refusal, amounts are not guessed), and the alternative for the next step ("Проведение — отдельным вызовом post_document"). This is close to an ideal when/when-not/alternatives block.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools