При оформлении документа «Реализация (акт, накладная)» в программе «1С:Бухгалтерия предприятия 3.0» пользователи часто сталкиваются с ситуацией, когда в табличную часть автоматически подставляются некорректные счета доходов и расходов (например, счета 90.01.4 и 90.02.4 вместо ожидаемых 90.01.5 и 90.02.5). Даже если бухгалтер заходит в карточку номенклатуры и явно настраивает счета учета, при выборе этой услуги в документе программа продолжает упорно подставлять старые значения.
В этой статье мы подробно проанализируем, как устроен механизм автоподстановки счетов в 1С, разберем по шагам все возможные причины возникновения данной проблемы и выясним, как найти скрытую логику программы с помощью отладчика, если в конфигурации имеются кастомные доработки.
Проанализируем ситуацию последовательно — от простых пользовательских настроек до глубокого анализа программного кода.
Регистр сведений Счета учета номенклатуры имеет жесткую иерархию приоритетов. Когда программа определяет, какой счет подставить в документ, она ищет подходящее правило от частного к общему в следующем строгом порядке:
Частая ошибка: бухгалтер создает индивидуальную настройку для конкретной услуги (номенклатурной позиции), но оставляет поле «Организация» пустым. При этом в регистре существует общая запись для всей папки (или вида номенклатуры), в которой организация указана явно. Так как правило с заполненной организацией имеет более высокий приоритет в иерархии 1С, программа проигнорирует индивидуальную настройку номенклатуры без организации и применит групповую настройку с организацией.
Чтобы исключить эту проблему, выполним следующие действия:
В «1С:Бухгалтерия предприятия 3.0» счета учета дохов и расходов (субсчета счета 90) тесно завязаны на применяемую систему налогообложения (СНО) и параметры договоров:
*.1 (например, 90.01.1 «Выручка по деятельности с основной системой налогообложения») используются по умолчанию для ОСНО или УСН.*.2 (например, 90.01.2 «Выручка по отдельным видам деятельности с особым порядком налогообложения») зарезервированы для патентов (ПСН) или ранее применявшегося ЕНВД.Если ваша организация совмещает УСН/ОСНО с патентной системой налогообложения, программа анализирует реквизиты документа реализации. Если в поле «Налог» выбран патент или у выбранного договора с контрагентом стоит признак патентной деятельности, система автоматически переопределит счета доходов на «патентные» субсчета прямо в момент проведения или заполнения документа, полностью проигнорировав ваши ручные настройки из регистра Счета учета номенклатуры.
Рекомендуем проверить настройки договора с покупателем и убедиться, что в документе реализации не выбрана система налогообложения, отличная от основной.
Обратите внимание на сами субсчета, упомянутые в проблеме: 90.01.4, 90.01.5, 90.02.4, 90.02.5. В стандартном плане счетов типовой российской «1С:Бухгалтерии 8» этих субсчетов нет — по умолчанию там присутствуют только субсчета 90.01.1, 90.01.2, 90.02.1 и 90.02.2.
Появление таких счетов сигнализирует об одной из следующих ситуаций:
90.01.4 официально отвечает за выручку от реализации работ и услуг, а 90.01.5 — за выручку от прочей продукции.Если субсчета были созданы пользователями вручную, то типовые механизмы автоподстановки 1С не умеют определять их автоматически. Программа будет использовать стандартный алгоритм, который вернет базовый счет, зафиксированный в коде конфигурации.
Выясним, как именно создается документ реализации. Если бухгалтер вводит документ «Реализация (акт, накладная)» на основании документа «Счет на оплату» или «Заказ покупателя», программа наследует счета учета напрямую из документа-основания.
Если в «Счете на оплату» в момент его выписки стояли старые счета учета (или они заполнились по старым правилам), то при вводе реализации на его основании новые правила из регистра сведений применены не будут — программа просто скопирует данные из источника.
Чтобы обновить счета учета в таком документе, выполните перевыбор номенклатуры в строке табличной части или воспользуйтесь групповым изменением реквизитов.
В современных версиях «1С:Бухгалтерия 3.0» счета учета в документах по умолчанию скрыты, чтобы разгрузить интерфейс. Программа рассчитывает их в фоновом режиме, из-за чего сложно оперативно заметить ошибку заполнения.
Чтобы сделать этот процесс прозрачным и сразу видеть, какие счета подставляются в строки, настроим их видимость:
После этого в табличной части документов реализации появятся колонки «Счет учета», «Счет доходов», «Счет расходов» и «Субконто», что позволит вам визуально контролировать автоподстановку еще до проведения документа.
Если вы проверили все настройки регистра, убедились в правильности учетной политики, но счета все равно заполняются неверно, велика вероятность того, что в вашей базе присутствуют программные доработки (кастомный код). Это могут быть как измененные типовые модули, так и расширения конфигурации.
Чтобы локализовать проблему, программисту необходимо воспользоваться отладчиком в конфигураторе. Разберем этот процесс по шагам.
Основная логика заполнения счетов учета номенклатуры сосредоточена в общем модуле ЗаполнениеСчетовУчета (или аналогичных переопределяемых модулях). Установим точку останова в процедуре, отвечающей за заполнение счетов в документах реализации.
Пример кода, который может переопределять счета в общем модуле (именно такую скрытую доработку отловил автор темы на форуме):
Процедура ЗаполнитьСчетаУчетаВТабличнойЧасти(СтрокаТаблицы, ДокументОбъект) Экспорт
// Проверяем ставку НДС в строке документа
Если СтрокаТаблицы.СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС20") Тогда
// Если ставка 20%, принудительно устанавливаем счета 90.01.5 и 90.02.5
СтрокаТаблицы.СчетДоходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.5");
СтрокаТаблицы.СчетРасходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.5");
ИначеЕсли СтрокаТаблицы.СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС18") Тогда
// Для ставки 18% устанавливаем счета 90.01.4 и 90.02.4
СтрокаТаблицы.СчетДоходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.4");
СтрокаТаблицы.СчетРасходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.4");
КонецЕсли;
КонецПроцедуры
Для поиска подобных скрытых механизмов выполните следующие действия в конфигураторе:
90.01.4 или 90.02.4)._Доработка, в расширениях или в модуле менеджера документа РеализацияТоваровУслуг), вы сразу увидите, какая именно процедура переопределяет стандартное поведение системы.Таким образом, сочетание системного анализа настроек регистра Счета учета номенклатуры, проверки параметров учетной политики и использования инструментов отладки позволяет быстро найти и устранить причину некорректного заполнения счетов учета в любых документах 1С.