Конвертер выписок Федерального казначейства в 1С: 5 секунд на выписку, раньше уходило 2–3 часа
Бухгалтер компании с госконтрактами каждую неделю вручную переводил XML-выписки из ГИС Казначейство в формат для 1С. Я написал на Python разбор обеих версий формата, и теперь выписка конвертируется одним запуском.
Каждая выписка отнимала у бухгалтера два-три часа
Бухгалтер компании с госконтрактами каждую неделю получал XML-выписки из ГИС «Электронный бюджет» Федерального казначейства. Каждая выписка — это XML-документ с десятками вложенных тегов: реквизиты получателя, данные органа казначейства (ОРФК) и юрлица, суммы зачислений и списаний, балансовые позиции по каждому лицевому счёту.
Чтобы загрузить эти данные в 1С, их нужно было перенести в формат
1CClientBankExchange.
Это текстовый формат обмена с банк-клиентом в кодировке Windows-1251 со строгой структурой
секций СекцияДокумент=…
и десятками обязательных полей на каждый платёж.
На деле это выглядело так: открыть XML в редакторе, вручную скопировать каждое поле
в таблицу соответствия
Платёжка_Казначейство_1С_сопоставление.xlsx,
сверить контрагентов, проверить суммы по контрольным точкам, перевести в нужную кодировку
и сохранить файл. И так по каждому платежу из выписки.
Python разбирает обе версии формата, 1С загружает результат напрямую
Устройство простое, данные идут в одну сторону, поэтому ломаться почти нечему. Один скрипт, запущенный из командной строки, читает XML-файл, определяет версию формата, достаёт нужные поля, сопоставляет их по таблице и записывает готовый файл 1CClientBankExchange в нужной кодировке.
Файл из ГИС Казначейство: V3 (TSE_BalanAcc_D13) или V4 (TSE_BalanAcc2_D13)
xml.etree.ElementTree; версия определяется автоматически по пространству имён корневого элемента
BasicRequisites, ORFK, LegalEntity, balance_items → поля 1С
Шаблон 1CClientBankExchange, кодировка Windows-1251
Файл загружается через стандартную обработку обмена с банк-клиентом
Две версии XML, один результат
ГИС Казначейство использует два формата выписки одновременно: V3
(TSE_BalanAcc_D13)
и V4
(TSE_BalanAcc2_D13).
Состав полей и пространства имён у них разные. Скрипт определяет версию по корневому
элементу и выбирает нужный способ разбора. На выходе в обоих случаях получается одна
и та же структура данных.
Что скрипт берёт из выписки
Скрипт достаёт «шапку» выписки, каждый платёж и балансовые позиции, а заодно сверяет контрольные суммы:
BasicRequisites— реквизиты документа, период, номер выпискиORFK— орган Федерального казначействаLegalEntity— юрлицо, ИНН/КПП, лицевой счётSDTotalSum/EDTotalSum— контрольные суммы дебета и кредитаbalance_items— каждая балансовая позиция с разбивкой по КБК
Кодировка Windows-1251 без сюрпризов
Формат 1CClientBankExchange исторически требует кодировку Windows-1251. Конвертер открывает выходной файл с
encoding="cp1251"
и заранее обрабатывает символы, которых в этой кодировке нет. Поэтому при загрузке в 1С
не появляются «кракозябры».
Технологии простые, и это осознанный выбор
Один скрипт, облачные сервисы не нужны
Стандартная библиотека, без лишних пакетов
Кодировка, которую требует 1CClientBankExchange
Стандарт обмена с банк-клиентом: 1С загружает файл штатно
Платёжка_Казначейство_1С_сопоставление.xlsx — справочник полей
Запуск из командной строки или через .bat-файл на рабочем месте
Сравнение до и после
на одну выписку
суммы берутся прямо из XML, контрольные суммы сверяются до записи файла
обе версии XML-выписки ГИС Казначейство
Главный результат: исчезли ошибки ручного ввода. Каждое поле берётся прямо из исходного XML, суммы больше никто не перепечатывает с экрана.
Бухгалтер запускает скрипт двойным щелчком по .bat-файлу и получает готовый файл для загрузки. Результат он проверяет уже в 1С, где этому и место.
Те же выписки можно перевести в формат 1С прямо в браузере: бесплатный онлайн-конвертер выписок казначейства в 1С. Браузерную версию я собрал с нейросетью. Что ещё ей можно поручить и где нужен программист, я разобрал в статье о вайбкодинге для задач с 1С.
Такие программы можно научиться делать и самому. На личных занятиях по вайбкодингу мы берём вашу задачу с 1С и сразу собираем первую версию.
Где ещё работает тот же подход
За кейсом стоит типовая задача: «перевести документ одного строгого формата в другой по жёсткой таблице соответствия». Та же схема подходит везде, где данные нужно перенести из одной системы в другую без ручного ввода:
- → Выписки банков в формате банк-клиента 1С или СУФД: те же поля, другое пространство имён
- → УПД и документы ЭДО из Контур.Диадока или СБИС → загрузка в 1С: Управление торговлей или 1С: Бухгалтерию
- → Маркировка «Честный знак»: XML-отчёты в учётную систему
- → Налоговые декларации и отчёты в форматах ФНС → внутренние таблицы
- → Тендерная документация (XML-выгрузки с госплощадок) → CRM или внутренние реестры в Excel
- Шаблон скрипта, который сам определяет версию формата по корневому элементу
- Соответствие полей хранится в справочнике Excel: бухгалтер правит его сам, код менять не нужно
- Сверка контрольных сумм до записи файла: при расхождении скрипт сразу останавливается, и ошибка не попадает в учёт
- Запуск через .bat-файл на рабочем месте: разбираться с Python не нужно
Документ приходит в одном строгом формате, а нужен в другом? Это решается
Конвертер документов — предсказуемая автоматизация: заранее понятно, что на входе и что на выходе. От первого XML до запуска в работу проходит 3–7 рабочих дней. Окупаемость легко посчитать заранее.
Статья в блоге на эту тему: Telegram-бот для 1С без клиента 1С: где обмен обходится без языковой модели
Похожие кейсы
Группа ИИ-агентов прогнозирует события: как проверить точность прогнозов
Пять агентов на языковой модели ищут информацию в открытых источниках, ещё один сводит их ответы, затем…
Нейросеть разбирает торговые сигналы прямо на ноутбуке: Ollama и RAG на M3
Основная модель qwen2.5:14b, запасная llama3.1:8b, скриншоты графиков разбирает LLaVA:7b, похожие случаи из…
Бот с цифрами по продажам: шесть метрик, расчёты перепроверили ИИ-агенты
Telegram-бот считает продажи по странам, годам, товарам и штатам США через одно общее ядро метрик. Все цифры…
Начните с аудита за 5 000 ₽: письменный отчёт и расчёт окупаемости
Расскажу, что автоматизировать в первую очередь, когда это окупится и нужен ли вашей задаче ИИ вообще. Иногда он не нужен.
Или просто задайте вопрос. В рабочее время отвечаю в течение 2 часов