При работе с иностранными контрагентами в программе 1С:ERP Управление предприятием пользователи часто сталкиваются с неприятной методологической и технической проблемой. При попытке завести банковский счет зарубежного партнера система выдает ошибку о том, что обязательное поле БИК не заполнено. При этом у иностранного банка нет и не может быть российского девятизначного БИК — у него есть только международный код SWIFT BIC.
В этой статье мы подробно разберем, почему возникает эта ошибка, как устроена логика проверки реквизитов в 1С:ERP различных версий и как правильно настроить систему для работы с зарубежными платежами без костылей и дублирования кодов.
Давайте проанализируем ситуацию с точки зрения архитектуры данных 1С. Исторически в российских конфигурациях справочник Банки (или КлассификаторБанков) жестко ориентирован на классификатор Центрального Банка РФ. Поле БИК в этом случае ожидает строго 9 цифровых символов.
В международных расчетах используется стандарт ISO 9362, определяющий формат кодов BIC (Bank Identifier Code), более известных как SWIFT-коды. Они состоят из 8 или 11 символов (букв и цифр). Когда пользователь пытается внести иностранный банк в стандартный классификатор или использовать его в обычном режиме, алгоритмы валидации 1С распознают некорректную длину и формат кода, выдавая ошибку.
Основная ошибка пользователей заключается в попытке создать карточку иностранного банка в классификаторе банков РФ. Российский классификатор банков, загружаемый автоматически, предназначен исключительно для кредитных организаций, имеющих лицензию ЦБ РФ.
Выясним, как обойти эту проблему штатным функционалом ERP. Начиная с версий 2.4 и выше, разработчики 1С существенно изменили логику работы с банковскими счетами. Больше нет необходимости принудительно создавать элемент в справочнике Банки для того, чтобы привязать его к счету контрагента.
Рассмотрим пошагово правильный алгоритм создания иностранного счета:
БИК на форме скрывается либо становится необязательным, а вместо него появляется поле SWIFT BIC. Здесь мы спокойно вводим международный 8- или 11-значный код банка.После выполнения этих действий карточка счета запишется без каких-либо ошибок валидации.
Если специфика вашего учета все же требует ведения сквозного справочника банков (например, для аналитических отчетов или кастомных выгрузок), необходимо правильно создавать карточку самого банка.
Проанализируем процесс ручного создания иностранного банка в справочнике:
Банки (в новых версиях 1С:ERP он может называться Классификатор банков).Страна. По умолчанию там стоит Россия. Изменим ее, например, на "Беларусь", "Казахстан" или "Германия".БИК заменяется на поле ввода национального идентификатора банка или SWIFT-кода, снимая маску "9 цифр".Очень часто вопросы возникают при расчетах с контрагентами из стран ЕАЭС. В частности, в Республике Беларусь действует своя система кодирования банков (национальный БИК), состоящая из 8 символов (букв и цифр), которая совпадает со SWIFT-кодом банка.
Если вы настраиваете счет для белорусского контрагента в 1С:ERP версии 2.4.6 и выше, обязательно указывайте страну Беларусь. В этом случае система автоматически ожидает ввод счета в формате IBAN (28 символов) и BIC BY в качестве БИК. Попытка ввести эти данные с указанием страны "Россия" неизбежно приведет к ошибкам формата.
Иногда пользователи сталкиваются с тем, что в самой 1С:ERP счет создается отлично, но при выгрузке данных в другие системы (например, в старые версии "1С:Бухгалтерия предприятия" или сторонние ERP-системы через интеграционные шины КД3) возникает ошибка: "Поле БИК не заполнено".
Это связано с тем, что XML-схема обмена (XDTO-пакет) на принимающей стороне может жестко требовать заполнения реквизита БИК. Рассмотрим, как программно решить эту проблему в правилах конвертации.
При выгрузке банковского счета в обработчике правил конвертации свойств (ПКС) для поля БИК мы можем написать простое условие на встроенном языке 1С. Посмотрим на пример кода:
Если Источник.СчетЗаРубежом Тогда
// Если счет за рубежом, передаем SWIFT в качестве БИК для принимающей системы
Значение = Источник.SWIFT;
Иначе
Значение = Источник.БИК;
КонецЕсли;
Если принимающая система критически требует именно 9 цифр и не принимает SWIFT в это поле, разработчики часто используют временную "заглушку" в виде заполнения поля девятью нулями ("000000000"), а реальный SWIFT и наименование иностранного банка передают в текстовое поле назначения платежа или адресные реквизиты банка.
Стоит отметить, что фирма 1С постоянно развивает этот функционал. В современных релизах линейки 1С:ERP 2.5 архитектура была значительно доработана. Теперь в карточке банка присутствует явный переключатель:
Таким образом, путаница, возникавшая в старых релизах, практически полностью устранена на уровне интерфейса. Если ваша конфигурация находится на поддержке, мы настоятельно рекомендуем обновить ее до актуальной версии, чтобы использовать наиболее дружелюбный и корректный интерфейс работы с международными платежами.