В работе с программой 1С:Управление нашей фирмой (УНФ) пользователи часто сталкиваются с ситуацией, когда при создании нового банка и вводе его БИК поле «Город» остается пустым. Более того, программа блокирует это поле для ручного редактирования, что делает невозможным корректную выгрузку платежных поручений в банк. В данной статье мы разберем, почему возникает эта проблема, проанализируем технические причины изменений в классификаторах и рассмотрим несколько эффективных способов решения задачи, особенно для тех случаев, когда конфигурация сильно доработана и ее обновление невозможно.
Разберем ситуацию подробно. Основная причина, по которой в старых версиях 1С (например, УНФ 1.6.16) перестали автоматически заполняться реквизиты банка, кроется в глобальном изменении формата обмена данными с Центральным Банком РФ. Рассмотрим основные факторы:
Город остается незаполненным.РаботаСБИК не распознают эти идентификаторы как корректные банковские реквизиты.Город имеет свойство ТолькоПросмотр, если объект считается загруженным из классификатора. Программа предполагает, что официальные данные менять нельзя, но так как данные не загрузились, поле остается и пустым, и недоступным для правки.Проанализируем доступные методы решения этой проблемы, начиная от самых простых и заканчивая технически сложными.
Если ваша конфигурация 1С:УНФ сильно доработана, и вы не можете установить последний релиз программы, попробуйте обновить только сам классификатор. Рассмотрим, как это сделать:
Для начала нам необходимо получить актуальный файл классификатора. Его можно скачать с сайта поддержки пользователей 1С в разделе обновлений для любой актуальной конфигурации (например, Бухгалтерия предприятия 3.0). Ищите файл с названием bnk.zip или Справочник БИК.
После получения файла выполним следующие действия в вашей программе:
Этот метод часто помогает, если программный код еще способен обработать структуру файла, но встроенные ссылки на веб-сервисы 1С уже устарели.
Если банк уже создан, БИК введен, а город пуст и не редактируется, мы можем воспользоваться стандартным инструментом 1С для принудительной записи данных в базу. Рассмотрим этот алгоритм:
Город, установим галочку и в колонке «Значение» впишем нужный населенный пункт.Важный нюанс: Чтобы программа позволила изменить заблокированные поля, нажмите кнопку Дополнительные параметры в этой обработке и установите флажок Показывать служебные реквизиты и Режим разработчика.
Проанализируем ситуацию: если у вас есть другая, обновленная база 1С (например, демо-версия свежего релиза Бухгалтерии), вы можете загрузить банк там и перенести его в рабочую УНФ. Для этого используется встроенная обработка ВыгрузкаЗагрузкаДанныхXML.
Выполним следующие шаги:
Выгрузка и загрузка данных XML.СправочникСсылка.Банки.УНФ откроем ту же обработку на вкладке Загрузка и прочитаем файл.Этот метод хорош тем, что при загрузке через XML система часто игнорирует проверки форм и записывает данные напрямую в объект СправочникОбъект.Банки.
Если проблема носит массовый характер, лучше всего создать небольшое расширение, которое снимет программный запрет на редактирование поля Город. Рассмотрим пример кода, который можно разместить в модуле формы справочника Банки:
&НаСервере
Процедура ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// Снимаем ограничение на редактирование города
ЭтаФорма.Элементы.Город.ТолькоПросмотр = Ложь;
ЭтаФорма.Элементы.Город.Доступность = Истина;
КонецПроцедуры
Применение расширения — это наиболее «чистый» способ с точки зрения методологии 1С, так как он не затрагивает основную конфигурацию и позволяет пользователям самостоятельно исправлять ошибки классификатора вручную прямо в карточке банка.
Для того чтобы классификатор снова начал работать автоматически, необходимо внести изменения в общий модуль, отвечающий за работу с БИК. Проанализируем, где обычно кроется проблема. В старых конфигурациях функция разбора XML-файла ориентируется на старые имена узлов. Программисту необходимо найти процедуру загрузки (обычно это ПрочитатьОбъектКлассификатора в модуле РаботаСБИК) и скорректировать пути к данным.
Пример логики для поиска данных в новом формате (с использованием ЧтениеXML):
// Пример упрощенного поиска узла адреса в новом формате ЦБ
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Если ЧтениеXML.ЛокальноеИмя = "Address" Тогда
// Извлекаем строку адреса и пытаемся выделить город
ПолныйАдрес = ЧтениеXML.ПрочитатьСодержимоеКакСтроку();
// Здесь может быть логика парсинга строки
КонецЕсли;
КонецЕсли;
КонецЦикла;
Заполнение поля Город критически важно для формирования файла обмена kl_to_1c.txt. Формат обмена текстовыми данными с банками требует наличия строки с местонахождением банка. Если после всех манипуляций в 1С город заполнен, но выгрузка все равно выдает ошибку, проверьте формат выгрузки в настройках обмена. Рекомендуется использовать стандарт 1C2B последней версии.
Если же вам нужно срочно отправить платеж, а в 1С исправить данные не получается, можно применить «костыль»: открыть сформированный файл выгрузки в текстовом редакторе (Блокнот), найти строку, начинающуюся с БАНК=, и убедиться, что там указан город. В крайнем случае, добавьте его вручную перед загрузкой файла в банковский терминал.
Подведем итог: Проблема с заполнением банков в УНФ 1.6.16 вызвана несоответствием старого программного кода новым реалиям обмена данными с ЦБ РФ. Мы рекомендуем использовать Способ 2 (Групповое изменение реквизитов) для разовых правок или Способ 4 (Расширение) для постоянной работы, если обновление всей системы на текущий момент невозможно.