Бухгалтерский баланс и сальдо по счетам: пять путей получить цифры из базы 1С
Содержание
Быстрее всего вытащить баланс из 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С-Отчетность → Регламентированные отчеты. - Нажмите
Создать, в списке форм найдите «Бухгалтерская отчетность» (быстрее набрать слово «бухгалтерская» в строке поиска окна выбора). - Укажите организацию и период — для годового баланса это год целиком.
- Нажмите
Заполнить. Программа подставит суммы из учёта в строки баланса и отчёта о финансовых результатах. - Запустите проверку контрольных соотношений кнопкой проверки на панели отчёта. Расхождение актива и пассива видно сразу.
- Дальше выберите вывод:
Печать→ откроется печатная форма, её можно сохранить в PDF или Excel через сохранение табличного документа;Выгрузить→ XML-файл в формате ФНС для сдачи через другого оператора или личный кабинет;Отправить→ если подключена 1С-Отчетность.
Перед заполнением закройте месяц за последний период отчёта. Без закрытия счетов 90 и 91, а в декабре — без реформации баланса, строка нераспределённой прибыли не сойдётся с активом.
Оборотно-сальдовая ведомость
ОСВ — главный способ получить сальдо по всем счетам.
- Откройте
Отчеты → Оборотно-сальдовая ведомость. - Задайте период. Если нужно сальдо на конкретную дату, ставьте эту дату концом периода: конечное сальдо ведомости и есть остаток на конец дня.
- Выберите организацию. Если поле пустое, отчёт сложит все организации базы.
- В настройках отчёта (кнопка
Показать настройки) включите развёрнутое сальдо для счетов расчётов — 60, 62, 76. Иначе дебетовые и кредитовые остатки по разным контрагентам взаимно погасятся. - При необходимости добавьте детализацию по субконто — контрагенты, договоры, номенклатура.
- Нажмите
Сформировать. - Сохраните результат: значок дискеты на панели отчёта или
Ещё → Сохранить как. Доступны 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С такой доступ не поддерживает. Структура хранения меняется при обновлениях конфигурации, поэтому карту имён надо пересобирать после каждого обновления.
SQL оправдан, когда строится хранилище данных на миллионы проводок и нагрузку на сервер 1С нужно исключить. Для бухгалтера и для разовых задач он избыточен.
Автоматическая выгрузка: OData и COM-соединение
Стандартный интерфейс OData
OData отдаёт данные базы по HTTP в формате JSON или Atom. Его читают Power BI, Excel (Power Query) и любой скрипт.
Что нужно настроить:
- Опубликовать базу на веб-сервере (IIS или Apache) с флажком публикации стандартного интерфейса OData.
- В самой базе указать, какие объекты доступны через OData. В Бухгалтерии для этого есть форма настроек стандартного интерфейса OData в разделе
Администрирование. Включите регистр бухгалтерииХозрасчетныйи план счетов. - Завести отдельного пользователя для выгрузки.
Остатки на дату забираются виртуальной функцией регистра:
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.
Частые вопросы
Можно ли получить баланс за закрытый прошлый год?
Как получить один баланс по нескольким организациям базы?
Организация =.Можно ли вытащить баланс, если 1С не запускается?
1Cv8.1CD читает только платформа. Из клиент-серверной теоретически можно через SQL, но проще восстановить запуск или развернуть базу из выгрузки .dt на другом компьютере.