В процессе администрирования систем 1С:Предприятие часто встречается ситуация, когда на одном сервере сосуществуют базы с разной архитектурой построения интерфейса: одни работают на современных управляемых формах, другие — на классических обычных формах. Одной из наиболее запутанных проблем является случай, когда конкретная информационная база отказывается работать под 32-битным клиентом, выдавая ошибку несоответствия версий, но при этом прекрасно функционирует в 64-битной среде. Давайте детально проанализируем эту ситуацию, разберем причины возникновения конфликта и найдем эффективные способы решения.
Прежде всего, нам необходимо четко разграничить два понятия, которые часто путают пользователи. Версия платформы — это полный четырехзначный номер сборки (например, 8.3.23.1865). Разрядность — это архитектура исполняемого файла (x86 для 32 бит или x86_64 для 64 бит).
Ошибка «Несоответствие версий клиента и сервера» в 99% случаев сигнализирует о том, что номер сборки установленного на компьютере клиента отличается от номера сборки, запущенной на сервере. Однако, если у вас установлены обе версии платформы (и 32, и 64 бита), может возникнуть путаница. Рассмотрим ситуацию подробнее:
8.3.22.1709 (64-бит).8.3.22.1709 и старая 32-битная версия 8.3.21.1607.C:\Program Files (x86)\1cv8, находит там только старую версию и выдает закономерную ошибку.Выясним причину: если другие базы запускаются нормально, значит, для них стартер 1cestart.exe автоматически выбирает актуальную 64-битную версию. Для «проблемной» базы, скорее всего, в настройках жестко прописаны параметры, заставляющие систему искать именно 32-битный исполняемый файл, которого нужной версии просто нет в системе.
Одной из ключевых зацепок в нашей проблеме является упоминание обычных форм. Это критически важный момент. Базы, разработанные на обычном приложении, принципиально не могут работать в режиме Тонкого клиента (1cv8c.exe). Им требуется исключительно Толстый клиент (1cv8.exe).
Посмотрим на типичный сценарий установки платформы: системные администраторы часто устанавливают 64-битную платформу целиком, а 32-битную — в усеченном виде (только тонкий клиент) для экономии места или по ошибке. Если для 32-битной архитектуры нужной версии не установлен компонент «Толстый клиент», то при попытке запуска базы на обычных формах произойдет одно из двух:
1cv8c.exe. В этом случае откроется режим управляемого приложения (если он разрешен в конфигурации), но интерфейс будет пустым или некорректным, так как основные формы — обычные.1cv8.exe нужной разрядности.Таким образом, мы видим прямую связь между сообщением №2 (открываются управляемые формы вместо обычных) и отсутствием установленного толстого клиента нужной разрядности.
Если база работает в 64-битном режиме, но «капризничает» при попытке использовать 32-битный клиент, нам нужно проверить настройки конкретной информационной базы в списке. Проанализируем настройки запуска по шагам:
32 (x86), система будет игнорировать наличие 64-битных версий, даже если они новее и лучше подходят.После очистки поля разрядности параметр в файле ibases.v8i примет неопределенное значение, и стартер сам выберет наиболее подходящую установленную версию платформы. Если вы хотите принудительно задать архитектуру через дополнительные параметры запуска, можно использовать ключ:
/AppArch x86
Или для 64-битной версии:
/AppArch x86_64
В клиент-серверном варианте работы крайне важно, как настроено автоматическое обновление клиентов. Проанализируем ситуацию: сервер 1С при подключении клиента проверяет соответствие версий. Если они различаются, сервер может предложить клиенту обновиться.
Если на сервере в каталоге установки или в настройках публикации дистрибутивов прописан путь только к 64-битному инсталлятору, 32-битный клиент не сможет найти «свой» дистрибутив для обновления. В итоге пользователь получает ту самую ошибку о несоответствии, не имея возможности автоматически исправить ситуацию.
Решение: Убедитесь, что в системном каталоге C:\Program Files\1cv8\conf (или аналогичном для вашей ОС) файл 1cestart.cfg содержит корректные ссылки на общие ресурсы с дистрибутивами обеих архитектур.
Подведем итог нашему исследованию. Чтобы обеспечить корректную работу базы на обычных формах в 32-битном окружении, выполните следующие действия:
C:\Program Files (x86)\1cv8\номер_версии\bin\1cv8.exe должен существовать.8.3.22.1709 (x86) совместима с 8.3.22.1709 (x64), но 8.3.21.xxxx — нет.1cestart удалите жесткую привязку к разрядности через Shift+F4.Обычное приложение, либо в настройках базы в списке выбран Толстый клиент.Соблюдение этих правил позволит избежать конфликтов разрядности и обеспечит стабильную работу старых конфигураций на современных серверах 1С:Предприятие.