Бухгалтерский баланс и сальдо по счетам: пять путей получить цифры из базы 1С

· 9 мин

Содержание

Быстрее всего вытащить баланс из 1С через готовые отчёты. Форма бухгалтерского баланса лежит в Отчеты → 1С-Отчетность → Регламентированные отчеты, а сальдо по каждому счёту даёт Отчеты → Оборотно-сальдовая ведомость. Оба отчёта сохраняются в Excel или PDF за минуту, форма баланса ещё и выгружается в XML для налоговой.

Остальные способы нужны, когда цифры надо забирать регулярно или в чужую систему. Консоль запросов выбирают, если нужен нестандартный разрез. OData и COM-соединение подходят для автоматической выгрузки в BI или скрипт. Прямой SQL к таблицам базы — крайний вариант для хранилища данных. Всё ниже относится к 1С:Бухгалтерии 3.0 на платформе 8.3; в ERP и Комплексной автоматизации регламентированный учёт ведётся на том же регистре Хозрасчетный, поэтому запросы и OData работают так же.

Что именно вы выгружаете: форма баланса или сальдо

Слово «баланс» в 1С понимают двояко, и от этого зависит способ.

  • 📄 Бухгалтерский баланс — регламентированная форма со строками 1100–1700. Нужен для банка, инвестора, аудитора, налоговой.
  • 📊 Сальдо по счетам — остатки Дт и Кт на дату по плану счетов, иногда с расшифровкой по контрагентам и договорам. Нужен для сверки, переноса в другую базу, управленческой аналитики.

Форма баланса считается из сальдо по правилам заполнения строк. Поэтому если нужны строки формы — берите регламентированный отчёт. Если нужны счета — ОСВ, запрос или OData.

СпособЧто получитеКогда выбиратьПодготовка
Регламентированный отчётФорма баланса, XML, PDF, ExcelСдача, банк, аудитНет
Оборотно-сальдовая ведомостьСальдо по счетам и субконтоРазовая сверка, переносНет
Консоль запросовЛюбой разрез, таблицаНестандартная выборкаВнешняя обработка, права
OData / COMДанные в скрипт или BIРегулярная автоматическая выгрузкаПубликация или COM-компонента
SQL к таблицамСырые итоги регистраХранилище данных, большие объёмыКлиент-сервер, знание структуры
Какой у вас случай?

Выгрузка баланса стандартными отчётами 1С

Форма бухгалтерского баланса

  1. Откройте Отчеты → 1С-Отчетность → Регламентированные отчеты.
  2. Нажмите Создать, в списке форм найдите «Бухгалтерская отчетность» (быстрее набрать слово «бухгалтерская» в строке поиска окна выбора).
  3. Укажите организацию и период — для годового баланса это год целиком.
  4. Нажмите Заполнить. Программа подставит суммы из учёта в строки баланса и отчёта о финансовых результатах.
  5. Запустите проверку контрольных соотношений кнопкой проверки на панели отчёта. Расхождение актива и пассива видно сразу.
  6. Дальше выберите вывод:
    • Печать → откроется печатная форма, её можно сохранить в PDF или Excel через сохранение табличного документа;
    • Выгрузить → XML-файл в формате ФНС для сдачи через другого оператора или личный кабинет;
    • Отправить → если подключена 1С-Отчетность.

Перед заполнением закройте месяц за последний период отчёта. Без закрытия счетов 90 и 91, а в декабре — без реформации баланса, строка нераспределённой прибыли не сойдётся с активом.

Оборотно-сальдовая ведомость

ОСВ — главный способ получить сальдо по всем счетам.

  1. Откройте Отчеты → Оборотно-сальдовая ведомость.
  2. Задайте период. Если нужно сальдо на конкретную дату, ставьте эту дату концом периода: конечное сальдо ведомости и есть остаток на конец дня.
  3. Выберите организацию. Если поле пустое, отчёт сложит все организации базы.
  4. В настройках отчёта (кнопка Показать настройки) включите развёрнутое сальдо для счетов расчётов — 60, 62, 76. Иначе дебетовые и кредитовые остатки по разным контрагентам взаимно погасятся.
  5. При необходимости добавьте детализацию по субконто — контрагенты, договоры, номенклатура.
  6. Нажмите Сформировать.
  7. Сохраните результат: значок дискеты на панели отчёта или Ещё → Сохранить как. Доступны xlsx, ods, pdf, docx, mxl, html.

Для одного счёта удобнее «Оборотно-сальдовая ведомость по счету» в том же разделе Отчеты: там сразу видны все субконто счёта.

Обработки для выгрузки и переноса остатков

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

  • 🔁 Перенос в новую базу Бухгалтерии. В приёмнике остатки вводят документами ввода начальных остатков (помощник находится в разделе Главное). Источником цифр служит ОСВ с развёрнутым сальдо по субконто на дату перехода.
  • 📦 Универсальная обработка «Выгрузка и загрузка данных XML». Распространяется через ИТС, открывается как внешняя обработка. Она переносит объекты — документы, справочники, — а не готовые сальдо. Сальдо в приёмнике получится, только если перенести все документы, которые его сформировали, или документы ввода остатков.
  • 🔗 Конвертация данных и формат EnterpriseData. Штатные обмены между типовыми конфигурациями (например, с ERP) переносят документы и справочники по правилам. Для разовой выгрузки остатков это тяжело; для постоянной синхронизации — правильный путь.

Загружая чужой XML в рабочую базу, вы меняете учёт. Сначала загружайте в копию, сверяйте ОСВ источника и приёмника и только потом повторяйте на рабочей базе.

Сальдо через язык запросов 1С

Когда в ведомости не хватает нужного разреза, остатки берут запросом прямо из регистра бухгалтерии. Запрос выполняется во внешней обработке «Консоль запросов» с диска ИТС: главное меню (кнопка с тремя полосками) → Файл → Открыть. Пользователю нужно право на интерактивное открытие внешних обработок.

Базовый запрос — сальдо по всем счетам организации:

ВЫБРАТЬ
    Остатки.Счет.Код КАК Счет,
    Остатки.Счет.Наименование КАК Наименование,
    Остатки.СуммаОстатокДт КАК СальдоДт,
    Остатки.СуммаОстатокКт КАК СальдоКт
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(
        &НаДату,
        ,
        ,
        Организация = &Организация) КАК Остатки
УПОРЯДОЧИТЬ ПО
    Остатки.Счет.Порядок

Параметры:

  • &Организация — ссылка на организацию из справочника;
  • &НаДату — дата, на начало которой считается остаток.

Последнее — частая ловушка. Виртуальная таблица остатков берёт сальдо на начало переданного момента. Хотите сальдо на конец 30 сентября — передайте 1 октября 0:00:00.

Чтобы получить развёрнутое сальдо по контрагентам на счёте 62, ограничьте счёт и выведите субконто:

ВЫБРАТЬ
    Остатки.Счет.Код КАК Счет,
    Остатки.Субконто1 КАК Контрагент,
    Остатки.СуммаОстатокДт КАК СальдоДт,
    Остатки.СуммаОстатокКт КАК СальдоКт
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(
        &НаДату,
        Счет В ИЕРАРХИИ (&Счет62),
        ,
        Организация = &Организация) КАК Остатки

Результат консоли выгружается в табличный документ и дальше сохраняется в Excel тем же способом, что и ОСВ.

Запрос по регистру с отбором Организация = внутри скобок виртуальной таблицы работает заметно быстрее, чем тот же отбор в ГДЕ. Условия пишите в параметры таблицы.

Прямой SQL к базе 1С

Этот путь есть только у клиент-серверной базы на Microsoft SQL Server или PostgreSQL. Файловую базу (1Cv8.1CD) внешние инструменты не читают.

Сложность в именах. Таблицы и поля в СУБД называются служебно: _AccRg… — движения регистра бухгалтерии, _AccRgAT… — итоги по счетам, _Acc… — план счетов. Номер после префикса свой в каждой базе.

Как сопоставить имена:

  1. В конфигураторе или внешней обработке выполните метод ПолучитьСтруктуруХраненияБазыДанных(). Он вернёт таблицу соответствий: метаданные → имя таблицы → имена полей.
  2. Сохраните карту и найдите в ней регистр Хозрасчетный и его таблицу итогов.
  3. Учтите, что таблица итогов хранит остатки на начало месяцев. Остаток на произвольную дату нужно досчитать из движений между началом месяца и датой.
  4. Проверьте, не включено ли разделение итогов: тогда на один период приходится несколько строк, и их нужно суммировать.

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

SQL оправдан, когда строится хранилище данных на миллионы проводок и нагрузку на сервер 1С нужно исключить. Для бухгалтера и для разовых задач он избыточен.

Автоматическая выгрузка: OData и COM-соединение

Стандартный интерфейс OData

OData отдаёт данные базы по HTTP в формате JSON или Atom. Его читают Power BI, Excel (Power Query) и любой скрипт.

Что нужно настроить:

  1. Опубликовать базу на веб-сервере (IIS или Apache) с флажком публикации стандартного интерфейса OData.
  2. В самой базе указать, какие объекты доступны через OData. В Бухгалтерии для этого есть форма настроек стандартного интерфейса OData в разделе Администрирование. Включите регистр бухгалтерии Хозрасчетный и план счетов.
  3. Завести отдельного пользователя для выгрузки.

Остатки на дату забираются виртуальной функцией регистра:

GET http://server/buh/odata/standard.odata/AccountingRegister_Хозрасчетный/Balance(Period=datetime'2026-10-01T00:00:00')?$format=json

Ответ содержит счёт, измерения и суммы остатка. Ссылки на счёт приходят идентификаторами, поэтому план счетов выгрузите отдельным запросом и соедините на стороне получателя.

COM-соединение

Для Windows-скриптов подходит внешнее соединение через компоненту V83.COMConnector. Пример на Python с пакетом pywin32:

import win32com.client
from datetime import datetime

v8 = win32com.client.Dispatch("V83.COMConnector")
conn = v8.Connect('Srvr="srv1c";Ref="buh";Usr="export";Pwd="***";')

q = conn.NewObject("Запрос")
q.Text = """
ВЫБРАТЬ
    Остатки.Счет.Код КАК Code,
    Остатки.СуммаОстатокДт КАК Dt,
    Остатки.СуммаОстатокКт КАК Kt
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&НаДату) КАК Остатки
"""
q.SetParameter("НаДату", datetime(2026, 10, 1))  # остаток на конец 30.09

sel = q.Execute().Choose()
while sel.Next():
    print(sel.Code, sel.Dt, sel.Kt)

Объект datetime pywin32 передаёт как COM-дату, и в 1С он приходит значением типа «Дата».

Подводные камни COM:

  • 🧩 Разрядность компоненты и интерпретатора должна совпадать: 64-битный Python работает с 64-битной comcntr.dll.
  • 🧩 Компоненту регистрируют командой regsvr32 из каталога bin установленной платформы, и версия должна совпадать с версией сервера.
  • 🧩 Каждое соединение занимает лицензию, как обычный сеанс. Закрывайте соединение после выгрузки.

Для обмена с внешними системами без Windows разработчики также пишут HTTP-сервисы в расширении конфигурации. Это гибче OData, но требует программиста.

Почему выгруженные цифры не сходятся

Диагностика: выберите симптом

Безопасность при выгрузке данных

Баланс и сальдо по контрагентам — коммерческая тайна, а детализация по сотрудникам на счёте 70 ещё и персональные данные. Правила простые:

  • 🔐 Для OData, COM и SQL заведите отдельного пользователя с ролью только на чтение нужных объектов. Полные права для выгрузки не нужны.
  • 🔐 Пароли храните в переменных окружения или менеджере секретов, а не в теле скрипта.
  • 🔐 Публикуйте OData только по HTTPS и не выставляйте публикацию в интернет без необходимости.
  • 🔐 Тяжёлые выгрузки запускайте вне рабочего времени: запрос остатков по всем субконто за годы нагружает сервер.
  • 🔐 Файлы Excel с расшифровками не пересылайте в открытые чаты; для внешних получателей достаточно формы баланса в PDF.

Частые вопросы

Можно ли получить баланс за закрытый прошлый год?
Да. Создайте регламентированный отчёт за нужный год или сформируйте ОСВ с концом периода 31 декабря. Данные считаются из проводок, архив не нужен.
Как получить один баланс по нескольким организациям базы?
Регламентированная форма составляется по одной организации. Сводные сальдо даёт ОСВ без отбора по организации или запрос без условия Организация =.
Можно ли вытащить баланс, если 1С не запускается?
Из файловой базы — нет: формат 1Cv8.1CD читает только платформа. Из клиент-серверной теоретически можно через SQL, но проще восстановить запуск или развернуть базу из выгрузки .dt на другом компьютере.
Чем выгрузка XML баланса отличается от сохранения в Excel?
XML — файл в формате ФНС для сдачи отчётности, его не редактируют вручную. Excel — копия печатной формы для людей и дальнейших расчётов.
Нужно ли закрывать месяц перед выгрузкой сальдо по счетам?
Для остатков по 01, 10, 41, 51, 60, 62 — нет. Для счетов 20, 26, 44, 90, 91, 99 и для формы баланса — да, иначе затраты и финансовый результат останутся незакрытыми.