При работе в терминальной среде на базе Windows Server пользователи часто сталкиваются с неприятной ситуацией: после обновления платформы 1С или изменения настроек профиля при запуске базы через ярлык .v8i программа выдает сообщение "Список информационных баз пуст". Это происходит даже в том случае, если в самом файле ярлыка путь к базе прописан корректно. Проблема особенно актуальна для версий платформы, начиная с 8.2.15.х и выше, включая современные релизы 8.3.
В этой статье мы подробно разберем технические причины такого поведения системы и рассмотрим несколько эффективных способов решения — от простых скриптов до системной настройки конфигурационных файлов 1С.
Для начала проанализируем механизм работы программы запуска 1cestart.exe. Когда пользователь открывает файл с расширением .v8i, стартер пытается выполнить синхронизацию данных. Он не просто считывает путь из ярлыка, но и проверяет наличие локального файла настроек пользователя ibases.v8i, который обычно располагается по пути %AppData%\Roaming\1C\1CEStart\.
Если в системе установлены разные версии платформы в разные папки (например, 8.2.14 и 8.2.15), бинарные файлы могут конфликтовать. Основные причины «опустения» списка:
AppData.Рассмотрим наиболее изящный и системный способ, который позволяет избежать ручного копирования файлов каждому пользователю. В папке с установленной платформой существует общий конфигурационный файл, который управляет поведением всех экземпляров 1С на сервере.
Разберем по шагам, как настроить общие базы:
C:\Program Files (x86)\1cv82\conf или C:\Program Files\1cv8\conf.1CEStart.cfg.CommonInfoBases, указывающий на эталонный файл со списком баз.Пример содержимого файла 1CEStart.cfg:
CommonInfoBases=C:\1C_Bases\all_bases.v8i
UseHwLicenses=1
InstallComponents=DESIGNERALLCLIENTS=0 THINCLIENT=1 THICKCLIENT=1
В данном примере мы указываем 1С, что список баз нужно брать из общего файла all_bases.v8i. Теперь при входе любого пользователя в систему, даже если его локальный список пуст, базы из общего файла будут автоматически подтягиваться в окно запуска. Изменить этот список рядовой пользователь не сможет, что добавляет стабильности работе.
Если по каким-то причинам использование общего .cfg файла неудобно (например, пользователям нужно разрешить редактировать свои списки), можно воспользоваться скриптом, который будет принудительно копировать заранее подготовленный файл ibases.v8i в профиль пользователя при каждом логине в терминал.
Создадим файл copy_bases.vbs и пропишем в нем следующий код:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
' Определяем путь к папке настроек 1С в профиле пользователя
appDataPath = objShell.ExpandEnvironmentStrings("%AppData%") & "\1C\1CEStart\"
sourceFile = "C:\1C_Setup\ibases.v8i" ' Путь к эталонному файлу
' Проверяем существование целевой папки, если нет — создаем
If Not objFSO.FolderExists(appDataPath) Then
' Создаем дерево папок рекурсивно или по очереди
On Error Resume Next
objFSO.CreateFolder(objShell.ExpandEnvironmentStrings("%AppData%") & "\1C")
objFSO.CreateFolder(appDataPath)
On Error GoTo 0
End If
' Копируем файл с перезаписью
objFSO.CopyFile sourceFile, appDataPath, True
Этот скрипт необходимо назначить в групповых политиках (GPO) через gpedit.msc в раздел Конфигурация пользователя -> Конфигурация Windows -> Сценарии -> Вход в систему. Таким образом, при каждом открытии терминальной сессии у пользователя будет актуальный список информационных баз. Для централизованного обновления или массовой модификации списков подключений в домене подойдёт скрипт для изменения параметров в файле ibases.v8i через GPO.
Проанализируем ситуацию, когда баз немного и пользователей тоже. Мы можем настроить «Список общих информационных баз» непосредственно через интерфейс 1С. Это исключит проблему очистки локального файла ibases.v8i.
.v8i, который лежит в сетевой папке или на локальном диске сервера, доступном для всех на чтение.После этой манипуляции 1С пропишет путь к этому файлу в 1CEStart.cfg текущего пользователя, и базы будут отображаться всегда, даже если основной файл ibases.v8i будет поврежден или удален.
Иногда список баз слетает из-за того, что антивирусное ПО или служба теневого копирования блокируют файл ibases.v8i в момент закрытия программы. В этот момент файл может обнулиться (стать размером 0 байт).
Чтобы этого избежать, рекомендуем выполнить следующие действия:
.v8i, .v8l, .grs и папку %AppData%\1C\ в список исключений сканирования на терминальном сервере.Изменение и Запись на папку %AppData%\Roaming\1C\1CEStart\. Если права наследуются некорректно, 1С не сможет сохранить настройки сессии.C:\Users\%UserName%\AppData\Local\VirtualStore\Program Files\1cv82\. Если там лежат старые конфигурационные файлы, удалите их, так как система может приоритетно считывать данные оттуда, игнорируя реальные настройки.Подводя итог, можно сказать, что самым надежным способом для терминального сервера является использование параметра CommonInfoBases в файле 1CEStart.cfg. Это гарантирует единообразие списка баз у всех сотрудников и сводит к минимуму обращения в техническую поддержку по поводу «пропавших баз».