При выгрузке платежных поручений из конфигураций 1С:Бухгалтерия государственного учреждения в Федеральное казначейство (формат TXPP170101 и аналогичные) часто возникает ситуация: в сформированном текстовом файле обмена в начале поля КБК вместо трехзначного кода главы (ведомства по бюджетной классификации) выводятся нули — 000. Проблема обостряется в момент перевода классификационных признаков счетов с классического типа КРБ на тип АУ и БУ.
Разберем детально, почему система ведет себя подобным образом, и рассмотрим все варианты решения задачи как через пользовательскую настройку правил формата, так и программными методами.
Проанализируем логику типовой конфигурации и нормативные требования казначейства:
АУ и БУ.КРБ, где первые три символа жестко фиксируют главу по ППП, в структуре КПС для автономных и бюджетных учреждений код главы отсутствует как обязательный составной реквизит. Поэтому при выгрузке 1С не может взять код главы напрямую из классификатора платежа.Тем не менее, финансовые органы регионов и муниципальных образований (работающие, например, через АС «Бюджет») часто требуют обязательного наличия кода главы в первых трех разрядах КБК. Рассмотрим практические способы вернуть корректный код главы в выгрузку.
Наиболее корректный способ без изменения типовой конфигурации — модификация правил выгрузки в режиме «1С:Предприятие». Чтобы обновления альбомов форматов не затирали изменения, предварительно создадим копию поставляемого формата выгрузки.
В правилах обмена для табличной части платежного документа находим строку, формирующую КБК плательщика. По умолчанию там используется выражение, отсекающее главу. Настроим динамическое получение кода главы из карточки организации или лицевого счета.
Для конфигурации 1С:БГУ 1.0 в правиле заполнения поля задаем выражение:
Объект.Учреждение.КодПоППП.Код + Прав(ТЧ.КодБКПлательщика, 17)
Для конфигурации 1С:БГУ 2.0 реквизиты документа имеют другие имена. В редакции 2.0 обращение к коду ведомства выполняется через реквизит Организация:
Объект.Организация.КодПоППП.Код + Прав(ТЧ.КодБКПлательщика, 17)
Если код главы должен определяться строго по владельцу лицевого счета, указанного в документе, используем цепочку вызовов:
Объект.ЛицевойСчет.Владелец.КодПоППП.Код + Прав(ТЧ.КодБКПлательщика, 17)
Обратим внимание на функцию Прав(..., 17): формат TXPP строго регламентирует общую длину поля КБК ровно в 20 символов. Если трехзначный код главы добавить к полной строке без обрезки первых трех нулей, длина строки составит 23 символа, и файл не пройдет форматно-логический контроль в СУФД.
Если в базе ведется учет по одной организации или у всех обслуживаемых учреждений код главы совпадает (например, 180), можно использовать упрощенное выражение непосредственно в настройке формата:
"180" + Прав(ТЧ.КодБКПлательщика, 17)
В ситуациях, когда казначейство требует выгружать нестандартную комбинацию (например, код главы, раздел/подраздел, внутренний аналитический код и вид расходов), структуру можно собрать с использованием доступных полей табличной части:
"111" + Сред(ТЧ.КодБКПлательщика, 4, 4) + ТЧ.АналитическийКод + Прав(ТЧ.КодБКПлательщика, 3)
Такой подход обеспечивает гибкость, когда в платежном документе аналитика заполнена, но типовой формат заменяет ее нулями.
Если требуется кардинально переопределить логику формирования реквизитов для всех платежных документов без ручной правки форматов альбомов, внесем изменение в процедуру формирования данных в конфигураторе.
Разберем по шагам порядок действий:
Общие > Общие модули > ПлатежноРасчетныеДокументы.ЗначенияРеквизитовПлатежноеПоручение.
| ИНАЧЕ "000" + ПОДСТРОКА(ПлатежноеПоручениеРасшифровкаПлатежа.КБКНазначениеПлатежа.Наименование, 1, 4) + "0000000000" + ПОДСТРОКА(ПлатежноеПоручениеРасшифровкаПлатежа.КБКНазначениеПлатежа.Код, 15, 3)
Заменяем это условие на получение кода главы из лицевого счета плательщика:
| ИНАЧЕ ЕСТЬNULL(ПлатежноеПоручениеРасшифровкаПлатежа.Ссылка.ЛицевойСчет.Владелец.КодПоППП.Код, "000") + ПлатежноеПоручениеРасшифровкаПлатежа.КБКНазначениеПлатежа.Код
Сохраняем конфигурацию базы данных. При таком подходе запрос автоматически проверяет наличие кода главы у владельца лицевого счета и подставляет его в начало строки, а в случае отсутствия заполняет разряды значением по умолчанию 000.
Важное замечание для БГУ 2.0: снятие конфигурации с поддержки не рекомендуется. В редакции 2.0 аналогичную программную доработку следует реализовывать через механизм расширений конфигурации с аннотацией &Вместо или через пользовательские формулы в справочнике форматов альбомов обмена.