В практике доработки типовых конфигураций 1С, таких как "Бухгалтерия предприятия", часто возникает соблазн расширить аналитику счета, добавив четвертое (а иногда и пятое) субконто. Обычно это продиктовано требованиями бизнеса видеть учет в разрезе дополнительных параметров, например, государственных контрактов, специфических проектов или условий поставки.
Однако после добавления нового субконто в план счетов разработчики сталкиваются с проблемой: данные в проводках есть, но стандартные отчеты, такие как Оборотно-сальдовая ведомость (ОСВ), "в упор" не видят новую аналитику. Разберем подробно, почему так происходит, как технически вывести эти данные и почему опытные архитекторы 1С настоятельно не рекомендуют использовать 4-е субконто в типовых решениях.
Многие начинающие разработчики полагают, что отчеты строятся динамически по метаданным плана счетов: сколько субконто есть, столько и покажем. Это не совсем так. Рассмотрим механизм работы стандартных отчетов.
Стандартные бухгалтерские отчеты в современных конфигурациях (на управляемых формах) построены на базе Системы Компоновки Данных (СКД). Хотя платформа 1С позволяет добавить на счет до 50 видов субконто, типовые схемы компоновки данных жестко ограничены тремя уровнями аналитики.
Причины скрытия четвертого субконто:
Субконто1, Субконто2 и Субконто3. Поле Субконто4, даже будучи созданным в базе данных, не включено в выбранные поля и группировки отчета по умолчанию.Чтобы увидеть данные по четвертому субконто, просто добавить его в план счетов недостаточно. Необходимо доработать сам отчет. Это можно сделать через механизм Расширений конфигурации или используя готовую универсальную оборотно-сальдовую ведомость, которая позволяет выводить данные по нескольким субконто без ограничений типового макета.
В схеме запроса отчета нужно явно выбрать поле, которое в базе данных именуется как ExtDimension4 (или соответствующее ему представление в объектной модели запроса). Только после изменения схемы запроса и настроек пользовательского интерфейса новая аналитика станет доступна для группировки.
Даже если мы доработаем отчет и выведем данные, мы столкнемся с более серьезной проблемой — падением производительности. Рассмотрим, как устроен Регистр Бухгалтерии на уровне СУБД (SQL).
Регистр бухгалтерии имеет кластерный индекс, который обеспечивает быстрое чтение итогов и движений. В типовых конфигурациях этот индекс обычно включает следующие поля:
Период + Счет + Субконто1 + Субконто2 + Субконто3 + ...
При добавлении четвертого субконто:
Особенно критично это скажется не на формировании ОСВ, а на операциях записи наборов записей. Кроме того, при интенсивном обмене данными может возникнуть ошибка в порядке субконто в записи проводок, что еще сильнее усложнит поддержку целостности аналитического учета.
Самый весомый аргумент против добавления 4-го субконто — это логика работы регламентных операций. Рассмотрим процесс "Закрытия месяца".
Алгоритмы расчета себестоимости, закрытия 20, 23, 25, 26 счетов, переоценка валюты и расчет курсовых разниц — это сложнейшие программные модули. В коде этих модулей повсеместно используются алгоритмы вида:
Для Каждого ВидСубконто Из Счет.ВидыСубконто Цикл
// Логика обработки, которая часто ожидает не более 3-х итераций
// Или использует фиксированные структуры для кэширования аналитики
КонецЦикла;
Если на счете затрат появится четвертое субконто, алгоритм распределения косвенных расходов может повести себя непредсказуемо. Вместо жесткой модификации плана счетов для целей распределения лучше рассмотреть альтернативы, такие как специальная обработка для распределения затрат по общим номенклатурным группам, которая работает в рамках типовой логики.
При добавлении лишней аналитики возникают следующие риски:
Если бизнес требует дополнительной аналитики (например, для учета Гособоронзаказа, Проектов или специфической детализации), рассмотрим правильные архитектурные подходы, которые не требуют ломать структуру регистра бухгалтерии.
Проанализируем текущие субконто. Часто одно из них можно детализировать. Например, для глубокой проверки взаиморасчетов можно использовать расширенный анализ субконто Контрагенты, не добавляя новых измерений на счета учета.
Вместо субконто на счете можно использовать дополнительные сведения или реквизиты документов. Для получения детальной информации в динамике отлично подойдет отчет остатки и обороты по счетам с субконто по месяцам, который позволяет видеть картину шире стандартной ОСВ.
Если аналитика должна быть сквозной для всей базы, технически более грамотным решением является добавление Измерения в объект метаданных РегистрБухгалтерии. Если вы планируете масштабные изменения или перенос данных, вам может потребоваться инструмент для сравнения регистров бухгалтерии между базами, чтобы убедиться в идентичности проводок.
Плюсы: Измерение физически существует в таблице, его можно проиндексировать.
Минусы: Это требует снятия конфигурации с поддержки и серьезной переписки процедуры проведения документов.
Если аналитика нужна справочно, можно создать параллельный забалансовый счет с нужным набором из 4-х и более субконто и дублировать туда движения подпиской на событие. Это сохранит типовой механизм закрытия месяца в рабочем состоянии.
Добавление четвертого субконто в типовую конфигурацию 1С:Бухгалтерия — это технически возможная, но методологически ошибочная операция. Она влечет за собой необходимость переписывать стандартные отчеты, проблемы с производительностью и высокий риск поломки механизма "Закрытия месяца".
Рекомендуем использовать штатные возможности аналитического учета или рассмотреть переход на версии КОРП или ERP, где реализованы более сложные механизмы учета.