Вопрос поиска местонахождения кодов КБК (кодов бюджетной классификации) в программах семейства «1С:Предприятие» является актуальным как для разработчиков, так и для опытных бухгалтеров. Это связано с тем, что законодательство часто меняется, и понимание того, откуда программа берет данные для платежных поручений или деклараций, позволяет оперативно исправлять ошибки или добавлять новые коды. Рассмотрим подробно, где именно «живут» КБК в различных версиях конфигураций и как система взаимодействует с этими данными.
В более ранних версиях (например, «1С:Бухгалтерия 2.0» или «ЗУП 2.5») и в некоторых современных модулях КБК часто жестко прописывались в метаданных. Разберем по шагам, где их искать в конфигураторе:
Макет или КБК), в которой перечислены актуальные на момент выпуска релиза коды.Общие -> Общие макеты.ДокументооборотСКонтролирующимиОрганами в одноименном макете КБК.Важно понимать: Если КБК зашит в макет, то для его изменения (если не вышло официальное обновление) пользователю приходится либо редактировать конфигурацию, либо использовать механизмы расширений. Однако для регламентированной отчетности этот макет может не использоваться напрямую.
В модулях отчетности (декларации, расчеты по страховым взносам) списки КБК часто живут «своей жизнью». Проанализируем ситуацию: когда вы открываете форму отчета, список выбора в ячейке КБК формируется не из общего справочника, а из внутренних настроек самой формы.
Обычно это реализовано через макет СпискиВыбора внутри конкретного отчета (в ветке Отчеты -> РегламентированныйОтчет...). Программисты 1С закладывают возможный перечень КБК, актуальный именно для этой формы и этого периода. Именно поэтому, даже если вы добавили код в справочник налогов, он может не появиться в старой форме декларации автоматически.
Когда бухгалтер выбирает КБК для конкретного налога своей организации, система должна «запомнить» этот выбор. Для этого используются регистры сведений. Рассмотрим подробнее, как это реализовано:
В пользовательском режиме путь обычно выглядит так: Банк и касса -> Настройки налогов -> Реквизиты уплаты налогов и платежей в бюджет. С технической точки зрения данные записываются в регистр сведений, например, РеквизитыУплатыНалоговИПлатежейВБюджет.
При создании платежного поручения программа выполняет следующий алгоритм:
Если вы «выкрутились», сохранив новый набор КБК через документ «Платеж в бюджет», вы фактически создали новую запись в этом регистре, которую система начала предлагать для выбора в дальнейшем.
В современных редакциях (Бухгалтерия 3.0, ERP 2.5) 1С уходит от жесткого хранения кодов в макетах. Выясним причину: динамическое обновление позволяет не выпускать новый релиз программы каждый раз, когда Минфин меняет одну цифру в коде.
Теперь основным местом хранения является справочник КлассификаторДоходовБюджетов (название может незначительно отличаться). Он работает следующим образом:
Для разработчика это означает, что искать КБК в макетах конфигуратора в новых версиях зачастую бесполезно — нужно смотреть содержимое справочника в режиме «1С:Предприятие».
С введением ЕНП логика работы с КБК значительно упростилась для платежей, но усложнилась для уведомлений. Проанализируем пример: для большинства налогов теперь используется единый код 18201061201010000510.
В коде программы за это могут отвечать общие модули, такие как ЗаполнениеРеквизитовПлатежа. При формировании платежки система проверяет дату и, если она позже 01.01.2023, подставляет универсальный КБК ЕНП, игнорируя старые настройки из регистров, если налог входит в перечень единого платежа.
Если вам необходимо программно получить список доступных КБК, рассмотрим пример обращения к классификатору (в актуальных конфигурациях):
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КлассификаторДоходовБюджетов.Код,
| КлассификаторДоходовБюджетов.Наименование
|ИЗ
| Справочник.КлассификаторДоходовБюджетов КАК КлассификаторДоходовБюджетов
|ГДЕ
| КлассификаторДоходовБюджетов.ПометкаУдаления = ЛОЖЬ";
РезультатЗапроса = Запрос.Выполнить();
В старых конфигурациях, где данные хранятся в макете справочника ВидыНалоговиПлатежейВБюджет, доступ к ним осуществляется через метод ПолучитьМакет():
МакетКБК = Справочники.ВидыНалоговиПлатежейВБюджет.ПолучитьМакет("Макет");
// Далее следует обход областей макета для поиска нужного кода
Место хранения КБК в 1С зависит от версии конфигурации и назначения кода (для печати платежки или для заполнения отчета). Подводя итог, можно выделить три уровня хранения:
Если вы столкнулись с отсутствием нужного КБК, в первую очередь рекомендуется обновить классификаторы через «Интернет-поддержку» или проверить наличие установленных патчей (исправлений) от 1С, которые могут добавлять новые коды в систему «на лету».