В практике администрирования и использования программных продуктов платформы 1С:Предприятие 8 часто возникает задача разделения информационных баз для одного и того же пользователя операционной системы. Например, бухгалтеру может потребоваться разделить рабочие базы и тестовые копии, чтобы случайно не внести изменения в реальный учет. Или системному администратору нужно разграничить доступ к разным группам баз (управленческий учет, регламентированный учет, архивные копии), не создавая при этом множество учетных записей в Windows.
Стандартный запуск утилиты 1cestart.exe по умолчанию обращается к единому файлу списка баз, который расположен в профиле пользователя. Разберем детально, как обойти это ограничение, настроить запуск с различными списками баз и решить главную проблему — сохранить возможность интерактивного добавления, изменения и удаления баз в окне запуска.
Самое простое решение, которое обычно приходит на ум (и которое предлагается в начале обсуждения на форумах) — это создание индивидуальных файлов списков с расширением .v8i и размещение их непосредственно на рабочем столе пользователя. При двойном клике по такому файлу операционная система автоматически вызывает стартер 1cestart.exe, передавая ему этот файл в качестве параметра.
Однако при таком сценарии запуска вы неизбежно столкнетесь с серьезной технической проблемой платформы. Система расценивает переданный файл .v8i как «внешний» статический список. В результате в открывшемся диалоговом окне выбора баз кнопки «Добавить», «Изменить» и «Удалить» становятся неактивными (серыми). Пользователь может запустить конфигурацию, но не может отредактировать настройки подключения или добавить новую базу через графический интерфейс 1С. Любые изменения в таком случае приходится вносить вручную через текстовый редактор, что крайне неудобно для обычных пользователей.
Рассмотрим несколько эффективных методов, которые позволяют обойти это ограничение и настроить полноценные, независимые и полностью редактируемые списки баз.
Этот метод является самым надежным и гибким. По умолчанию программа 1cestart.exe ищет свои конфигурационные файлы и файл списка баз ibases.v8i в папке профиля текущего пользователя по пути %APPDATA%\1C\1CEStart\. С помощью простого командного файла (скрипта автоматизации) мы можем временно, в рамках конкретного сеанса запуска, подменить эту системную переменную.
Проанализируем этот процесс по шагам:
.txt на .bat. Назовем их, например, 1C_Рабочие.bat и 1C_Тестовые.bat.1C_Рабочие.bat в текстовом редакторе и прописываем следующий код:
@echo off
set APPDATA=%USERPROFILE%\AppData\Roaming\1C_Profile_Work
start "" "C:\Program Files\1cv8\common\1cestart.exe"
1C_Тестовые.bat и прописываем аналогичный код, но указываем другую директорию для хранения профиля:
@echo off
set APPDATA=%USERPROFILE%\AppData\Roaming\1C_Profile_Test
start "" "C:\Program Files\1cv8\common\1cestart.exe"
Выясним, как работает этот механизм. При запуске любого из этих файлов командный интерпретатор создает изолированное окружение. Переменная %APPDATA% переопределяется и начинает указывать на новую папку (1C_Profile_Work или 1C_Profile_Test). Запущенный следом исполняемый файл 1С автоматически создает в этой папке всю необходимую структуру каталогов и чистый файл ibases.v8i.
Главное преимущество данного метода: списки баз в обоих окнах запуска остаются полностью интерактивными. Кнопки добавления, изменения и удаления баз активны, а все внесенные пользователем изменения будут корректно сохраняться в соответствующий файл настроек внутри созданного профиля.
Если вам не хочется создавать дополнительные скрытые каталоги в профиле пользователя Windows, можно использовать метод физической замены (подмены) основного файла списка ibases.v8i непосредственно перед вызовом стартера 1С.
Разберем алгоритм настройки этого метода:
C:\1C_Lists\) два заранее настроенных файла списков баз и назовите их work_list.v8i и test_list.v8i.
@echo off
copy /y "C:\1C_Lists\work_list.v8i" "%APPDATA%\1C\1CEStart\ibases.v8i"
start "" "C:\Program Files\1cv8\common\1cestart.exe"
@echo off
copy /y "C:\1C_Lists\test_list.v8i" "%APPDATA%\1C\1CEStart\ibases.v8i"
start "" "C:\Program Files\1cv8\common\1cestart.exe"
При использовании этого метода важно помнить об одной важной особенности: если пользователь решит добавить новую базу или изменить параметры существующей прямо в окне запуска, эти изменения запишутся в текущий файл ibases.v8i. Однако при следующем запуске другого скрипта этот файл будет перезаписан эталонным файлом из папки хранения. Чтобы избежать потери внесенных изменений, скрипт можно усложнить, добавив в него обратное копирование измененного файла в архив перед закрытием программы, либо использовать Метод 1.
В некоторых случаях разделение списков баз требуется лишь для того, чтобы пользователь не путался в длинном перечне доступных систем. Если у вас есть всего несколько ключевых баз (например, «Управление торговлей» и «Зарплата и управление персоналом»), то оптимальным решением будет полный отказ от общего диалогового окна выбора баз.
Мы можем настроить ярлыки на рабочем столе для прямого запуска каждой информационной базы. Для этого выполните следующие действия:
1cestart.exe на рабочем столе.Если база данных является файловой, строка подключения в поле «Объект» должна выглядеть так:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "D:\1C_Bases\Accounting"
Если база данных развернута на сервере 1С:Предприятия, укажите параметры сервера и имя базы:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S "ServerName\BaseName"
При использовании таких ярлыков система будет сразу запускать режим ENTERPRISE (Предприятие) для конкретной базы, минуя промежуточный шаг выбора в окне стартера. Это существенно ускоряет работу пользователей и полностью исключает риск запуска не той информационной базы.
Этот метод незаменим в корпоративной среде, когда администрирование баз ведется централизованно, а списки баз должны автоматически обновляться у десятков или сотен пользователей одновременно.
Платформа позволяет подключать внешние сетевые списки баз с помощью параметра CommonInfoBases, который прописывается в конфигурационном файле 1CEStart.cfg. Выясним, как это настроить:
buh.v8i для бухгалтеров и sklad.v8i для сотрудников склада) на общем сетевом ресурсе, к которому у пользователей есть доступ в режиме чтения.1CEStart.cfg (который находится в папке %ALLUSERSPROFILE%\1C\1CEStart\ или в пользовательском профиле) пропишите пути к этим файлам:
CommonInfoBases=\\FileServer\1C_Distr\buh.v8i
CommonInfoBases=\\FileServer\1C_Distr\sklad.v8i
При запуске 1С автоматически считает данные из сетевых файлов и отобразит их в общем списке пользователя. При этом базы из общих списков будут защищены от случайного редактирования рядовыми сотрудниками, а системный администратор сможет в любой момент добавить новую базу всем пользователям сразу, просто отредактировав один файл на сервере.