В работе с конфигурацией 1С:Управление торговлей 10.3 пользователи часто сталкиваются с проблемой при попытке добавить банки казначейства или бюджетных организаций. Проблема заключается в том, что система выдает ошибку: "Первые две цифры БИК банка должны быть 04". Это ограничение стало критичным после реформы казначейского обслуживания в 2021 году, когда появились БИК с префиксами 00, 01 и 02. Рассмотрим подробно, почему это происходит и как это исправить.
С 1 января 2021 года в Российской Федерации вступили в силу изменения в системе казначейских платежей. Федеральное казначейство перешло на прямое обслуживание, что повлекло за собой изменение банковских идентификационных кодов (БИК). Старый стандарт подразумевал, что все БИК банков на территории РФ начинаются с цифр 04. Однако новые коды территориальных органов Федерального казначейства (ТОФК) нарушили это правило.
Проанализируем ситуацию внутри конфигурации. В старых релизах УТ 10.3 (и многих других решениях на обычных формах) проверка на 04 была "зашита" в программный код на уровне справочника Банки. Это делалось для минимизации ошибок ручного ввода, но со временем превратилось в техническое препятствие.
Если вам необходимо добавить всего один или несколько таких банков (например, УФК по конкретной области), самым быстрым способом будет использование внешней обработки или консоли кода. Программная запись объекта в 1С часто позволяет обойти визуальные проверки форм, если они не продублированы в событии ПередЗаписью модуля объекта.
Разберем пример кода для принудительного создания банка:
НБанк = Справочники.Банки.НайтиПоКоду("013601205");
Если НБанк = Справочники.Банки.ПустаяСсылка() Тогда
// Ищем группу региона, если она существует (например, код 36)
ГруппаСамОбл = Справочники.Банки.НайтиПоКоду("36");
НовБанк = Справочники.Банки.СоздатьЭлемент();
Если НЕ ГруппаСамОбл = Справочники.Банки.ПустаяСсылка() Тогда
НовБанк.Родитель = ГруппаСамОбл;
КонецЕсли;
НовБанк.Код = "013601205"; // Новый БИК не на 04
НовБанк.Наименование = "УФК по Самарской области";
НовБанк.КоррСчет = "40101810822020012001";
НовБанк.Город = "Самара";
НовБанк.Адрес ="ул Ново-Садовая, 24 А";
Попытка
НовБанк.Записать();
Сообщить("Банк успешно добавлен!");
Исключение
Сообщить("Ошибка при записи: " + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
Этот метод хорош тем, что не требует внесения глобальных изменений в конфигурацию, если ваша база находится на поддержке. Однако, если в модуле объекта справочника Банки стоит жесткий отказ в процедуре ПередЗаписью, запись не пройдет даже программно.
Если банков много или планируется регулярная работа с бюджетными организациями, нам придется найти и деактивировать проверку в конфигураторе. Рассмотрим, где обычно прячутся эти условия:
Банки.ПередЗаписью. Там может вызываться функция типа РаботаСБанками.БИКСоответствуетСтандарту(Код).ПриИзменении реквизита БИК или перед закрытием формы.ОбщегоНазначения или РаботаСБанками. Используйте глобальный поиск (Ctrl+Shift+F) по строке "04".Важный нюанс: Вместо того чтобы просто удалять код, добавьте условие, разрешающее префиксы казначейства. Проанализируем пример изменения условия:
// Было:
Если Лев(БИК, 2) <> "04" Тогда ...
// Стало (правильно):
ПрефиксБИК = Лев(БИК, 2);
Если ПрефиксБИК <> "04" И ПрефиксБИК <> "00" И ПрефиксБИК <> "01" И ПрефиксБИК <> "02" Тогда
// Сообщение об ошибке
КонецЕсли;
Стандартный механизм загрузки классификатора в УТ 10.3 обращается к серверам 1С или РБК. В старых версиях обработки загрузки эти ресурсы могут не содержать обновленные казначейские БИК. Выясним, как использовать данные напрямую от Центрального Банка РФ.
ЦБ РФ предоставляет справочник БИК в форматах XML и JSON. Для старых систем на платформе 8.2 или 8.3 без встроенной поддержки JSON удобнее использовать XML-парсинг. Однако, современные реалии требуют работы с JSON. Если ваша платформа позволяет, мы можем создать обработку, которая считывает файл классификатора.
Алгоритм создания загрузчика:
ЧтениеJSON или ЧтениеXML для обхода данных.БИК.Проанализируем еще один важный момент: вместе с новыми БИК изменилась структура счетов. Теперь для платежей в бюджет используется система Единого казначейского счета (ЕКС). В платежном поручении указываются два счета:
40102... (это по сути корр. счет в терминах 1С).03100... (основной расчетный счет).В УТ 10.3 поле "Корр. счет" в справочнике Банки также может иметь проверку на маску или контрольное число. Если система ругается на корреспондирующий счет казначейства, проверку в модуле РаботаСБанками (функция КоррСчетСоответствуетБИК или аналогичная) также придется корректировать или временно отключать.
Выясним, есть ли официальное решение. Фирма "1С" выпустила обновления для УТ 10.3, где эти проверки были исправлены. Если ваша конфигурация типовая, самым правильным решением будет обновление до актуального релиза (начиная с 10.3.68 и выше). Если же конфигурация сильно доработана, вы можете воспользоваться методом "сравнения и объединения", чтобы перенести только изменения, касающиеся справочника Банки и связанных общих модулей. Это позволит сохранить ваши доработки и получить актуальный функционал по работе с классификатором банков.