Спецпроекты

BankGuard

Проверка файлов обмена 1С и клиент-банка перед загрузкой: оборванная выписка, повторный документ, несходящиеся обороты. Исходный файл не меняется.

Тип
Проверка выписок 1С
Стек
Python
Код
Открыт на GitHub
Год
2026

Контрольный стол выписки

Листы выписки идут под щупом и только читаются. Счётчик сводит остаток: начало плюс приход минус расход должно совпасть с концом, а повторный документ поднимает флажок.

BANKGUARD012345678901234567890123456789
Красный флажок — найденная ошибка; файл остаётся прежнимЛист выписки: щуп только читает, исходный файл не меняетсяПерфокарта: документ пробивает своё отверстие, повтор находит уже пробитоеНастольная модель BankGuard — проверки файлов обмена 1С и клиент-банка перед загрузкой, написанной на Python. Листы условной выписки из восьми документов идут по рельсу под щупами и только читаются. Перфокарта помнит документы: повтор по счёту, виду, дате и номеру пробивает уже пробитое отверстие, и поднимается флажок. Счётчик набирает поступления и списания, а весы сверяют их с концом файла: начальный остаток плюс поступления минус списания должен дать конечный. Оборванный файл останавливает ворота. Бывает четыре файла: чистая выписка, повторный документ, несходящиеся обороты и оборванный файл; листы всегда выходят с другой стороны такими же, какими вошли.

Зачем

Если выписка оборвалась, в ней повторный документ или обороты не сходятся с платежами, ошибка попадёт в учёт. BankGuard читает файл, показывает код ошибки и строку и ничего не исправляет сам. Доступ к банку и базе 1С не нужен.

Что проверяет

Структуру секций и закрытие файла, версию формата и кодировку, 20-значные счета, даты и суммы, повтор документа по счёту, виду, дате и номеру. И главное: начальный остаток плюс поступления минус списания должен дать конечный остаток.

Технически

  • Форматы 1.01, 1.02 и 1.03.
  • Повтор между файлами — предупреждение, внутри файла — ошибка.
  • Режим для исходящих поручений без даты проведения.
  • Вывод в JSON для автоматизации.
Код на GitHub

Обсудим ваш проект?

Обсудить проект