Обнаружение аномальных транзакций в 1С: простой, но эффективный подход. Анализ платежных поручений, анализ счетов. Пример обнаружения аномалий в 1С. Алгоритм обнаружения аномалий

02.04.25

Разработка - Математика и алгоритмы

В мире финансов и бухгалтерии обнаружение аномальных транзакций является критически важной задачей. Аномальные транзакции могут указывать на мошенничество, ошибки или другие проблемы, которые могут привести к финансовым потерям. В этой статье мы рассмотрим, как можно реализовать простой, но эффективный подход к обнаружению аномальных транзакций в системе 1С.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Обработка с алгоритмом обнаружения аномалий
.epf 10,07Kb
0
0 Скачать (1 SM) Купить за 1 850 руб.

Зачем это нужно?

Аномальные транзакции могут быть вызваны различными факторами:

  • Мошенничество: Несанкционированные переводы, фиктивные счета.
  • Ошибки: Ошибки ввода данных, сбои в системах.
  • Специфические события: Необычные бизнес-операции, изменения в законодательстве.

Своевременное выявление аномалий помогает предотвратить финансовые потери и улучшить контроль над финансовыми операциями.

В мире финансов и бухгалтерии, обнаружение аномальных транзакций является критически важной задачей. Аномальные транзакции могут указывать на мошенничество, ошибки или другие проблемы, которые могут привести к финансовым потерям. В этой статье мы рассмотрим, как можно реализовать простой, но эффективный подход к обнаружению аномальных транзакций в системе 1С.

       

Подход к обнаружению аномалий

Мы рассмотрим простой подход, основанный на анализе трех основных критериев:

  1. Сумма транзакции: Необычно большие или малые суммы могут указывать на аномалии.
  2. Дата транзакции: Транзакции, совершенные в необычное время (например, в выходные дни или ночью), могут быть подозрительными.
  3. Описание транзакции: Описания, содержащие подозрительные ключевые слова (например, "обналичивание", "неизвестный платеж"), могут указывать на аномалии.

 

Что такое аномалии?

Аномалии (или выбросы) - это наблюдения (или данные), которые значительно отличаются от большинства других наблюдений в наборе данных. Они не соответствуют ожидаемому поведению или закономерностям и выделяются на общем фоне.

Аномалии могут встречаться в самых разных областях, где собираются и анализируются данные:

  • Бухгалтерия и финансы: Необычные транзакции, мошеннические операции, ошибки в учете.
  • Производство: Дефекты продукции, сбои оборудования, отклонения от технологических процессов.
  • Здравоохранение: Редкие заболевания, необычные показатели здоровья пациентов.
  • Информационная безопасность: Кибератаки, вторжения в системы, вирусная активность.
  • Метеорология: Экстремальные погодные явления (ураганы, наводнения, засухи).
  • Транспорт: Аварии, задержки рейсов, поломки техники.

 

Алгоритмы вычисления аномалий:

Существует множество алгоритмов для выявления аномалий, которые можно разделить на несколько категорий:

  • Статистические методы:
    • Метод стандартных отклонений: Основан на предположении, что данные имеют нормальное распределение. Аномалиями считаются значения, отклоняющиеся от среднего значения на заданное количество стандартных отклонений.
    • Z-оценка: Вычисляет, насколько далеко от среднего значения находится конкретная точка данных, в единицах стандартного отклонения.
    • Метод межквартильного размаха (IQR): Аномалиями считаются значения, выходящие за пределы определенного диапазона, рассчитанного на основе IQR.
  • Методы машинного обучения:
    • Метод опорных векторов (SVM): Строит гиперплоскость, отделяющую нормальные данные от аномалий.
    • Изолирующий лес (Isolation Forest): Строит случайные деревья для выделения аномалий, которые требуют меньше разделений.
    • Автокодировщики (Autoencoders): Нейронные сети, которые обучаются восстанавливать обычные данные и выявляют те, которые плохо восстанавливаются.
    • Кластерный анализ: Группирует схожие данные вместе и определяет точки, которые не принадлежат ни к одному кластеру.
  • Методы на основе плотности:
    • DBSCAN (Density-Based Spatial Clustering of Applications with Noise): Выявляет кластеры на основе плотности данных и помечает как аномалии точки, которые находятся в областях с низкой плотностью.
  • Методы временных рядов:
    • ARIMA (Autoregressive Integrated Moving Average): Прогнозирует будущие значения на основе исторических данных и выявляет отклонения от прогноза.
    • Экспоненциальное сглаживание: Применяет веса к историческим данным для прогнозирования будущих значений и выявляет отклонения.

 

 Применение поиска аномалий очень широко:

  • Выявление мошенничества: Обнаружение подозрительных транзакций в банковских системах, страховых компаниях и т.д.
  • Обнаружение вторжений: Выявление несанкционированного доступа к компьютерным системам и сетям.
  • Контроль качества: Обнаружение дефектов продукции на производственных линиях.
  • Мониторинг состояния оборудования: Предсказание поломок оборудования на основе анализа данных с датчиков.
  • Диагностика заболеваний: Выявление необычных показателей здоровья пациентов.
  • Обнаружение аномалий в социальных сетях: Выявление фейковых аккаунтов, ботов и распространения дезинформации.
  • Анализ данных о клиентах: Сегментация клиентов и выявление тех, кто ведет себя необычно (например, внезапно прекращает покупки).

 

Ответственность за выявление аномалий зависит от конкретной области применения:

  • В бухгалтерии и финансах: Бухгалтеры, аудиторы, финансовые аналитики, специалисты по безопасности.
  • В производстве: Инженеры, техники, специалисты по контролю качества.
  • В здравоохранении: Врачи, медсестры, лаборанты.
  • В информационной безопасности: Специалисты по информационной безопасности, аналитики угроз.
  • В анализе данных: Аналитики данных, специалисты по машинному обучению.

 

Как избежать аномалий:

  • Полностью избежать аномалий невозможно, но можно снизить их вероятность и минимизировать их последствия:
    • Тщательный сбор данных: Обеспечение точности и полноты данных, исключение ошибок при вводе.
    • Стандартизация процессов: Внедрение четких процедур и правил для всех операций.
    • Обучение персонала: Повышение квалификации сотрудников, чтобы они могли распознавать и предотвращать аномалии.
    • Автоматизация: Использование автоматизированных систем для мониторинга данных и выявления отклонений.
    • Аудит: Регулярная проверка данных и процессов для выявления проблем и слабых мест.

 

Математические функции для поиска аномалий

    В  зависимости от выбранного алгоритма, используются различные математические функции:

  • Среднее значение (Mean): ΣxK22; / n (сумма всех значений, деленная на количество значений)
  • Медиана (Median): Значение, находящееся в середине отсортированного набора данных.
  • Стандартное отклонение (Standard Deviation): √[Σ(xK22; - μ)² / (n-1)] (квадратный корень из дисперсии)
  • Дисперсия (Variance): Σ(xK22; - μ)² / (n-1) (мера разброса значений относительно среднего)
  • Межквартильный размах (Interquartile Range, IQR): Разница между 75-м и 25-м процентилями.
  • Z-оценка: (xK22; - μ) / σ (где xK22; - значение, μ - среднее, σ - стандартное отклонение)
  • Евклидово расстояние: √[Σ(aK22; - bK22;)²] (расстояние между двумя точками в многомерном пространстве)
  • Функции плотности вероятности (Probability Density Functions, PDF): Используются для оценки вероятности того, что значение принадлежит к определенному распределению.

 

Применим и разберем нашу обработку анализа аномалий.

     Мы использовали комбинированный метод на основе статистического анализа и правил.

Статистический анализ: 

  • Расчет среднего значения и стандартного отклонения суммы транзакций.
  • Анализ частоты совершения транзакций по дням недели.

Правила: Анализ ключевых слов в описании транзакций.

Комбинация: Мы объединили эти методы, используя веса для разных критериев (сумма, дата, описание) для расчета общей оценки аномальности.

 

Первоначальные данные:

Мы создали "Таблицу значений" с колонками "Дата", "Сумма" и "Описание", которые можно получить из таких документов, как Платежное поручение, счет, заявка на оплату, заявка на расходование средств, реализация товаров и услуг и т.д.

Добавили (настраиваемые) параметры для алгоритма обработки:

  • ПорогАномалий: Значение, определяющее, какую общую оценку считать аномальной (в нашем примере, 1.2).
  • ВесСуммы, ВесДаты, ВесОписания : Веса, определяющие важность каждого критерия при расчете общей оценки.
  • ПодозрительныеСлова: Список ключевых слов, которые указывают на подозрительные транзакции.

Работа обработки:

  1. Получение данных: Обработка получает данные из таблицы значений Транзакции.
  2. Расчет статистики:
  • Рассчитывается средняя сумма транзакций и стандартное отклонение.
  • Рассчитывается количество транзакций, совершенных в каждый день недели.
  1. Анализ по критериям:
  • Сумма: Вычисляется оценка аномальности для каждой транзакции на основе отклонения суммы от среднего значения (Z-оценка).
  • Дата: Вычисляется оценка аномальности по дню недели (чем реже день недели, тем выше оценка).
  • Описание: Выявляется наличие подозрительных ключевых слов в описании транзакции, присваивается оценка.
  1. Комбинированная оценка: Оценка по каждому критерию объединяется в общую оценку аномальности, с учетом заданных весов.
  2. Выявление аномалий: Транзакции, у которых общая оценка превышает заданный ПорогАномалии, считаются аномальными.
  3. Вывод результатов: Отображается список аномальных транзакций с указанием даты, суммы, описания и общей оценки.

 

Ожидаемый результат:

Обработка должна выявить и отобразить транзакции, которые отличаются от нормальных по сумме, дате и/или описанию.

Для таблицы: 

N Дата Сумма   Описание
1 02.10.2023 551,00   Оплата поставщику
2 03.10.2023 803,00   Оплата поставщику
3 04.10.2023 701,00   Оплата поставщику
4 05.10.2023 984,00   Оплата поставщику
5 06.10.2023 542,00   Оплата поставщику
6 07.10.2023 720,00   Оплата поставщику
7 08.10.2023 537,00   Оплата поставщику
8 09.10.2023 874,00   Оплата поставщику
9 10.10.2023 775,00   Оплата поставщику
10 11.10.2023 778,00   Оплата поставщику
11 12.10.2023 965,00   Оплата поставщику
12 13.10.2023 811,00   Оплата поставщику
13 14.10.2023 664,00   Оплата поставщику
14 15.10.2023 724,00   Оплата поставщику
15 16.10.2023 934,00   Оплата поставщику
16 17.10.2023 736,00   Оплата поставщику
17 18.10.2023 832,00   Оплата поставщику
18 19.10.2023 678,00   Оплата поставщику
19 20.10.2023 674,00   Оплата поставщику
20 21.10.2023 561,00   Оплата поставщику
21 22.10.2023 727,00   Оплата поставщику
22 23.10.2023 535,00   Оплата поставщику
23 24.10.2023 858,00   Оплата поставщику
24 25.10.2023 969,00   Оплата поставщику
25 26.10.2023 926,00   Оплата поставщику
26 27.10.2023 851,00   Оплата поставщику
27 28.10.2023 862,00   Оплата поставщику
28 29.10.2023 662,00   Оплата поставщику
29 30.10.2023 545,00   Оплата поставщику
30 31.10.2023 916,00   Оплата поставщику
31 15.10.2023 12 000,00   Неизвестный платеж
32 22.10.2023 15 000,00   Перевод на карту
33 31.10.2023 800,00   Оплата поставщику
34 05.11.2023 9 500,00   Оплата поставщику
35 10.10.2023 700,00   Обналичивание
36 18.10.2023 11 000,00  

Оплата поставщику

 

Аномальные транзакции:
Дата: 15.10.2023 0:00:00, Сумма: 12 000, Описание: Неизвестный платеж, Общая оценка: 1,82
Дата: 22.10.2023 0:00:00, Сумма: 15 000, Описание: Перевод на карту, Общая оценка: 2,32
Дата: 05.11.2023 0:00:00, Сумма: 9 500, Описание: Оплата поставщику, Общая оценка: 1,41
Дата: 18.10.2023 0:00:00, Сумма: 11 000, Описание: Оплата поставщику, Общая оценка: 1,67
  • 15.10.2023, 12 000, Неизвестный платеж: Большая сумма + подозрительное описание = высокая оценка аномальности.
  • 22.10.2023, 15 000, Перевод на карту: Большая сумма + подозрительное описание (ключевое слово "перевод на карту") = высокая оценка аномальности.
  • 05.11.2023, 9 500, Оплата поставщику: Выходной день (редкая дата) + большая сумма = умеренная оценка (может быть аномалией, в зависимости от настроек весов и порога).
  • 18.10.2023, 11 000, Оплата поставщику: Большая сумма, в сочетании с нормальным днем = умеренная оценка (может быть аномалией).

 

Размышления улучшения обработки:

  • Более сложные методы анализа:
    • Более сложный анализ описания: Использовать методы обработки естественного языка (NLP) для выявления семантики описаний и обнаружения подозрительных паттернов.
    • Анализ временных рядов: Использовать методы анализа временных рядов (например, ARIMA) для прогнозирования будущих значений и выявления отклонений.
    • Машинное обучение: Попробовать реализовать более сложные методы, такие как Isolation Forest (но это потребует внешней интеграции).
  • Более гибкая настройка:
    • Динамическая настройка весов: Предоставить возможность пользователю настраивать веса для различных критериев.
    • Настройка порога: Предоставить пользователю возможность изменять порог аномальности.
  • Более информативные результаты:
    • Добавить больше информации в результаты анализа (например, Z-оценку по сумме, частоту дня недели).
    • Визуализировать результаты (например, графики распределения сумм, графики временных рядов).
  • Интеграция с данными 1С:
    • Реализовать возможность получения данных из документов, справочников, регистров накопления 1С.
    • Сохранять результаты анализа в 1С.
  • Интеграция с оповещениями:
    • Отправлять уведомления о выявленных аномалиях пользователям.

Вот так можно применить эту обработку в реальной системе 1С. Это простая обработка, где пользователю надо лишь нажать кнопку, и где вместо начальных данных более опытный пользователь может добавить привязку начальных данных к реальным документам 1С. Еще один момент: обработка универсальная, и должна работать во всех 1С на управляемых формах для тестирования. Примеры работы на скриншотах.

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.5.13.82

обналичивание перевод на карту неизвестный платеж возврат средств ошибка снятие наличных подозрительный перевод блокировка счета отмена транзакции оплата кредита пополнение счета благотворительность иностранный перевод аванс премия штраф комиссия утеря карты несанкционированный доступ отказ в проведении

См. также

Математика и алгоритмы Программист Платформа 1C v8.2 1C:Бухгалтерия Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    6391    stopa85    12    

39

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    12005    user1959478    56    

37

Математика и алгоритмы Разное Платформа 1С v8.3 1C:Бухгалтерия Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    6169    maksa2005    8    

26

Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    14440    8    SpaceOfMyHead    20    

63

Математика и алгоритмы Программист Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    7443    RustIG    9    

29

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

В статье анализируются средства платформы для решения системы линейных уравнений в 1С. Приводятся доводы в пользу некорректной работы встроенных алгоритмов, а значит потенциально некорректного расчета себестоимости в типовых конфигурациях.

23.11.2022    6578    gzharkoj    14    

25

Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    9781    7    kalyaka    11    

45
Оставьте свое сообщение