Перейти к содержимому

Разрешить сайту считать ваши посещения с помощью Яндекс Метрики? Для этого она сохранит в браузере файлы cookie. Как сайт использует cookie

VC
Кейс 11 из 22 · B2B / Финансы

Конвертер выписок Федерального казначейства в 1С: 5 секунд на выписку, раньше уходило 2–3 часа

Бухгалтер компании с госконтрактами каждую неделю вручную переводил XML-выписки из ГИС Казначейство в формат для 1С. Я написал на Python разбор обеих версий формата, и теперь выписка конвертируется одним запуском.

Отрасль
Бухгалтерия компании с госконтрактами
Технологии
Python · xml.etree · Win-1251
Сроки
Около 3 рабочих дней
Итог
2–3 часа → 5 секунд на выписку
01 · Проблема

Каждая выписка отнимала у бухгалтера два-три часа

Бухгалтер компании с госконтрактами каждую неделю получал XML-выписки из ГИС «Электронный бюджет» Федерального казначейства. Каждая выписка — это XML-документ с десятками вложенных тегов: реквизиты получателя, данные органа казначейства (ОРФК) и юрлица, суммы зачислений и списаний, балансовые позиции по каждому лицевому счёту.

Чтобы загрузить эти данные в 1С, их нужно было перенести в формат 1CClientBankExchange. Это текстовый формат обмена с банк-клиентом в кодировке Windows-1251 со строгой структурой секций СекцияДокумент=… и десятками обязательных полей на каждый платёж.

На деле это выглядело так: открыть XML в редакторе, вручную скопировать каждое поле в таблицу соответствия Платёжка_Казначейство_1С_сопоставление.xlsx, сверить контрагентов, проверить суммы по контрольным точкам, перевести в нужную кодировку и сохранить файл. И так по каждому платежу из выписки.

02 · Решение

Python разбирает обе версии формата, 1С загружает результат напрямую

Устройство простое, данные идут в одну сторону, поэтому ломаться почти нечему. Один скрипт, запущенный из командной строки, читает XML-файл, определяет версию формата, достаёт нужные поля, сопоставляет их по таблице и записывает готовый файл 1CClientBankExchange в нужной кодировке.

01
XML-выписка

Файл из ГИС Казначейство: V3 (TSE_BalanAcc_D13) или V4 (TSE_BalanAcc2_D13)

02
Разбор файла

xml.etree.ElementTree; версия определяется автоматически по пространству имён корневого элемента

03
Сопоставление полей

BasicRequisites, ORFK, LegalEntity, balance_items → поля 1С

04
Запись файла

Шаблон 1CClientBankExchange, кодировка Windows-1251

05
1С

Файл загружается через стандартную обработку обмена с банк-клиентом

Две версии XML, один результат

ГИС Казначейство использует два формата выписки одновременно: V3 (TSE_BalanAcc_D13) и V4 (TSE_BalanAcc2_D13). Состав полей и пространства имён у них разные. Скрипт определяет версию по корневому элементу и выбирает нужный способ разбора. На выходе в обоих случаях получается одна и та же структура данных.

Что скрипт берёт из выписки

Скрипт достаёт «шапку» выписки, каждый платёж и балансовые позиции, а заодно сверяет контрольные суммы:

  • BasicRequisites — реквизиты документа, период, номер выписки
  • ORFK — орган Федерального казначейства
  • LegalEntity — юрлицо, ИНН/КПП, лицевой счёт
  • SDTotalSum / EDTotalSum — контрольные суммы дебета и кредита
  • balance_items — каждая балансовая позиция с разбивкой по КБК

Кодировка Windows-1251 без сюрпризов

Формат 1CClientBankExchange исторически требует кодировку Windows-1251. Конвертер открывает выходной файл с encoding="cp1251" и заранее обрабатывает символы, которых в этой кодировке нет. Поэтому при загрузке в 1С не появляются «кракозябры».

03 · Технологии

Технологии простые, и это осознанный выбор

Python 3.11+

Один скрипт, облачные сервисы не нужны

xml.etree.ElementTree

Стандартная библиотека, без лишних пакетов

Windows-1251 / cp1251

Кодировка, которую требует 1CClientBankExchange

1CClientBankExchange

Стандарт обмена с банк-клиентом: 1С загружает файл штатно

Таблица соответствия в Excel

Платёжка_Казначейство_1С_сопоставление.xlsx — справочник полей

Командная строка

Запуск из командной строки или через .bat-файл на рабочем месте

Pythonxml.etreeWindows-12511CClientBankExchangeCLIExcel
04 · Результат

Сравнение до и после

Время обработки
2–3 ч 5 сек

на одну выписку

Суммы, введённые вручную
0

суммы берутся прямо из XML, контрольные суммы сверяются до записи файла

Версии формата
V3 + V4

обе версии XML-выписки ГИС Казначейство

Главный результат: исчезли ошибки ручного ввода. Каждое поле берётся прямо из исходного XML, суммы больше никто не перепечатывает с экрана.

Бухгалтер запускает скрипт двойным щелчком по .bat-файлу и получает готовый файл для загрузки. Результат он проверяет уже в 1С, где этому и место.

Те же выписки можно перевести в формат 1С прямо в браузере: бесплатный онлайн-конвертер выписок казначейства в 1С. Браузерную версию я собрал с нейросетью. Что ещё ей можно поручить и где нужен программист, я разобрал в статье о вайбкодинге для задач с 1С.

Такие программы можно научиться делать и самому. На личных занятиях по вайбкодингу мы берём вашу задачу с 1С и сразу собираем первую версию.

05 · Применимость

Где ещё работает тот же подход

За кейсом стоит типовая задача: «перевести документ одного строгого формата в другой по жёсткой таблице соответствия». Та же схема подходит везде, где данные нужно перенести из одной системы в другую без ручного ввода:

  • → Выписки банков в формате банк-клиента 1С или СУФД: те же поля, другое пространство имён
  • → УПД и документы ЭДО из Контур.Диадока или СБИС → загрузка в 1С: Управление торговлей или 1С: Бухгалтерию
  • → Маркировка «Честный знак»: XML-отчёты в учётную систему
  • → Налоговые декларации и отчёты в форматах ФНС → внутренние таблицы
  • → Тендерная документация (XML-выгрузки с госплощадок) → CRM или внутренние реестры в Excel
Что переиспользуется на следующих проектах
  • Шаблон скрипта, который сам определяет версию формата по корневому элементу
  • Соответствие полей хранится в справочнике Excel: бухгалтер правит его сам, код менять не нужно
  • Сверка контрольных сумм до записи файла: при расхождении скрипт сразу останавливается, и ошибка не попадает в учёт
  • Запуск через .bat-файл на рабочем месте: разбираться с Python не нужно
Похожая задача?

Документ приходит в одном строгом формате, а нужен в другом? Это решается

Конвертер документов — предсказуемая автоматизация: заранее понятно, что на входе и что на выходе. От первого XML до запуска в работу проходит 3–7 рабочих дней. Окупаемость легко посчитать заранее.

Готовы начать?

Начните с аудита за 5 000 ₽: письменный отчёт и расчёт окупаемости

Расскажу, что автоматизировать в первую очередь, когда это окупится и нужен ли вашей задаче ИИ вообще. Иногда он не нужен.

Или просто задайте вопрос. В рабочее время отвечаю в течение 2 часов