Как исправить ошибку заполнения города по БИК в 1С:УНФ и разблокировать редактирование поля

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

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

Выясняем причины проблемы: почему классификатор перестал работать?

Разберем ситуацию подробно. Основная причина, по которой в старых версиях 1С (например, УНФ 1.6.16) перестали автоматически заполняться реквизиты банка, кроется в глобальном изменении формата обмена данными с Центральным Банком РФ. Рассмотрим основные факторы:

  1. Изменение структуры XML-файла ЦБ РФ: Раньше данные о банках поставлялись в формате, где населенный пункт был выделен в отдельный тег. В современных версиях классификатора сведения о местонахождении часто интегрированы в общую строку адреса. Старый программный код 1С просто не умеет «парсить» (разбирать) эту новую структуру, поэтому поле Город остается незаполненным.
  2. Переход на казначейское обслуживание (ТОФК): В последние годы многие бюджетные платежи перешли в систему Федерального казначейства. БИКи таких организаций имеют свою специфику. Старые алгоритмы проверки БИК в модуле РаботаСБИК не распознают эти идентификаторы как корректные банковские реквизиты.
  3. Программная блокировка интерфейса: В типовых решениях 1С поле Город имеет свойство ТолькоПросмотр, если объект считается загруженным из классификатора. Программа предполагает, что официальные данные менять нельзя, но так как данные не загрузились, поле остается и пустым, и недоступным для правки.

Проанализируем доступные методы решения этой проблемы, начиная от самых простых и заканчивая технически сложными.

Способ 1. Обновление классификатора через файл (для тех, кто не может обновить конфигурацию)

Если ваша конфигурация 1С:УНФ сильно доработана, и вы не можете установить последний релиз программы, попробуйте обновить только сам классификатор. Рассмотрим, как это сделать:

Для начала нам необходимо получить актуальный файл классификатора. Его можно скачать с сайта поддержки пользователей 1С в разделе обновлений для любой актуальной конфигурации (например, Бухгалтерия предприятия 3.0). Ищите файл с названием bnk.zip или Справочник БИК.

После получения файла выполним следующие действия в вашей программе:

  1. Перейдем в раздел Компания — Администрирование — Интернет-поддержка и сервисы.
  2. Найдем пункт Классификаторы и словари и выберем Обновление классификаторов.
  3. В появившемся окне выберем вариант загрузки Из файла и укажем путь к скачанному архиву.

Этот метод часто помогает, если программный код еще способен обработать структуру файла, но встроенные ссылки на веб-сервисы 1С уже устарели.

Способ 2. Использование обработки «Групповое изменение реквизитов»

Если банк уже создан, БИК введен, а город пуст и не редактируется, мы можем воспользоваться стандартным инструментом 1С для принудительной записи данных в базу. Рассмотрим этот алгоритм:

  1. Зайдем в раздел Компания — Администрирование — Обслуживание — Корректировка данных.
  2. Откроем ссылку Групповое изменение реквизитов.
  3. В поле «Изменять» выберем Банки.
  4. Нажмем Добавить условие отбора и укажем конкретный банк (по БИК или наименованию), чтобы не изменить лишнего.
  5. В списке реквизитов найдем строку Город, установим галочку и в колонке «Значение» впишем нужный населенный пункт.
  6. Нажмем кнопку Изменить реквизиты.

Важный нюанс: Чтобы программа позволила изменить заблокированные поля, нажмите кнопку Дополнительные параметры в этой обработке и установите флажок Показывать служебные реквизиты и Режим разработчика.

Способ 3. Перенос данных через XML (универсальный обмен)

Проанализируем ситуацию: если у вас есть другая, обновленная база 1С (например, демо-версия свежего релиза Бухгалтерии), вы можете загрузить банк там и перенести его в рабочую УНФ. Для этого используется встроенная обработка ВыгрузкаЗагрузкаДанныхXML.

Выполним следующие шаги:

  1. В «свежей» базе откроем обработку Выгрузка и загрузка данных XML.
  2. Выберем в списке объектов СправочникСсылка.Банки.
  3. Настроим отбор по конкретному БИКу.
  4. Выгрузим данные в файл.
  5. В вашей рабочей базе УНФ откроем ту же обработку на вкладке Загрузка и прочитаем файл.

Этот метод хорош тем, что при загрузке через XML система часто игнорирует проверки форм и записывает данные напрямую в объект СправочникОбъект.Банки.

Способ 4. Разблокировка поля через расширение конфигурации (для программистов)

Если проблема носит массовый характер, лучше всего создать небольшое расширение, которое снимет программный запрет на редактирование поля Город. Рассмотрим пример кода, который можно разместить в модуле формы справочника Банки:


&НаСервере
Процедура ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    // Снимаем ограничение на редактирование города
    ЭтаФорма.Элементы.Город.ТолькоПросмотр = Ложь;
    ЭтаФорма.Элементы.Город.Доступность = Истина;
КонецПроцедуры

Применение расширения — это наиболее «чистый» способ с точки зрения методологии 1С, так как он не затрагивает основную конфигурацию и позволяет пользователям самостоятельно исправлять ошибки классификатора вручную прямо в карточке банка.

Способ 5. Исправление модуля загрузки (техническое решение)

Для того чтобы классификатор снова начал работать автоматически, необходимо внести изменения в общий модуль, отвечающий за работу с БИК. Проанализируем, где обычно кроется проблема. В старых конфигурациях функция разбора XML-файла ориентируется на старые имена узлов. Программисту необходимо найти процедуру загрузки (обычно это ПрочитатьОбъектКлассификатора в модуле РаботаСБИК) и скорректировать пути к данным.

Пример логики для поиска данных в новом формате (с использованием ЧтениеXML):


// Пример упрощенного поиска узла адреса в новом формате ЦБ
Пока ЧтениеXML.Прочитать() Цикл
    Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
        Если ЧтениеXML.ЛокальноеИмя = "Address" Тогда
            // Извлекаем строку адреса и пытаемся выделить город
            ПолныйАдрес = ЧтениеXML.ПрочитатьСодержимоеКакСтроку();
            // Здесь может быть логика парсинга строки
        КонецЕсли;
    КонецЕсли;
КонецЦикла;

Как обеспечить корректную выгрузку в Клиент-Банк?

Заполнение поля Город критически важно для формирования файла обмена kl_to_1c.txt. Формат обмена текстовыми данными с банками требует наличия строки с местонахождением банка. Если после всех манипуляций в 1С город заполнен, но выгрузка все равно выдает ошибку, проверьте формат выгрузки в настройках обмена. Рекомендуется использовать стандарт 1C2B последней версии.

Если же вам нужно срочно отправить платеж, а в 1С исправить данные не получается, можно применить «костыль»: открыть сформированный файл выгрузки в текстовом редакторе (Блокнот), найти строку, начинающуюся с БАНК=, и убедиться, что там указан город. В крайнем случае, добавьте его вручную перед загрузкой файла в банковский терминал.

Подведем итог: Проблема с заполнением банков в УНФ 1.6.16 вызвана несоответствием старого программного кода новым реалиям обмена данными с ЦБ РФ. Мы рекомендуем использовать Способ 2 (Групповое изменение реквизитов) для разовых правок или Способ 4 (Расширение) для постоянной работы, если обновление всей системы на текущий момент невозможно.

← На главную