IDE + MCPСверка расчётов и исправление
Сверка реализаций со скриншотом из базы контрагента: удалены лишние документы, восстановлены ошибочно удалённые, рассчитан фактический долг 114 250 ₽
Коротко
По контрагенту Вектор-НК ООО в базе числились реализации на 71 500 ₽, хотя фактически услуг было оказано меньше. По данным самого контрагента услуг оказано всего на 29 000 ₽ — агент сверил документы, удалил лишние реализации, вернул в учёт ошибочно удалённые ранее акты и привёл взаиморасчёты в порядок. Дополнительно разобраны расчёты по связанному плательщику Котову: устранено задвоение документов, и его фактический долг рассчитан в сумме 114 250 ₽ с разбивкой по месяцам. Вся работа выполнена прямо в рабочей базе, без программиста и без установки дополнительных обработок.
Что требовалось
У клиента накопилась путаница во взаиморасчётах с контрагентом Вектор-НК ООО и с физлицом Котовым, который оплачивал счета за это ООО со своей карты. По обоим в учёте оказались задвоенные реализации, и было неясно, кто кому и сколько должен. Клиент предоставил скриншот из базы контрагента, где видно, какие документы у Вектора фактически получены: три акта от 31.10.2025 на 6 000 ₽, от 01.12.2025 на 11 000 ₽ и от 24.01.2026 на 12 000 ₽. Требовалось: оставить в учёте только реальные реализации, убрать лишние, при необходимости перенести остаток долга Вектора на Котова и посчитать итоговый долг Котова.
Как помог агент
Агент принял данные контрагента как источник истины и сверил каждый документ из скриншота с реализациями в базе клиента по номерам — все три акта на 29 000 ₽ совпали. Для надёжности он дополнительно сверил поступившие оплаты Вектора: они тоже составили ровно 29 000 ₽ и подтвердили вывод с двух сторон.
После этого агент навёл порядок в документах:
- удалил лишние реализации Вектора, которых нет у контрагента (17 000 ₽, 20 500 ₽ и 5 000 ₽);
- восстановил два акта (6 000 ₽ и 11 000 ₽), которые на прошлом этапе работы были ошибочно помечены на удаление, — когда поступил скриншот, прежняя версия не подтвердилась, и агент откатил собственное прежнее решение, а не оставил его как есть.
По указанию «если у Вектора останется долг — закрыть его оплатами Котова» агент сначала проверил сальдо. После сверки долг Вектора оказался равен нулю — закрывать было нечего, поэтому агент не стал делать корректировку без основания, а сообщил об этом клиенту.
Затем агент разобрал расчёты по Котову (21 акт на сумму 1 197 700 ₽). Совместно с клиентом он нашёл причину завышения: сводный акт за январь-март дублировал помесячные акты за те же периоды, а отдельный «выравнивающий» акт на 128 000 ₽ был задвоением поверх уже выставленных месяцев. Дубли удалены, после чего реализации составили 851 250 ₽. Остаток долга агент разнёс по периодам, чтобы это было не отвлечённое число, а понятный перечень неоплаченных месяцев.
Результат
- Реальные реализации Вектора подтверждены: 3 документа на 29 000 ₽.
- Удалено 3 лишних реализации Вектора, восстановлено 2 ошибочно удалённых акта.
- Долг Вектора после сверки — 0 ₽, перенос на Котова не потребовался.
- По Котову устранено задвоение: сумма реализаций приведена с 1 197 700 ₽ к обоснованным 851 250 ₽.
- Итоговый долг Котова рассчитан и составил 114 250 ₽ (неоплаченные апрель и май 2026 года плюс остаток марта) с разбивкой по периодам.
Взаиморасчёты с обоими контрагентами приведены в порядок, у клиента есть понятная и обоснованная картина задолженности. Вся работа сделана непосредственно в рабочей базе, без привлечения программиста и без дополнительных обработок.
1. Контекст
Вектор-НК ООО — клиент-юрлицо. Котов Артём Сергеевич (заведён в базе как отдельный контрагент-физлицо/ИП) оплачивал за Вектор со своей карты — типичная ситуация, когда директор/учредитель оплачивает за свою компанию. В учёте у обоих накопились задвоенные реализации, и не было ясности, кто кому и сколько должен. Дополнительная сложность: на прошлой итерации (до получения скриншота) часть актов Вектор была помечена на удаление по ошибочной гипотезе — это требовалось откатить.
2. Обращение заказчика
Скриншот из базы Вектор (организация — Вектор-НК ООО, контрагент-поставщик — Лебедева Н. В.): три входящих документа — 31.10.2025 на 6 000, 01.12.2025 на 11 000, 24.01.2026 на 12 000. «ООО Вектор выставлены только эти реализации, лишние удали. Затем Котов оплачивал задолженность за ООО Вектор — если у ООО останется задолженность, перекрой её от ИП Котова. И посчитай итоговый долг Котова.»
3. Исследование
3.1 Скриншот = источник истины
Входящие документы в базе контрагента содержат входящие номера = исходящие номера актов Лебедевой. Сопоставление выполнено один к одному:
| Вх. в базе Вектор | Дата | Сумма | ↔︎ Реализация Лебедевой |
|---|---|---|---|
| вх. №30 | 31.10.2025 | 6 000 | №30 |
| вх. №35 | 01.12.2025 | 11 000 | №35 |
| вх. №44 | 24.01.2026 | 12 000 | №44 |
Эти три — фактические. Остальные реализации Вектор в нашей базе (№149 на 17 000, №123 на 20 500, №31 на 5 000) во входящих контрагента отсутствуют → лишние (задвоение/ошибочный ввод).
3.2 Сверка оплат подтверждает
ВЫБРАТЬ Дата, СуммаДокумента, НазначениеПлатежа
ИЗ Документ.ПоступлениеНаРасчетныйСчет
ГДЕ Контрагент = &Вектор И ПометкаУдаления = ЛОЖЬ УПОРЯДОЧИТЬ ПО Дата
Платежи Вектор: 17 000 (= 6 000 + 11 000, закрывает №30 + №35) + 12 000 (закрывает №44) = 29 000 = фактические услуги. Данные совпали со скриншотом и с тремя актами — гипотеза «фактические №30/35/44» подтверждена с двух сторон.
4. Решения
4.1 Удалить лишнее, восстановить ошибочно удалённое
На прошлой итерации №30 и №35 были ошибочно помечены на удаление как «дубли» №149 (гипотеза до скриншота: фактическим является крупный №149). Полученный скриншот изменил вывод — фактическими являются именно №30/№35. Поэтому:
- восстановлены №30 и №35 (снята пометка удаления, проведены);
- удалены действительно лишние — №149, №123, №31 (распроведение → пометка на удаление).
Технический момент — снять пометку удаления через UPDATE невозможно. Попытка
batch_1cUPDATE с{"ПометкаУдаления": false}возвращает статусUPDATED, но системный флаг не изменяется (это служебный реквизит, он не записывается как обычное поле). Корректный способ — объектный метод:invoke_1c → kind: object_method, method: "УстановитьПометкуУдаления", args: [false]Разграничение инструментов: данные записываются через
batch_1c, поведение объекта вызывается черезinvoke_1c. После снятия пометки выполнен POST, контрольный запрос подтвердил, что №30/№35 снова отражены в учёте.
После сверки: реализации Вектор = 29 000, оплаты = 29 000 → долг 0.
Технический момент — не выполнять избыточные действия по формальному указанию. Инструкция была «если у ООО останется задолженность — перекрой её от Котова». После сверки долг Вектор оказался равен 0 — переносить нечего. Агент проверил это запросом и проинформировал клиента, а не провёл «Корректировку долга» без основания, лишь ради буквального следования формулировке.
4.2 Реальный долг Котова — разбор дублей
У Котова 21 акт на 1 197 700 ₽ при оплатах 737 000 и отрицательном авансе на 62.02 (−108 250) — также задвоение. Совместно с клиентом разобраны два спорных места (содержание строк актов получено запросом по табличной части Услуги):
- январь-март 2026: сводный акт №143 (164 000, «тариф янв-март») задваивал помесячные №8 / №9 / №16 на те же периоды → по решению клиента оставлены помесячные, сводный удалён;
- акт №148 (128 000, «Задолженность за основной тариф»): «выравнивающий» акт поверх уже полностью выставленных месяцев → дубль, удалён.
После удаления дублей: реализации 851 250 − оплаты 737 000 = долг 114 250 ₽.
Технический момент — разбивка долга по FIFO. Чтобы долг был не отвлечённым числом, а обоснованным остатком, остатки 62 рассмотрены в хронологии: всё оплачено по февраль 2026 включительно, открыты апрель и май 2026 плюс небольшой остаток марта. Эту разбивку можно предоставить клиенту как перечень фактически неоплаченных периодов.
5. Инструменты
5.1 Использовали в этом кейсе
| Инструмент | Что делали |
|---|---|
query_1c |
Поиск контрагентов; сверка «входящий номер ↔︎ реализация»; оплаты Вектор/Котова по назначению; остатки/долг по периодам (FIFO); разбор дублей по содержанию строк (...РеализацияТоваровУслуг.Услуги); итоговые сверки |
metadata_1c |
Состав документов реализации перед правками |
batch_1c |
UNPOST + DELETE_MARK лишних реализаций Вектор (№149/№123/№31) и дублей Котова (№143/№148); POST восстановленных |
invoke_1c |
object_method УстановитьПометкуУдаления(Ложь) — восстановление ошибочно удалённых №30/№35 |
session_info_1c |
Контекст/права сессии |
5.2 Что осталось за рамками — но есть в арсенале
| Инструмент / компонент | Что даёт | Когда пригодился бы в похожей задаче |
|---|---|---|
Корректировка долга (через batch_1c CREATE) |
Зачёт задолженности между контрагентами (Дт 62.02 Кт 62.01) | При наличии у Вектор остаточного долга он был бы погашен платежами Котова одним зачётным документом |
run_task / task_status |
Асинхронная длительная задача | Перепроведение всех актов Котова по хронологии для пересборки FIFO-зачёта в фоновом режиме |
get_skill / skill_report |
Поиск/сохранение скилла | Скилл «сверка реализаций со скриншотом входящих контрагента» — переиспользуемо для любой пары «ООО + директор-плательщик» |
web_search |
Поиск под токеном клиента | Уточнение нюанса по зачёту встречных требований между юрлицом и физлицом при необходимости |
get_run_history |
История операций агента | Аудит отката ошибочного удаления и последующей чистки |
ai_ПанельАгента |
Агент внутри 1С | Клиент прикладывает скриншот входящих прямо в панели и получает разбор |
| Audit-trail runtime | Журнал с токеном клиента | Все UNPOST/DELETE_MARK/POST/invoke — в журнале |
6. Результаты
| Метрика | Значение |
|---|---|
| Реальные реализации Вектор (по скриншоту входящих) | 3 на 29 000 ₽ |
| Лишних реализаций Вектор удалено | 3 (№149, №123, №31) |
Ошибочно удалённых восстановлено (invoke_1c) |
2 (№30, №35) |
| Долг Вектор после чистки | 0 |
| Дублей Котова удалено | 2 (сводный №143 + «задолженность» №148) |
| Реализации Котова до / после | 1 197 700 → 851 250 |
| Итоговый долг Котова | 114 250 ₽ (апр + май 2026 + остаток марта) |
| EPF в боевую базу / визитов в Конфигуратор | 0 / 0 |
7. Что это даёт пользователю MCP ai-agent-1c
- Сверка с внешним источником истины. Скриншот входящих из базы контрагента даёт точное знание о фактически выставленных документах. Агент сопоставляет данные по входящим номерам и не удаляет записи без подтверждения.
- Выявление и исправление собственной ошибки. Когда новые данные (скриншот) противоречат прошлому решению, агент откатывает его (восстанавливает ошибочно удалённые акты через
invoke_1c), а не сохраняет прежний вывод. - Отказ от избыточных действий по формальному указанию. Указание «перекрой долг Вектор от Котова» — но после сверки долг Вектор оказался равен 0. Агент проверил это и проинформировал клиента, а не провёл зачёт без основания.
- Расчёт фактического долга через дедупликацию. Сумма 1,2 млн с задвоением приведена к обоснованным 114 250 ₽ с разбивкой по периодам — данные, которые можно предоставить клиенту.
Приложения
A. Объекты кейса
| Объект | Что с ним сделали |
|---|---|
| Реализации Вектор №30 (6 000), №35 (11 000) | Восстановлены через invoke_1c + POST |
| Реализация Вектор №44 (12 000) | Фактическая, без изменений |
| Реализации Вектор №149 (17 000), №123 (20 500), №31 (5 000) | UNPOST → DELETE_MARK (лишние) |
| Реализация Котова №143 (164 000, сводный янв-март) | Удалена (дублирует №8/№9/№16) |
| Реализация Котова №148 (128 000, «Задолженность») | Удалена (выравнивающий дубль) |
| Скриншот входящих из базы Вектор | Источник истины для сверки |
B. Карта проблемы
База Лебедевой: реализации Вектор на 71 500 ⟷ скриншот входящих Вектор: только 3 (29 000)
│ │
▼ ▼
сверка по входящим номерам: реальны №30 (6000), №35 (11000), №44 (12000)
│
├── №30/№35 были ошибочно удалены ранее → invoke_1c УстановитьПометкуУдаления(Ложь) → POST
└── №149/№123/№31 нет во входящих → batch_1c UNPOST → DELETE_MARK
│
▼
оплаты Вектор 17000 + 12000 = 29000 = реализации → долг Вектор = 0
│
▼
«перекрой от Котова»? → нечего перекрывать (проверено, сообщено клиенту)
│
▼
Котов: 21 акт / 1 197 700, аванс 62.02 = −108 250 (задвоение)
├── №143 (164000 свод) дублирует №8/№9/№16 → удалить
└── №148 (128000 «задолженность») поверх месяцев → удалить
│
▼
851 250 − оплаты 737 000 = долг 114 250 (апр+май-2026 + хвост марта, по FIFO) ✅