Почему в документе реализации в 1С:Бухгалтерии подставляются не те счета учета и как это исправить?

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

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

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

Как работает типовой механизм подстановки счетов (приоритеты правил)

Для начала проанализируем, как «1С:Бухгалтерия 3.0» определяет, какие счета доходов (обычно 90.01.1) и расходов (обычно 90.02.1) подставить в табличную часть документа. Вся информация об этом хранится в регистре сведений Счета учета номенклатуры. Доступ к нему можно получить через карточку номенклатуры или через меню Справочники — Номенклатура — Счета учета номенклатуры.

Когда мы выбираем товар, услугу или материал в табличной части документа, система обращается к этому регистру и ищет наиболее подходящую запись, используя жесткую иерархию приоритетов (от частного к общему):

  1. Индивидуальная настройка для конкретной номенклатуры. Это самый высокий приоритет. Если в регистре создана запись, где в поле «Номенклатура» выбрана конкретная позиция (например, услуга «Доставка»), программа возьмет счета именно из этой строки, игнорируя любые другие правила.
  2. Группа (папка) номенклатуры. Если для конкретного элемента индивидуальной записи нет, программа проверяет настройки для папки, в которой лежит этот элемент (и далее вверх по иерархии групп).
  3. Вид номенклатуры. Если на уровне конкретной позиции и ее родительских папок правил нет, программа ищет запись регистра, в которой заполнено только поле «Вид номенклатуры» (например, «Услуги» или «Товары»).
  4. Организация и склад. Настройки счетов могут быть детализированы до конкретной организации вашей базы или склада. Если эти реквизиты заполнены в правиле регистра, оно применится только к соответствующим документам.
  5. Общее правило (по умолчанию). В самом низу иерархии находится запись, в которой не заполнены ни номенклатура, ни папки, ни виды. Это «пустая» строка, которая задает правила для абсолютно всех позиций, для которых не нашлось более точных соответствий.

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

Типичные ошибки при изменении счетов учета

Выясним основные причины, почему корректно настроенный регистр сведений может «не отрабатывать» в пользовательском интерфейсе:

1. Кэширование данных на форме документа. Это самая частая бытовая проблема. Пользователь открывает документ «Реализация», видит старые (неправильные) счета, переходит в регистр сведений, меняет настройки, возвращается в открытый документ и просто перевыбирает ту же номенклатуру. Программа при этом может использовать старые закэшированные данные формы.

Решение: Необходимо полностью закрыть документ без сохранения, открыть его заново, либо воспользоваться кнопкой Еще — Перезаполнить цены и счета учета в табличной части документа.

2. Конфликт видов номенклатуры. Иногда папка в справочнике имеет один вид номенклатуры (например, «Товары»), а элементы внутри нее — другой вид (например, «Услуги»). Если правила в регистре настроены по виду номенклатуры, может возникнуть путаница. Всегда проверяйте соответствие реквизита «Вид номенклатуры» в карточке самого элемента.

3. Счета учета скрыты на форме. Иногда пользователь думает, что счета не подставляются, потому что просто не видит их на экране. Отображение счетов в документах регулируется персональной настройкой. Перейдем в меню Главное — Настройки — Персональные настройки и убедимся, что установлен флажок Показывать счета учета в документах.

Методологическая ошибка: нетиповые субсчета для ставок НДС

Рассмотрим ситуацию, описанную на форуме. Автор пытался использовать разные субсчета для разных ставок НДС: счета 90.01.4 / 90.02.4 для ставки 18% и счета 90.01.5 / 90.02.5 для ставки 20%.

С точки зрения методологии типового учета в «1С:Бухгалтерии 3.0» — это избыточное и нефизиологичное для системы решение. В программе разделение доходов по ставкам НДС и видам деятельности реализуется не за счет плодения субсчетов первого и второго порядка на счете 90, а с помощью аналитики (субконто) Номенклатурные группы и встроенных регистров накопления по НДС.

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

Как найти причину сбоя, если дело в коде (анализ доработок)

Если вы проверили регистр Счета учета номенклатуры, очистили кэш, перевыбрали номенклатуру, но счета все равно упорно встают старые (или нетиповые) — значит, в вашей информационной базе присутствует доработка. Это может быть расширение конфигурации или измененный код в общих модулях.

Проанализируем, как разработчик может локализовать эту проблему с помощью конфигуратора и отладчика.

Для начала запустим конфигуратор и выполним глобальный поиск по коду тех нетиповых счетов, которые принудительно подставляются в документ (в нашем примере это 90.01.4 и 90.02.4). Нам нужно искать текстовые строки вида "90.01.4" или обращения к плану счетов вроде ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.4").

Разберем пример того, как программисты могли переопределить логику заполнения счетов в общем модуле конфигурации:


// Пример некорректной или устаревшей доработки в общем модуле
Процедура ЗаполнитьСчетаУчетаВТабличнойЧасти(СтрокаТабличнойЧасти, ДокументОбъект) Экспорт
    
    // Если это услуга и ставка НДС соответствует старым алгоритмам
    Если СтрокаТабличнойЧасти.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 
        Или СтрокаТабличнойЧасти.СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118 Тогда
        
        // Принудительно заменяем счета, игнорируя регистр настроек
        СтрокаТабличнойЧасти.СчетДоходов  = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.4");
        СтрокаТабличнойЧасти.СчетРасходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.4");
        
    КонецЕсли;

КонецПроцедуры

Если подобный код присутствует в общем модуле, отвечающем за обработку заполнения табличных частей (например, в модулях с названиями ЗаполнениеДокументов, ЗаполнениеДокументовБП или в модулях менеджеров документов), то никакие настройки в режиме «1С:Предприятие» не изменят поведение системы. Программа всегда будет принудительно переписывать счета учета при выборе строки.

Рекомендации по исправлению

Если в ходе анализа вы обнаружили доработанный модуль, рекомендуется выполнить следующие действия:

  1. Оценить актуальность доработки. Если код был написан во время перехода со ставки НДС 18% на 20% и жестко завязан на устаревшие субсчета, обсудите с главным бухгалтером возможность отказа от этих нетиповых субсчетов в пользу стандартной аналитики 1С. Это существенно облегчит дальнейшие обновления конфигурации.
  2. Перенести логику в расширение. Если доработка жизненно необходима, ее следует перенести из основного кода конфигурации в отдельное расширение (используя аннотации &После или &Вместо для процедур заполнения счетов). Это позволит сохранить конфигурацию на поддержке.
  3. Использовать отладку. Для точечного поиска места изменения счетов установите точку останова в общем модуле, отвечающем за заполнение счетов учета номенклатуры (например, в процедуре ЗаполнитьСчетаУчетаНоменклатуры), и по шагам (клавиша F11) проследите, в какой момент значения счетов СчетДоходов и СчетРасходов перезаписываются нетиповыми значениями.

Таким образом, системный подход к проверке настроек регистра и знание структуры метаданных помогут вам быстро вернуть подстановку счетов учета в штатный режим.

← На главную