Как создать отчет по движениям счета с субконто в 1С

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При разработке отчетов по бухгалтерскому учету начинающие специалисты часто сталкиваются с вопросом: как правильно извлечь данные из регистра бухгалтерии, чтобы они были информативны и понятны пользователю? В этой статье мы подробно разберем, какие инструменты использовать для создания отчета по движениям счета с детализацией по субконто, какие поля являются обязательными и как оптимизировать запрос для работы с большими объемами данных.

Выбор источника данных: виртуальные таблицы

Прежде всего, нам необходимо определиться, откуда мы будем получать данные. В системе 1С для работы с регистром бухгалтерии (например, Хозрасчетный) существует несколько виртуальных таблиц. Проанализируем основные варианты:

  1. Таблица ДвиженияССубконто. Это основной инструмент для нашей задачи. Она позволяет получить не только суммы и счета, но и развернутые значения субконто в виде отдельных колонок. Мы сразу видим Субконто1, Субконто2 и так далее, что значительно упрощает построение отчета.
  2. Таблица Обороты. Она больше подходит для сводных данных за период, но если нам нужно видеть каждый документ (регистратор), то использование этой таблицы с периодичностью "До регистратора" также возможно. Однако она менее удобна при работе со специфическими субконто.
  3. Физическая таблица движений. Мы крайне не рекомендуем использовать ее напрямую, так как вам придется самостоятельно соединять ее с таблицами значений субконто, что технически сложно и неэффективно.

Для создания полноценного отчета о движениях мы остановимся на виртуальной таблице ДвиженияССубконто.

Определяем состав полей для пользователя

Рассмотрим, какие данные ожидает увидеть бухгалтер в отчете по конкретному счету. Просто вывести "сумму" недостаточно. Проанализируем необходимый минимум:

Создание запроса к регистру бухгалтерии

Разберем по шагам, как составить правильный запрос. Самая распространенная ошибка — фильтрация данных в секции ГДЕ. Мы же будем использовать параметры виртуальной таблицы для ускорения работы системы.

Посмотрим на пример базового запроса:


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

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

Работа с субконто и универсальность

Выясним причину, по которой работа с субконто вызывает сложности. В 1С субконто — это дополнительные разрезы учета, типы которых зависят от конкретного счета. На счете 60 это могут быть справочники Контрагенты и Договоры, а на счете 10 — Номенклатура и Склады.

Если вы делаете отчет в Системе компоновки данных (СКД), рекомендуется выполнить следующие настройки:

  1. В схеме компоновки для полей Субконто1, Субконто2 укажите соответствующие роли. Это позволит системе автоматически подставлять заголовки в зависимости от выбранного счета.
  2. Используйте представления (например, Субконто1.Представление), чтобы отчет был читаемым. СКД делает это автоматически, если вы просто выбираете поле ссылки.
  3. Добавьте возможность группировки. Пользователь может захотеть увидеть движения сначала по "Складу", а потом по "Номенклатуре", даже если в плане счетов они идут в другом порядке.

Учет количественных и валютных показателей

Проанализируем ситуацию: что если пользователь выбрал счет, на котором нет количественного учета? В этом случае в поле Количество будет значение NULL или 0. Чтобы отчет выглядел профессионально, мы можем использовать функцию ЕСТЬNULL в запросе или настроить условное оформление в СКД, чтобы скрывать пустые колонки.

Для валютных счетов обязательно выводите поля Валюта и ВалютнаяСумма. Помните, что в регистре бухгалтерии 1С:Бухгалтерия валютная сумма часто хранится раздельно для дебета и кредита, если речь идет о развернутых таблицах, но в ДвиженияССубконто она представлена удобно для анализа конкретной проводки.

Использование СКД как золотой стандарт

Мы настоятельно рекомендуем использовать Систему компоновки данных вместо ручного вывода в табличный документ. Рассмотрим преимущества:

При настройке СКД не забудьте указать в параметрах запроса тип значения для счета. Это поможет системе правильно определить доступные типы субконто в конструкторе настроек.

Эталон для проверки — "Карточка счета"

Чтобы понять, насколько качественным получился ваш отчет, сравните его с типовым отчетом "Карточка счета" в конфигурации 1С:Бухгалтерия. Рассмотрим, какие элементы там присутствуют:

  1. Начальное сальдо: остаток на счете на начало периода.
  2. Детальные записи: каждая проводка с указанием документа, кор. счета и аналитики.
  3. Текущее сальдо: расчет остатка после каждой операции.
  4. Конечное сальдо: итог на конец выбранного периода.

Если ваша задача — просто вывести движения, то первых двух пунктов будет достаточно. Однако добавление вывода кор. счетов (КорСчет) и их аналитики (КорСубконто1) сделает ваш отчет по-настоящему полезным инструментом для анализа учета.

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

← На главную