Как исправить ошибку bad adaptive filter value при запуске 1С:Предприятие?

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

При запуске информационной базы в режиме «1С:Предприятие» (сразу после выбора пользователя или на этапе вывода стартовой заставки) может возникнуть критический сбой с текстом bad adaptive filter value. При этом вход в Конфигуратор выполняется без проблем, однако стандартные средства проверки (утилита chdbfl.exe и процедура «Тестирование и исправление») не выявляют нарушений целостности базы данных, а точки останова в модулях даже не срабатывают.

Разберем природу возникновения этой ошибки и пошаговые методы ее гарантированного устранения.

Техническая причина ошибки

Проанализируем механику сбоя. Сообщение bad adaptive filter value генерируется встроенной в платформу библиотекой libpng, отвечающей за декодирование растровой графики формата PNG.

В спецификации формата PNG каждая строка развертки (scanline) предваряется специальным байтом фильтрации, принимающим значения от 0 до 4 (None, Sub, Up, Average, Paeth). Если в результате повреждения бинарных данных, сдвига байтов при передаче файла по сети, некорректной архивации или сбоя кэширования значение байта искажается, декодер расценивает графический ресурс как фатально поврежденный и аварийно завершает работу.

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

  1. Тестирование и исправление (ТиИ) и утилита chdbfl: проверяют только физическую и ссылочную структуру таблиц базы данных (целостность страниц памяти, B-деревьев), но не валидируют содержимое двоичных блоков (BLOB) и не распаковывают графику.
  2. Модули и точки останова: платформа инициализирует графические ресурсы окна заставки и базового интерфейса до передачи управления программному коду конфигурации — еще до событий УстановкаПараметровСеанса модуля сеанса и ПриНачалеРаботыСистемы модуля управляемого приложения.

Способ 1. Замена и обновление графических ресурсов в свойствах конфигурации

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

  1. Откроем базу данных в режиме Конфигуратор.
  2. Откроем дерево метаданных: меню Конфигурация — Открыть конфигурацию (если конфигурация находится на поддержке с возможностью изменения, снимем блокировку редактирования через меню Конфигурация — Поддержка — Настройка поддержки).
  3. Нажмем правой кнопкой мыши на самый верхний элемент дерева метаданных (имя конфигурации) и выберем пункт Свойства.
  4. В открывшейся палитре свойств найдем свойства Заставка и Логотип.
  5. Поочередно откроем каждое свойство, очистим старое значение и установим любой заведомо исправный графический файл (например, формат JPEG).
  6. Выполним сохранение и обновление конфигурации базы данных (клавиша F7).
  7. Запустим сеанс «1С:Предприятие» для проверки.
  8. После успешного старта можно повторно зайти в свойства конфигурации, очистить временные картинки или загрузить корректные оригинальные файлы PNG, после чего снова нажать F7.

Способ 2. Полная очистка локального кэша конфигурации

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

  1. Быстрый способ: в окне запуска 1С удалим информационную базу из списка и добавим ее заново с тем же путем. При этом платформа создаст новый идентификатор базы и новый каталог кэша.
  2. Ручная очистка каталогов: закроем все запущенные процессы 1С и очистим временные папки профиля пользователя:

    %AppData%\1C\1cv8\

    %LocalAppData%\1C\1cv8\

    Внутри этих каталогов удалим все подпапки с длинными буквенно-цифровыми шестнадцатеричными именами (GUID).

Способ 3. Поиск битого изображения в других объектах метаданных

Если замена заставки не помогла, поврежденный PNG-ресурс может находиться в других интерфейсных элементах, подгружаемых на старте. Проверим следующие ветки дерева метаданных:

  1. Общие картинки (ветка «Общие» — «Общие картинки»): проверим иконки подсистем и командного интерфейса.
  2. Свойства подсистем: свойство Картинка у корневых и вложенных подсистем.
  3. Рабочий стол и начальная страница: фоновые изображения и элементы форм типа ПолеКартинки.
  4. Расширения конфигурации: перейдем в Конфигурация — Расширения конфигурации и временно отключим подключенные расширения (*.cfe), чтобы исключить наличие битой графики в них.

Способ 4. Выгрузка в файлы и пакетная проверка графики

Для гарантированного обнаружения поврежденного файла используем механизм выгрузки конфигурации в файлы исходного кода:

  1. В Конфигураторе выберем пункт меню Конфигурация — Выгрузить конфигурацию в файлы... (или используем пакетный запуск с параметром /DumpConfigToFiles).
  2. В результирующей папке найдем все файлы с расширением .png.
  3. Проверим файлы специализированной утилитой валидации (например, pngcheck) или откроем папку в пакетном просмотрщике. Утилита моментально укажет на поврежденный файл со сбитым байтом фильтрации.
  4. Заменим поврежденный файл на корректный и выполним обратную операцию: Конфигурация — Загрузить конфигурацию из файлов... (параметр /LoadConfigFromFiles).
  5. Обновим конфигурацию базы данных (F7).

Рекомендации по передаче информационных баз

Часто повреждение графических ресурсов происходит при пересылке выгрузок (.dt или файлов .1cd) по электронной почте через почтовые шлюзы или прокси-серверы со встроенной антивирусной модификацией потока. Чтобы избежать подобных искажений, упаковывайте файлы выгрузок в архивы с паролем или обязательно сверяйте контрольные суммы (MD5 / SHA-256) до и после передачи.

← На главную