Как разобраться в механизмах загрузки и обновления банков в 1С:Бухгалтерия 3.0

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет Финансы и профессиональные услуги
← На главную

При работе в 1С:Бухгалтерия 3.0 (БП 3.0) пользователи и технические специалисты часто сталкиваются с вопросом: почему регламентных заданий по банкам несколько, и какое из них отвечает за актуальность БИК и корреспондентских счетов? В современных редакциях конфигураций на базе Библиотеки стандартных подсистем (БСП) механизм работы с банками претерпел значительные изменения по сравнению со старыми версиями. Проанализируем ситуацию и разберем по шагам, как устроена эта система.

Разделение понятий: Классификатор и Список банков

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

  1. Справочник «Классификатор банков РФ»: (в конфигураторе Справочник.КлассификаторБанков). Это своего рода «телефонная книга» всех банков России. В нем содержатся официальные данные от ЦБ РФ: БИК, название, город, корр. счет. Мы не используем элементы этого справочника напрямую в платежных поручениях.
  2. Справочник «Банки»: (в конфигураторе Справочник.Банки). Здесь находятся только те банки, которые вы реально используете в своей работе — например, те, в которых открыты счета у вашей организации или у ваших контрагентов. Каждая запись здесь «привязана» к записи в классификаторе.

Рассмотрим ситуацию, когда банк меняет название. Сначала обновляется Классификатор, а затем эти изменения должны «перетечь» в справочник Банки. Рассмотрим, как это происходит в автоматическом режиме.

Регламентные задания: что и за что отвечает

Часто возникает путаница с заданием, которое называется «Обновление списка банков, поддерживающих обмен с сервисом 1С:DirectBank» (в конфигураторе ЗагрузкаСпискаБанковОбменСБанками). Выясним причину этого заблуждения.

Многие ошибочно полагают, что это и есть основное задание для обновления всех банков. На самом деле это не так. Данное задание:

Основное регламентное задание, которое нас интересует, называется «Обновление классификаторов». Проанализируем его работу подробнее.

Это задание является универсальным «комбайном». Оно последовательно проверяет обновления для множества справочников:

Важный нюанс: для успешной работы этого задания должна быть подключена Интернет-поддержка пользователей (логин и пароль от Портала 1С:ИТС). Без этого программа не сможет авторизоваться на серверах 1С и скачать свежий файл bnk.zip или его аналоги в формате XML.

Механизм синхронизации данных

Допустим, регламентное задание обновило «Классификатор банков РФ». Почему же в справочнике «Банки» данные остались старыми? Это сделано намеренно, чтобы не изменять реквизиты в документах «задним числом» без контроля пользователя. Рассмотрим, как принудительно синхронизировать эти данные.

В форме списка справочника Банки предусмотрена команда «Синхронизировать» (или аналогичная кнопка обновления из классификатора). При её нажатии происходит следующее:

  1. Программа сопоставляет записи в рабочем справочнике с эталонными записями в классификаторе по БИК.
  2. Если найдены расхождения (например, изменился корр. счет или наименование), система предлагает внести изменения.
  3. В клиент-серверном варианте работы (на SQL) это действие порождает фоновое задание под названием «Обновление банков из классификатора». Это позволяет не блокировать работу пользователя, пока сервер обрабатывает данные.

Технический разбор кода и источников

Если мы заглянем «под капот» конфигурации, мы увидим, что ссылки на источники данных жестко прописаны в коде или берутся из настроек интернет-поддержки. Ранее основным источником был bankregister.1c.ru/bankregister/v1/bnk.zip. Сейчас механизмы БСП чаще используют программный интерфейс (API) портала 1С:ИТС.

Разберем пример логики сопоставления, которую использует система при обновлении данных (упрощенно):


// Пример логики поиска обновлений в классификаторе
Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
|	Банки.Ссылка КАК СсылкаНаБанк,
|	Классификатор.Наименование КАК НовоеНаименование,
|	Классификатор.КоррСчет КАК НовыйКоррСчет
|ИЗ
|	Справочник.Банки КАК Банки
|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КлассификаторБанков КАК Классификатор
|		ПО Банки.БИК = Классификатор.БИК
|ГДЕ
|	(Банки.Наименование <> Классификатор.Наименование
|	ИЛИ Банки.КоррСчет <> Классификатор.КоррСчет)";

РезультатЗапроса = Запрос.Выполнить();
// Далее следует цикл обновления найденных ссылок

Важно помнить, что КлассификаторБанков также содержит информацию об отзыве лицензий. Если банк прекратил деятельность, в классификаторе ставится соответствующая отметка. При попытке создать платежное поручение на такой банк, 1С выдаст предупреждение, что банк является недействующим.

Итоговая схема действий для актуализации банков

Подведем итог нашему анализу. Чтобы ваши банки всегда были актуальны, выполните следующие шаги:

  1. Убедитесь, что в разделе Администрирование — Интернет-поддержка и сервисы подключена ваша учетная запись.
  2. Проверьте в списке Регламентные и фоновые задания, что задание Обновление классификаторов включено и выполняется успешно (без ошибок в колонке «Состояние»).
  3. Если вы заметили, что название банка в платежке не соответствует действительности, зайдите в справочник Банки и воспользуйтесь кнопкой «Подобрать из классификатора» или «Синхронизировать».
  4. Не путайте загрузку банков для DirectBank с общим обновлением. Первое нужно только для технической связи «1С — Банк», второе — для юридической чистоты ваших реквизитов.

Таким образом, современная 1С:Бухгалтерия берет на себя большую часть работы по отслеживанию изменений в банковской системе РФ, требуя от нас лишь контроля за состоянием интернет-поддержки и регламентных операций.

← На главную