В практике администрирования 1С часто встречается ситуация, когда инфраструктура предприятия работает на одной версии платформы (например, 8.3.13), но в какой-то момент база данных открывается более свежим релизом (например, 8.3.14). После этого пользователи тонких и веб-клиентов начинают получать странные ошибки: вместо привычного интерфейса или понятного сообщения об ошибке появляется окно с нечитаемыми символами (так называемая «абракадабра») и ссылкой на HTTP-протокол. Разберем подробно, почему это происходит и как вернуть работоспособность системы без потери данных.
Для начала проанализируем ситуацию. Почему база, которая прекрасно работала в режиме Толстый клиент, вдруг перестает отвечать Тонкому клиенту через веб-сервер? Проблема кроется в существенных внутренних изменениях, которые компания 1С внедрила, начиная с версии платформы 8.3.14.
Основная причина заключается в том, что платформа 8.3.14 при первом же открытии базы (даже файловой) производит скрытую конвертацию структуры таблиц внутри файла 1Cv8.1CD. Это происходит вне зависимости от того, какой Режим совместимости установлен в конфигурации. Даже если вы оставили режим 8.3.12 или 8.3.13, физический формат хранения данных уже изменился.
Когда Тонкий клиент версии 8.3.13 пытается подключиться к такой базе через веб-сервер Apache или IIS, на котором опубликован модуль расширения от версии 8.3.14, происходит конфликт протоколов. Сервер отправляет данные, упакованные по новым алгоритмам (часто с использованием обновленного сжатия GZIP или новых сетевых библиотек), а старый клиент не может их десериализовать. Результатом становится та самая строка нечитаемых символов в окне ошибки — это «сырой» поток данных, который клиентская часть не смогла распознать.
Первым делом рассмотрим, как подготовить конфигурацию к возврату на старую платформу. Если база уже была модифицирована в версии 8.3.14, нам необходимо явно указать платформе, что мы не планируем использовать функционал нового релиза.
Для этого выполним следующие действия:
Конфигуратор, используя платформу версии 8.3.14.Режим совместимости.8.3.13 (или то, которое использовалось ранее в вашей сети).Важно понимать: этого шага недостаточно для того, чтобы старый тонкий клиент заработал. Мы изменили логику работы метаданных, но физическая структура файла 1Cv8.1CD все еще остается в формате 8.3.14.
Теперь разберем самый эффективный метод исправления физической структуры базы. Как отмечают эксперты, единственным надежным способом вернуть базу в формат, полностью понятный для версии 8.3.13, является использование транспортного файла выгрузки.
Выполним процедуру по шагам:
Конфигураторе версии 8.3.14 выберем пункт меню Администрирование — Выгрузить информационную базу.....dt. Этот формат является универсальным и не содержит в себе особенностей физического строения таблиц конкретной версии платформы — только данные и метаданные.1Cv8.1CD.Конфигуратор новой базы (используя версию 8.3.13)..dt.Проанализируем ситуацию после загрузки: платформа 8.3.13 при импорте данных «с нуля» создаст файл 1Cv8.1CD в своем родном формате, который гарантированно поддерживается всеми компонентами этой версии, включая модули расширения веб-сервера.
После того как мы вернули базу на версию 8.3.13, необходимо убедиться, что публикация на веб-сервере также соответствует этой версии. Выясним причину, почему это критично: если в системе установлен Apache, он использует конкретную библиотеку (например, wsap24.dll), которая находится в папке bin установленной платформы 1С.
Проанализируем файл публикации default.vrd. В нем не должно быть параметров, специфичных для 8.3.14. Самый простой способ обновить публикацию:
Конфигуратор версии 8.3.13 от имени Администратора.Это перезапишет файлы в каталоге веб-сервера и свяжет его с правильной версией платформы.
Рассмотрим еще несколько важных моментов, которые помогут избежать повторения ошибки:
1. Очистка кеша на клиентских машинах.
Даже после исправления базы на сервере, локальные компьютеры пользователей могут хранить старые дескрипторы таблиц и настройки сеансов, полученные от версии 8.3.14. Рекомендуется полностью очистить временные файлы 1С в папках %AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8.
2. Синхронизация версий.
Для стабильной работы через веб-клиент или тонкий клиент по HTTP крайне желательно, чтобы версия Тонкого клиента, версия платформы на сервере и версия модуля расширения веб-сервера совпадали до последнего знака. Например, если сервер работает на 8.3.13.1644, то и клиенты должны использовать именно этот билд.
3. Проверка параметров конфигурации.
Иногда ошибка запуска в тонком клиенте может быть связана с тем, что в свойствах конфигурации или конкретных ролей случайно были изменены права или способы запуска. Убедитесь, что в свойствах конфигурации не стоит галочка Использовать только толстый клиент.
Подводя итог, можно сказать, что «нечитаемые символы» при подключении — это классический симптом несоответствия версий при передаче данных по HTTP. Использование механизма выгрузки/загрузки .dt между разными установленными версиями платформы является стандартным и самым надежным инструментом «понижения» версии базы данных в экосистеме 1С:Предприятие.