Как загрузить БИК банков бюджетных организаций (не начинающиеся на 04) в 1С:Управление торговлей 10.3?

Программист 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В работе с конфигурацией 1С:Управление торговлей 10.3 пользователи часто сталкиваются с проблемой при попытке добавить банки казначейства или бюджетных организаций. Проблема заключается в том, что система выдает ошибку: "Первые две цифры БИК банка должны быть 04". Это ограничение стало критичным после реформы казначейского обслуживания в 2021 году, когда появились БИК с префиксами 00, 01 и 02. Рассмотрим подробно, почему это происходит и как это исправить.

Анализируем причину проблемы

С 1 января 2021 года в Российской Федерации вступили в силу изменения в системе казначейских платежей. Федеральное казначейство перешло на прямое обслуживание, что повлекло за собой изменение банковских идентификационных кодов (БИК). Старый стандарт подразумевал, что все БИК банков на территории РФ начинаются с цифр 04. Однако новые коды территориальных органов Федерального казначейства (ТОФК) нарушили это правило.

Проанализируем ситуацию внутри конфигурации. В старых релизах УТ 10.3 (и многих других решениях на обычных формах) проверка на 04 была "зашита" в программный код на уровне справочника Банки. Это делалось для минимизации ошибок ручного ввода, но со временем превратилось в техническое препятствие.

Способ 1. Программное добавление элемента справочника

Если вам необходимо добавить всего один или несколько таких банков (например, УФК по конкретной области), самым быстрым способом будет использование внешней обработки или консоли кода. Программная запись объекта в 1С часто позволяет обойти визуальные проверки форм, если они не продублированы в событии ПередЗаписью модуля объекта.

Разберем пример кода для принудительного создания банка:


НБанк = Справочники.Банки.НайтиПоКоду("013601205");
Если НБанк = Справочники.Банки.ПустаяСсылка() Тогда
    // Ищем группу региона, если она существует (например, код 36)
    ГруппаСамОбл = Справочники.Банки.НайтиПоКоду("36");
    
    НовБанк = Справочники.Банки.СоздатьЭлемент();
    Если НЕ ГруппаСамОбл = Справочники.Банки.ПустаяСсылка() Тогда
        НовБанк.Родитель = ГруппаСамОбл;
    КонецЕсли;
    
    НовБанк.Код = "013601205"; // Новый БИК не на 04
    НовБанк.Наименование = "УФК по Самарской области";
    НовБанк.КоррСчет = "40101810822020012001";
    НовБанк.Город = "Самара";
    НовБанк.Адрес ="ул Ново-Садовая, 24 А";
    
    Попытка
        НовБанк.Записать();
        Сообщить("Банк успешно добавлен!");
    Исключение
        Сообщить("Ошибка при записи: " + ОписаниеОшибки());
    КонецПопытки;
КонецЕсли;

Этот метод хорош тем, что не требует внесения глобальных изменений в конфигурацию, если ваша база находится на поддержке. Однако, если в модуле объекта справочника Банки стоит жесткий отказ в процедуре ПередЗаписью, запись не пройдет даже программно.

Способ 2. Снятие ограничения в конфигураторе

Если банков много или планируется регулярная работа с бюджетными организациями, нам придется найти и деактивировать проверку в конфигураторе. Рассмотрим, где обычно прячутся эти условия:

  1. Откройте конфигуратор и перейдите к справочнику Банки.
  2. Проверьте Модуль объекта. Ищите процедуру ПередЗаписью. Там может вызываться функция типа РаботаСБанками.БИКСоответствуетСтандарту(Код).
  3. Если в модуле объекта чисто, проверьте Модуль формы (форма элемента). Обычно проверка срабатывает при событии ПриИзменении реквизита БИК или перед закрытием формы.
  4. Обратите внимание на Общие модули. Часто функции валидации выносятся в модули ОбщегоНазначения или РаботаСБанками. Используйте глобальный поиск (Ctrl+Shift+F) по строке "04".

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


// Было:
Если Лев(БИК, 2) <> "04" Тогда ...

// Стало (правильно):
ПрефиксБИК = Лев(БИК, 2);
Если ПрефиксБИК <> "04" И ПрефиксБИК <> "00" И ПрефиксБИК <> "01" И ПрефиксБИК <> "02" Тогда
    // Сообщение об ошибке
КонецЕсли;

Способ 3. Загрузка классификатора из внешних источников (JSON/XML)

Стандартный механизм загрузки классификатора в УТ 10.3 обращается к серверам 1С или РБК. В старых версиях обработки загрузки эти ресурсы могут не содержать обновленные казначейские БИК. Выясним, как использовать данные напрямую от Центрального Банка РФ.

ЦБ РФ предоставляет справочник БИК в форматах XML и JSON. Для старых систем на платформе 8.2 или 8.3 без встроенной поддержки JSON удобнее использовать XML-парсинг. Однако, современные реалии требуют работы с JSON. Если ваша платформа позволяет, мы можем создать обработку, которая считывает файл классификатора.

Алгоритм создания загрузчика:

  1. Скачиваем актуальный файл с сайта Центробанка.
  2. Используем объект ЧтениеJSON или ЧтениеXML для обхода данных.
  3. При загрузке проверяем наличие банка в базе по коду БИК.
  4. Если банк найден — обновляем реквизиты, если нет — создаем новый элемент.

Особенности новых расчетных счетов (ЕКС)

Проанализируем еще один важный момент: вместе с новыми БИК изменилась структура счетов. Теперь для платежей в бюджет используется система Единого казначейского счета (ЕКС). В платежном поручении указываются два счета:

В УТ 10.3 поле "Корр. счет" в справочнике Банки также может иметь проверку на маску или контрольное число. Если система ругается на корреспондирующий счет казначейства, проверку в модуле РаботаСБанками (функция КоррСчетСоответствуетБИК или аналогичная) также придется корректировать или временно отключать.

Рекомендация по обновлению

Выясним, есть ли официальное решение. Фирма "1С" выпустила обновления для УТ 10.3, где эти проверки были исправлены. Если ваша конфигурация типовая, самым правильным решением будет обновление до актуального релиза (начиная с 10.3.68 и выше). Если же конфигурация сильно доработана, вы можете воспользоваться методом "сравнения и объединения", чтобы перенести только изменения, касающиеся справочника Банки и связанных общих модулей. Это позволит сохранить ваши доработки и получить актуальный функционал по работе с классификатором банков.

← На главную