В процессе администрирования систем на базе 1С:Предприятие 8.3 специалисты часто сталкиваются (поможет инструмент принудительного завершения сеансов в 1С) с ситуацией, когда автоматизированный запуск базы (например, через скрипт или планировщик задач) прерывается ошибкой vrsbase: 126(0x0000007E): Не найден указанный модуль. Рассмотрим подробнее, почему это происходит и как настроить систему так, чтобы «умный» стартер 1С не мешал нормальной работе пользователя.
Проанализируем ситуацию: ошибка загрузки компоненты vrsbase чаще всего возникает при попытке открыть файловую информационную базу, используя дистрибутив, предназначенный исключительно для тонкого клиента. Проблема кроется в архитектурных различиях между дистрибутивами:
Когда мы используем универсальный стартер 1cestart.exe, он сканирует систему в поиске самой свежей версии платформы. Если на компьютере установлен тонкий клиент версии 8.3.20.1710, а полная платформа имеет версию 8.3.20.1674, стартер по умолчанию выберет более высокий номер версии (1710). Поскольку эта версия является «урезанным» тонким клиентом, она не сможет инициализировать работу с файловым путем, указанным через ключ /F, и выдаст ошибку vrsbase.
Разберем, как можно жестко закрепить тип клиента для конкретной базы, не меняя скрипты запуска. Все настройки, которые мы видим в интерактивном окне запуска 1С, хранятся в текстовом файле ibases.v8i (обычно он расположен в каталоге %AppData%\1C\1cv8\). Проанализируем структуру этого файла и внесем изменения.
Для того чтобы стартер всегда выбирал толстого клиента, необходимо найти описание нужной базы и отредактировать параметр ClientMode. Рассмотрим пример настройки структуру этого файла:
[Название Вашей Базы]
Connect=File="C:\Bases\Trade";
ID=...
ClientMode=ThickClient
DefaultVersion=8.3.20
В этом примере параметр ClientMode=ThickClient заставляет систему игнорировать наличие тонкого клиента, даже если его версия выше. Если же мы укажем ClientMode=Auto, система снова начнет отдавать приоритет самой новой версии тонкого клиента.
Посмотрим на возможности управления запуском через параметры командной строки. Часто разработчики пытаются использовать ключ /RunModeManagedApplication, надеясь, что он заставит систему запустить толстого клиента в режиме управляемого приложения. Однако здесь есть важный нюанс, который мы должны учитывать.
Согласно документации 1С, поведение ключей следующее:
/RunModeOrdinaryApplication — запускает толстый клиент в режиме обычного приложения. Это гарантированно задействует 1cv8.exe из полной платформы./RunModeManagedApplication — этот ключ более коварен. Он запускает толстый клиент в режиме управляемого приложения только в том случае, если в настройках информационной базы (в списке баз) явно указано использование толстого клиента. Если там стоит «Выбирать автоматически», стартер все равно может отдать предпочтение тонкому клиенту.Если вам нужно запустить базу из командной строки и избежать конфликтов, рекомендуем указывать маску версии через ключ /V — для этого подойдёт централизованное администрирование рабочих мест и баз 1С. Рассмотрим пример:
"C:\Program Files (x86)\1cv8\common\1cestart.exe" ENTERPRISE /F "m:\fixin\1sspeed\1s_ppm\" /V "8.3.20" /RunModeOrdinaryApplication
Использование ключа /V с указанием конкретной минорной версии позволяет «приземлить» стартер на нужную ветку платформы, где установлена полная версия клиента.
Рассмотрим радикальный, но самый надежный метод автоматизации — запуск конкретного исполняемого файла вместо использования общего стартера 1cestart.exe. Если мы точно знаем, где установлена полная платформа, мы можем обратиться к ней напрямую.
В папке установленной версии (например, C:\Program Files\1cv8\8.3.20.1674\bin\) находятся два разных файла:
1cv8.exe — исполняемый файл толстого клиента (полная платформа).1cv8c.exe — исполняемый файл тонкого клиента.Для гарантированного запуска без ошибок vrsbase в файловом режиме, изменим скрипт запуска следующим образом:
"C:\Program Files\1cv8\8.3.20.1674\bin\1cv8.exe" ENTERPRISE /F "C:\Bases\MyBase" /N "Admin" /P "password"
Важный момент: при таком подходе вам придется обновлять пути в скриптах каждый раз после обновления платформы. Чтобы этого избежать, можно использовать системные переменные среды или создавать символьные ссылки на актуальную версию bin-каталога.
Проанализируем, как избежать подобных проблем на этапе развертывания — поможет мониторинг ошибок 1С с уведомлениями в Telegram. Если вы являетесь администратором или разработчиком, которому часто требуется работа с файловыми базами в режиме толстого клиента, следуйте правилу: не устанавливайте отдельный дистрибутив «Тонкий клиент» на рабочую станцию, где уже планируется установка полной платформы.
Если вам нужно протестировать поведение системы именно под тонким клиентом, лучше установить полную платформу, а в настройках конкретной базы в списке выбрать Тип клиента: Тонкий клиент. В этом случае стартер запустит 1cv8.exe в режиме тонкого клиента или воспользуется 1cv8c.exe из состава полной поставки. При этом все необходимые библиотеки (включая злополучную vrsbase) будут гарантированно присутствовать в системе, и вы сможете беспрепятственно открывать файловые базы.
Также стоит обратить внимание на разрядность платформы. Если вы устанавливаете тонкий клиент x64, а толстый клиент у вас установлен только в версии x86, стартер может игнорировать 32-битную полную версию при определенных настройках поиска. Всегда проверяйте соответствие разрядности в диалоге настройки списка информационных баз.