Многие пользователи 1С:Бухгалтерия 8.3 столкнулись с неприятной ситуацией после очередного автоматического обновления классификатора банков. В справочнике Банки привычное написание городов изменилось: вместо сокращения «г. Брянск» (с точкой) теперь используется «г Брянск» (без точки). Казалось бы, мелочь, но банковские системы, в частности СберБизнес (Сбербанк), часто настроены на жесткую проверку реквизитов. В результате при импорте текстовых файлов платежных поручений программа выдает ошибки, и бухгалтерам приходится вручную перевыбирать банки или исправлять названия городов. Разберем, почему это происходит и как решить проблему системно, не прибегая к ежедневному ручному труду.
Давайте проанализируем первоисточник данных. Программа 1С получает сведения о банках через специализированный веб-сервис bankregister.1c.ru, который, в свою очередь, транслирует официальный справочник БИК от Центрального Банка РФ. Изменения в написании связаны с переходом государственных ведомств на новые стандарты ведения адресных реестров, таких как ГАР (Государственный адресный реестр), пришедший на смену ФИАС.
Согласно приказу Минфина России от 05.11.2015 № 171н, в электронных реестрах допускается и даже приветствуется использование сокращений без точек для унификации данных. С точки зрения ИТ-систем точка является «мусорным» символом, который может затруднять автоматизированный поиск и индексацию. Таким образом, «г Брянск» — это текущий стандарт ЦБ РФ, а не ошибка в программе 1С.
Проблема кроется в том, что справочники внутри банковских программ обновляются с другой периодичностью или используют старые алгоритмы валидации. Когда мы выгружаем платежное поручение в текстовый файл (формат 1C77), в поле названия банка подставляется строка из 1С. Система банка сравнивает эту строку со своим внутренним справочником. Если в 1С написано «г Воронеж», а в банке «г. Воронеж», контроль не проходит, и документ требует ручной корректировки.
Рассмотрим самый простой, но малоэффективный путь — исправление наименования города непосредственно в справочнике Банки. Вы можете открыть карточку банка и вручную дописать точку. Однако помните, что в современных конфигурациях 1С (начиная с 3.0.71) по умолчанию включено регламентное задание Обновление классификаторов. Как только программа синхронизирует данные с сервером 1С в следующий раз (обычно это происходит ночью), ваши правки будут перезаписаны «правильными» данными из реестра, и точка снова исчезнет.
Чтобы удовлетворить требования Клиент-Банка и при этом не вступать в конфликт с официальным классификатором 1С, лучше всего использовать механизм расширений. Мы не будем менять данные в самой базе, но внесем изменения в момент формирования текстового файла для банка. Проанализируем, какой код нам понадобится.
Нам необходимо перехватить процедуру выгрузки. Чаще всего логика формирования адреса банка находится в модулях, отвечающих за экспорт платежных поручений. Нам нужно найти фрагмент кода, где переменной присваивается наименование города, и выполнить замену текста «г » на «г. ».
Пример логики, которую можно реализовать в расширении:
// В обработке выгрузки находим место формирования строки адреса
СтрокаДляВыгрузки = СтрЗаменить(НаименованиеБанкаИзБазы, "г ", "г. ");
// Теперь СтрокаДляВыгрузки содержит точку, и банк примет файл без ошибок
Этот способ хорош тем, что данные в базе остаются актуальными (согласно стандартам ЦБ), а банк получает файл в том формате, который он ожидает увидеть.
Если вы используете типовую обработку Обмен с банком, можно рассмотреть вариант изменения настроек в самой программе Клиент-Банка. Некоторые современные системы позволяют отключать жесткую проверку соответствия наименования банка по строке, ориентируясь только на БИК. Если БИК совпадает, название города может игнорироваться или подтягиваться из базы самого банка автоматически. Рекомендуем проконсультироваться с технической поддержкой Сбербанка на предмет обновления версии вашего ПО для импорта платежей.
Посмотрим, как именно 1С обновляет эти данные. В последних версиях 1С 8.3 загрузка идет не через файлы с сайтов вроде РБК, а через сервис Интернет-поддержки. Если вы попробуете загрузить классификатор из внешних файлов (например, bnk.zip), программа может выдать сообщение: «Данных для обновления нет», так как версия в базе уже считается актуальной.
Поэтому, если вы решили идти путем программной корректировки, ориентируйтесь на следующие объекты:
Банки: здесь хранятся записи.ДвоичныеДанныеФайлов (или аналогичные): где могут храниться кэшированные данные классификатора.ЭкспортПлатежныхПоручений: основное место, где происходит формирование файла обмена.Подведем итоги нашего исследования. Ситуация с исчезновением точек в названиях городов — это результат глобальной унификации адресных данных в РФ. Чтобы решить проблему эффективно:
Помните, что подобные изменения в форматах — это нормальный процесс развития электронного документооборота. Использование расширений позволяет гибко подстраиваться под требования разных банков, сохраняя при этом систему в типовом состоянии.