В процессе работы с конфигурацией «1С:Бухгалтерия 3.0» бухгалтеры и технические специалисты часто сталкиваются с ситуацией, когда данные по новым субсчетам, созданным вручную, не отображаются в регламентированной отчетности. Типичный пример — счет 76.08 (или любой другой пользовательский субсчет), сальдо по которому упорно игнорирует строку 1520 «Кредиторская задолженность» в бухгалтерском балансе. В результате отчет «рвется», а контрольные соотношения не соблюдаются.
Разберем подробно причины этого поведения системы и проанализируем доступные способы решения проблемы — от простых методических приемов до программной корректировки алгоритмов заполнения.
Давайте проанализируем, как работает механизм автозаполнения регламентированной отчетности. В отличие от стандартных бухгалтерских отчетов (таких как Оборотно-сальдовая ведомость или Анализ счета), которые строятся динамически по всей иерархии плана счетов, Бухгалтерский баланс использует жесткие алгоритмы.
Проанализируем основные факторы:
76.08 вручную в режиме «Предприятие», он не является предопределенным. Программа просто не знает, в какую корзину (актив или пассив) и в какую именно строку нужно отнести остатки по этому «незнакомцу».76.08 является субсчетом счета 76, то он автоматически попадет туда же, куда попадает весь 76-й счет. Однако алгоритм баланса часто обращается к конкретным нижним уровням субсчетов, игнорируя те, что не внесены в список исключений или правил.Прежде чем переходить к программированию, давайте убедимся, что счет настроен корректно. Рассмотрим необходимые параметры:
Проанализируем карточку счета 76.08 в плане счетов:
Чтобы окончательно убедиться, что проблема в программном коде, воспользуемся встроенным инструментом диагностики:
В открывшемся окне мы увидим детализированный список счетов, данные которых попали в расчет. Если в этом списке отсутствует 76.08, значит, требуется вмешательство в алгоритм заполнения.
Рассмотрим самый правильный технический путь. Начиная с версии платформы 8.3.6, мы можем использовать расширения конфигурации, чтобы не снимать основную программу с поддержки. Нам необходимо найти процедуру, которая формирует массив счетов для строки 1520.
Обычно логика заполнения сосредоточена в общих модулях, таких как ЗаполнениеОтчетностиВыгрузка или специализированных модулях по регламентированной отчетности. Нам нужно добавить наш счет в массив счетов кредиторской задолженности.
Пример логики, которую нужно реализовать в расширении (псевдокод):
&После("ПриЗаполненииСпискаСчетовСтроки1520")
Процедура Расш_ПриЗаполненииСпискаСчетовСтроки1520(СписокСчетов)
// Добавляем наш пользовательский счет в список обрабатываемых
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.08"));
КонецПроцедуры
Важно: При использовании НайтиПоКоду() убедитесь, что код счета в базе точно соответствует строке "76.08".
Если вы не хотите вносить изменения в конфигурацию, рассмотрим более простой путь. В типовом плане счетов 1С уже существует счет 76.09 «Прочие дебиторы и кредиторы». Сальдо по этому счету гарантированно попадает в баланс:
Вместо создания нового счета 76.08, мы рекомендуем использовать 76.09, разделяя потоки данных с помощью субконто или создавая разные виды договоров. Это сохранит типовую логику программы и избавит от проблем при обновлениях.
Если отчетность нужно сдать «здесь и сейчас», проанализируем возможность ручной правки. В форме баланса ячейки, закрашенные светло-зеленым цветом, доступны для редактирования. Вы можете вручную прибавить сумму по счету 76.08 к значению в строке 1520. Однако помните, что при любом перезаполнении отчета эти данные будут потеряны, и вам придется вводить их заново.
Мы рассмотрели ситуацию, когда ручное добавление счетов в план счетов нарушает автоматизацию отчетности. Подведем итоги нашего анализа:
76.09 вместо создания собственных субсчетов.Соблюдение этих правил позволит вам всегда получать корректный бухгалтерский баланс без необходимости ручного сведения данных.