Как загрузить классификатор банков в 1С:Бухгалтерия 2.0 без интернета и ИТС

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

В процессе эксплуатации устаревших или специфических конфигураций, таких как 1С:Бухгалтерия предприятия 2.0, пользователи часто сталкиваются с жестким требованием системы иметь активную подписку ИТС и доступ к интернету для обновления классификаторов. Особую сложность это вызывает на закрытых серверах или в компаниях с ограниченным бюджетом на ИТС. В данной статье мы подробно разберем, как обойти механизмы проверки и обновить справочник банков вручную, используя локальные файлы и минимальные правки кода.

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

В типовых решениях 1С 8.2 и 8.3 (на обычных формах) механизм загрузки классификатора банков обращается к специализированным веб-сервисам. Программа сначала ищет настройки Интернет-поддержки пользователей. Если логин и пароль не введены или на сервере отсутствует физический доступ к сети, процедура прерывается, выдавая запрос на авторизацию. Наша задача — выяснить, как подсунуть программе готовый файл или заставить её игнорировать отсутствие связи с порталом 1С.

Способ 1: Использование альтернативных источников данных (РБК)

Рассмотрим вариант, когда интернет есть на другом компьютере. Исторически 1С использовала данные с ресурса РБК. Хотя сейчас основным источником является portal.1c.ru, многие старые обработки всё еще поддерживают загрузку с серверов РосБизнесКонсалтинг.

Проанализируем шаги для ручного получения файла:

  1. На компьютере с доступом в сеть необходимо скачать архив классификатора. Обычно он доступен в форматах exe (самораспаковывающийся архив) или zip.
  2. Распакуем полученный архив. Внутри вы обнаружите файлы, ключевым из которых является bnk.dbf или аналогичные структуры.
  3. Перенесем эти файлы по локальной сети или на флеш-носителе на сервер, где установлена 1С.

Для загрузки из файла в 1С:БП 2.0 часто требуется указать путь к папке. Если стандартная форма упорно требует авторизацию, перейдем к техническим правкам.

Способ 2: Программное отключение проверки ИТС

Если вы обладаете правами администратора или программиста и база снята с поддержки (или находится на поддержке с возможностью редактирования), мы можем внести небольшие изменения в код. Это позволит пропустить этап аутентификации.

Выясним причину остановки загрузки. Как правило, она кроется в процедуре ПолучитьФайлИзИнтернета(). Разберем по шагам, что нужно изменить:

  1. Откройте конфигуратор и найдите обработку, отвечающую за загрузку классификатора банков (обычно это ЗагрузкаКлассификатораБанков или общий модуль, вызываемый из справочника Банки).
  2. Найдите процедуру ПолучитьФайлИзИнтернета().
  3. Проанализируем фрагмент кода, который блокирует работу при отсутствии логина ИТС. Нам нужно закомментировать вызов проверки настроек соединения.

Пример кода, который следует изменить:


// Процедура модифицируется для обхода проверки авторизации
// НастройкиСоединения = ОбработкаПолученияФайлов.ПараметрыАутентификацииИнтернетПоддержки();
//
// Если НастройкиСоединения = Неопределено Тогда
//     ИнтернетПоддержкаПользователейКлиент.СтартоватьМеханизм("handStart");
//     Сообщить("После ввода логина и пароля следует повторить операцию загрузки данных.");
//     Возврат;
// КонецЕсли;

Важный нюанс: Простое комментирование может привести к ошибке, если дальше по коду объект НастройкиСоединения используется для создания HTTP-соединения. В таком случае необходимо инициализировать эту переменную пустыми значениями или создать структуру с пустым логином и паролем, чтобы метод HTTPСоединение не вызывал исключение.

Способ 3: Подмена файлов в каталоге временных файлов

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

  1. Запустите процесс загрузки в программе.
  2. Поймайте момент, когда программа создает временный каталог (можно отследить через Отладку, проверив значение функции КаталогВременныхФайлов()).
  3. Поместите туда заранее скачанный файл bnk.zip или bnk.dbf.

Однако этот метод трудоемок и требует точного знания того, какое имя файла ожидает программа. В старых релизах БП 2.0 это часто v8_bnk.zip.

Способ 4: Перенос справочника через XML-обмен

Если на сервере нет интернета, но у вас есть другая база 1С (например, на домашнем компьютере), где классификатор банков актуален, проанализируем самый надежный способ — использование универсальной обработки Универсальный обмен данными в формате XML.

Разберем алгоритм действий:

  1. В актуальной базе (источнике) откройте обработку Универсальный обмен данными в формате XML.
  2. На вкладке "Выгрузка" выберите справочник Банки.
  3. Настройте правила выгрузки (можно использовать стандартные, так как структуры справочников в БП 2.0 идентичны).
  4. Выгрузите данные в файл banks.xml.
  5. В целевой базе (на изолированном сервере) откройте ту же обработку на вкладке "Загрузка".
  6. Выберите файл и нажмите Загрузить.

Этот метод полностью игнорирует любые проверки ИТС, так как работает напрямую с объектами информационной базы данных.

Способ 5: Извлечение данных из шаблонов конфигурации

Мало кто знает, что актуальный классификатор часто поставляется вместе с обновлениями самой конфигурации. Проанализируем путь поиска:

При установке обновления 1С распаковывает шаблоны в папку AppData\Roaming\1C\1cv8\tmplts\1c\Accounting\[НомерРелиза]. Посмотрите содержимое этой папки. Часто там находится файл bnk.zip. Если вы перенесли папку с обновлением на сервер для установки релиза, вы можете указать этот путь в обработке загрузки классификатора, выбрав вариант "Загрузить из файла на диске".

Рекомендации по автоматизации процесса

Для программистов, сопровождающих такие системы, мы рекомендуем создать небольшую внешнюю обработку (файл .epf). В ней можно реализовать упрощенный алгоритм чтения DBF-файла классификатора. Это позволит бухгалтерам самостоятельно обновлять банки, просто выбирая файл, скачанный системным администратором, без необходимости заходить в конфигуратор и править типовые модули.

Используйте объект XBase для работы с классификатором напрямую:


ФайлБД = Новый XBase;
ФайлБД.ОткрытьФайл(ПутьКФайлу);
Если ФайлБД.Открыта() Тогда
    Пока ФайлБД.Следующая() Цикл
        БИК = ФайлБД.BIC;
        // Поиск или создание банка в справочнике
    КонецЦикла;
КонецЕсли;

Таким образом, даже в условиях полной изоляции сервера и отсутствия активных сервисов ИТС, у вас остается как минимум три проверенных способа поддержания справочника банков в актуальном состоянии.

← На главную