ИИ для проверки первичных документов в 1С на соответствие контракту

ИИ проверяет первичные документы в 1С по условиям контракта в день проведения документа – без ручного участия бухгалтера. Алгоритм сравнивает цену, скидку, условия оплаты и состав номенклатуры с тем, что зафиксировано в договоре. Ошибки, которые раньше всплывали на квартальной сверке, теперь видны до того, как деньги ушли или товар отгружен.
Что проверяется: пять точек расхождения с договором
Большинство проблем сосредоточены в одних и тех же местах. Вот где документ чаще всего расходится с контрактом.
Цена позиции. Менеджер поставил розничную цену там, где контракт фиксирует оптовую. Разница – 8-15% на позицию. Типичный случай при работе с несколькими прайс-листами одновременно.
Скидка сверх лимита. Договор разрешает скидку до 10%, менеджер поставил 15% «один раз, чтобы закрыть сделку». Контракт нарушен. Если клиент потом обратится в суд или ФНС увяжет сделку с взаимозависимостью – объяснять будет сложно.
Условие оплаты. В контракте – отсрочка 14 дней, менеджер поставил 30. Разница в замороженных оборотных средствах при обороте 5 млн ₽/мес – около 800 000 ₽.
Состав номенклатуры. В договоре – артикул А-001, в накладной – А-001М (модифицированный). Технически другой товар, который контракт не покрывает. Клиент может оспорить приёмку.
ИНН контрагента. Стандартная проверка контрольного числа: для 10-значного ИНН n10 = ((2×n1 + 4×n2 + 10×n3 + 3×n4 + 5×n5 + 9×n6 + 4×n7 + 6×n8 + 8×n9) mod 11) mod 10. Если ИНН не проходит – документ технически недействителен, и вычет НДС по нему под вопросом.
Сколько стоит одна незамеченная ошибка
Оптовая компания в Екатеринбурге, оборот 18 млн ₽/мес, 80 накладных в день. Два бухгалтера проверяют документы вручную – по 6 минут на штуку. Итого 480 минут в день только на проверку первички. При этом охватывают 60-70% документов: остальные «потом».
Результат: 8-12 ошибок в месяц проходят незамеченными. Средняя стоимость одной ошибки – 15 000-35 000 ₽. Суммарные потери в месяц – 120 000-350 000 ₽.
Причина не в плохих бухгалтерах. Причина в том, что ручная проверка 80 накладных в день – физически нереальна без пропусков.
Чек-лист проверки первичного документа по контракту
Семь пунктов, которые нужно закрыть по каждому входящему или исходящему документу:
- Контрагент совпадает с договором: ИНН, КПП, наименование без расхождений.
- Дата документа входит в срок действия контракта (контракт не истёк, не приостановлен).
- Цена каждой позиции не выходит за пределы контрактной цены: допуск ±0,5% на округление.
- Скидка не превышает разрешённый лимит для данного контрагента по справочнику договоров.
- Условие оплаты совпадает с договором: предоплата, постоплата, количество дней отсрочки.
- Номенклатура – только позиции, разрешённые в договоре. Артикулы совпадают точно.
- Подпись уполномоченного лица: доверенность актуальна, срок не истёк.
Если хотя бы один пункт не выполнен – документ не проводится до выяснения обстоятельств. Не «флажок», не «предупреждение», а блок.
Пошаговый регламент: как выстроить контроль в 1С
Шаг 1. Структурируй договоры в машиночитаемом виде. Условия контракта должны быть в справочнике «Договоры контрагентов» в виде конкретных полей: ценовая группа или фиксированная цена, максимальная скидка в процентах, условие оплаты, список разрешённых номенклатурных групп, кредитный лимит. Без этого шага автоматическая проверка невозможна – нечего сравнивать.
Шаг 2. Настрой проверку при проведении документа. В 1С:УТ и ERP обработка «Проверка условий договора» запускается событием ПередЗаписью. При расхождении выше допуска документ не проводится и формируется задача на ответственного.
Шаг 3. Задай пороги отклонений по типам.
- Цена: отклонение более 1% – ошибка; 0,1-1% – предупреждение (возможно округление).
- Скидка: любое превышение лимита – ошибка без нижнего порога.
- Отсрочка: разница более 3 дней – ошибка.
- ИНН: не проходит контрольный расчёт – ошибка.
Шаг 4. Настрой эскалацию. «Предупреждение» – задача менеджеру. «Блокировка» – задача менеджеру плюс уведомление руководителю. Руководитель может разрешить проведение с фиксацией основания.
Шаг 5. Веди журнал проверок. Каждая проверка фиксируется: дата, документ, тип расхождения, кто устранил, итог. Через три месяца ты увидишь, какие ошибки повторяются – и можно будет закрыть их на уровне обучения или регламента.
Аналогичный подход работает и для финансовых документов. Если у тебя проходят взаимозачёты с контрагентами, их тоже стоит проверять систематически – типичные ошибки в зачётах и как их находить в 1С описаны отдельно.
Три формулы, которые можно внедрить сегодня
Формула 1. Допустимое отклонение цены:
Отклонение % = (Цена в документе – Контрактная цена) / Контрактная цена × 100
Порог: от ±1% – предупреждение, от ±3% – блокировка. Числа можно скорректировать под свою маржу.
Формула 2. Иерархия скидок по должностям:
- Менеджер по продажам: до 10%
- Старший менеджер: до 15%
- Руководитель отдела продаж: до 22%
- Выше 22% – только директор с письменным основанием
Если в документе скидка 17%, а проводит его рядовой менеджер – ошибка. Если РОП – норма. Система проверяет роль пользователя, а не просто число.
Формула 3. Контроль остатка кредитного лимита:
Остаток лимита = Кредитный лимит по договору – Текущая дебиторка
Если Остаток лимита < 0 – документ не проводить. Если Остаток лимита < 20% от лимита – предупреждение менеджеру.
Просроченная дебиторка по уже проведённым документам – отдельная зона контроля. Если не настроен контроль пени за просрочку оплаты, кредитный лимит формально соблюдается, но деньги всё равно не приходят вовремя.
ИИ-контроль: что он видит, а стандартная проверка 1С – нет
Стандартные запреты в 1С – это жёсткие блоки: нельзя уйти в минус по остатку, нельзя провести документ без склада. Это нужно, но это не контроль контракта.
ИИ-проверка работает с контекстом и аномалиями. Например:
- Клиент А всегда покупал партиями по 50 штук. Сегодня – 500 штук. Цена в норме, скидка в норме, но объём в 10 раз выше обычного. Стоит проверить, не ошибка ли это в количестве.
- Договор истекает через 10 дней, а сегодня проводится очередная отгрузка. Всё легально, но менеджеру нужно уведомление: пора продлевать контракт.
- Один и тот же ИНН зарегистрирован у двух разных контрагентов в базе. Дубль – потенциальная путаница в расчётах и документах.
- Менеджер три раза за месяц запрашивал согласование скидки сверх лимита у одного и того же клиента. Это не ошибки – это паттерн, который стоит вынести на обсуждение с РОПом.
Классические настройки 1С здесь заканчиваются. Это уже анализ поведения, а не просто сравнение полей.
Это можно не делать руками. Виртуальные сотрудники внутри 1С проверяют каждый документ по условиям контракта в момент проведения, ставят задачи менеджеру при расхождении и перепроверяют исправление – без участия бухгалтера. Посмотрите, как работают виртуальные сотрудники контроля качества в 1С – сводка в Telegram вместо ручных проверок.
Частые вопросы
Нужно ли дорабатывать типовую 1С, чтобы это заработало?
Базовые проверки – цена, скидка, условие оплаты – настраиваются через стандартные механизмы «Соглашений» и «Договоров контрагентов» в 1С:УТ и ERP без программирования. Для анализа аномалий и паттернов поведения потребуется либо доработка, либо внешняя система с интеграцией через HTTP-сервис или COM-соединение.
Что делать, если договор изменился, а документы за прошлый период уже проведены?
Исторические документы перепроверяются отдельным регламентом – через отчёт «Реализации вне условий соглашений». Он доступен в типовых конфигурациях 1С:УТ 11 и ERP 2. Запускать его стоит раз в неделю по завершённым периодам.
Как быть с контрагентами без жёсткого договора – только рамочный?
Рамочный договор тоже нужно формализовать в 1С: задай хотя бы диапазон цен (минимум и максимум), максимальную отсрочку и список номенклатурных групп. Без минимальных параметров автоматическая проверка невозможна – система не знает, с чем сравнивать.
Не замедлит ли это проведение документов в 1С?
При правильной архитектуре – нет. Синхронная проверка одного документа занимает 50-200 миллисекунд. Для пользователя это незаметно. Если проверка сложная (запросы к нескольким регистрам), её можно вынести в фоновое задание с отложенной блокировкой.