В процессе ведения бухгалтерского учета в программе «1С:Бухгалтерия предприятия 3.0» пользователи часто сталкиваются с ситуацией, когда при заполнении документов реализации (например, «Реализация (акты, накладные, УПД)») счета учета доходов, расходов или НДС заполняются некорректно. Даже явное указание нужных счетов в регистре сведений Счета учета номенклатуры не всегда решает проблему.
В этой статье мы подробно разберем, как устроен типовой механизм подстановки счетов учета, по каким приоритетам программа выбирает счета, какие ошибки чаще всего совершают пользователи и как поступить, если стандартные настройки игнорируются из-за скрытых доработок конфигурации.
Для начала проанализируем, как «1С:Бухгалтерия 3.0» определяет, какие счета доходов (обычно 90.01.1) и расходов (обычно 90.02.1) подставить в табличную часть документа. Вся информация об этом хранится в регистре сведений Счета учета номенклатуры. Доступ к нему можно получить через карточку номенклатуры или через меню Справочники — Номенклатура — Счета учета номенклатуры.
Когда мы выбираем товар, услугу или материал в табличной части документа, система обращается к этому регистру и ищет наиболее подходящую запись, используя жесткую иерархию приоритетов (от частного к общему):
Если мы изменили настройки в регистре, но счета в документе не поменялись, важно выполнить проверку по шагам, которые мы разберем далее.
Выясним основные причины, почему корректно настроенный регистр сведений может «не отрабатывать» в пользовательском интерфейсе:
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С:Предприятие» не изменят поведение системы. Программа всегда будет принудительно переписывать счета учета при выборе строки.
Если в ходе анализа вы обнаружили доработанный модуль, рекомендуется выполнить следующие действия:
&После или &Вместо для процедур заполнения счетов). Это позволит сохранить конфигурацию на поддержке.ЗаполнитьСчетаУчетаНоменклатуры), и по шагам (клавиша F11) проследите, в какой момент значения счетов СчетДоходов и СчетРасходов перезаписываются нетиповыми значениями.Таким образом, системный подход к проверке настроек регистра и знание структуры метаданных помогут вам быстро вернуть подстановку счетов учета в штатный режим.