Как запустить 1С с разными списками баз и сохранить возможность их редактирования?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В практике администрирования и использования программных продуктов платформы 1С:Предприятие 8 часто возникает задача разделения информационных баз для одного и того же пользователя операционной системы. Например, бухгалтеру может потребоваться разделить рабочие базы и тестовые копии, чтобы случайно не внести изменения в реальный учет. Или системному администратору нужно разграничить доступ к разным группам баз (управленческий учет, регламентированный учет, архивные копии), не создавая при этом множество учетных записей в Windows.

Стандартный запуск утилиты 1cestart.exe по умолчанию обращается к единому файлу списка баз, который расположен в профиле пользователя. Разберем детально, как обойти это ограничение, настроить запуск с различными списками баз и решить главную проблему — сохранить возможность интерактивного добавления, изменения и удаления баз в окне запуска.

В чем заключается сложность стандартного подхода?

Самое простое решение, которое обычно приходит на ум (и которое предлагается в начале обсуждения на форумах) — это создание индивидуальных файлов списков с расширением .v8i и размещение их непосредственно на рабочем столе пользователя. При двойном клике по такому файлу операционная система автоматически вызывает стартер 1cestart.exe, передавая ему этот файл в качестве параметра.

Однако при таком сценарии запуска вы неизбежно столкнетесь с серьезной технической проблемой платформы. Система расценивает переданный файл .v8i как «внешний» статический список. В результате в открывшемся диалоговом окне выбора баз кнопки «Добавить», «Изменить» и «Удалить» становятся неактивными (серыми). Пользователь может запустить конфигурацию, но не может отредактировать настройки подключения или добавить новую базу через графический интерфейс 1С. Любые изменения в таком случае приходится вносить вручную через текстовый редактор, что крайне неудобно для обычных пользователей.

Рассмотрим несколько эффективных методов, которые позволяют обойти это ограничение и настроить полноценные, независимые и полностью редактируемые списки баз.

Метод 1. Переопределение переменной окружения APPDATA (Рекомендуемый способ)

Этот метод является самым надежным и гибким. По умолчанию программа 1cestart.exe ищет свои конфигурационные файлы и файл списка баз ibases.v8i в папке профиля текущего пользователя по пути %APPDATA%\1C\1CEStart\. С помощью простого командного файла (скрипта автоматизации) мы можем временно, в рамках конкретного сеанса запуска, подменить эту системную переменную.

Проанализируем этот процесс по шагам:

  1. На рабочем столе пользователя создаем два обычных текстовых файла.
  2. Переименовываем их, изменив расширение с .txt на .bat. Назовем их, например, 1C_Рабочие.bat и 1C_Тестовые.bat.
  3. Открываем первый файл 1C_Рабочие.bat в текстовом редакторе и прописываем следующий код:

@echo off
set APPDATA=%USERPROFILE%\AppData\Roaming\1C_Profile_Work
start "" "C:\Program Files\1cv8\common\1cestart.exe"
  1. Открываем второй файл 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.

Главное преимущество данного метода: списки баз в обоих окнах запуска остаются полностью интерактивными. Кнопки добавления, изменения и удаления баз активны, а все внесенные пользователем изменения будут корректно сохраняться в соответствующий файл настроек внутри созданного профиля.

Метод 2. Динамическая подмена файла списка перед запуском (Скрипт-свапер)

Если вам не хочется создавать дополнительные скрытые каталоги в профиле пользователя Windows, можно использовать метод физической замены (подмены) основного файла списка ibases.v8i непосредственно перед вызовом стартера 1С.

Разберем алгоритм настройки этого метода:

  1. Создайте в надежном месте на локальном диске (например, в каталоге C:\1C_Lists\) два заранее настроенных файла списков баз и назовите их work_list.v8i и test_list.v8i.
  2. На рабочем столе создайте командный файл для запуска рабочей группы баз:

@echo off
copy /y "C:\1C_Lists\work_list.v8i" "%APPDATA%\1C\1CEStart\ibases.v8i"
start "" "C:\Program Files\1cv8\common\1cestart.exe"
  1. Для запуска тестовой группы баз создайте второй файл со следующим содержимым:

@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.

Метод 3. Прямой запуск конкретных информационных баз

В некоторых случаях разделение списков баз требуется лишь для того, чтобы пользователь не путался в длинном перечне доступных систем. Если у вас есть всего несколько ключевых баз (например, «Управление торговлей» и «Зарплата и управление персоналом»), то оптимальным решением будет полный отказ от общего диалогового окна выбора баз.

Мы можем настроить ярлыки на рабочем столе для прямого запуска каждой информационной базы. Для этого выполните следующие действия:

  1. Создайте обычный ярлык для файла 1cestart.exe на рабочем столе.
  2. Нажмите на него правой кнопкой мыши и выберите пункт «Свойства».
  3. Вкладка «Ярлык», поле «Объект». Допишите к существующему пути параметры запуска.

Если база данных является файловой, строка подключения в поле «Объект» должна выглядеть так:


"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 (Предприятие) для конкретной базы, минуя промежуточный шаг выбора в окне стартера. Это существенно ускоряет работу пользователей и полностью исключает риск запуска не той информационной базы.

Метод 4. Использование общих сетевых списков через CommonInfoBases

Этот метод незаменим в корпоративной среде, когда администрирование баз ведется централизованно, а списки баз должны автоматически обновляться у десятков или сотен пользователей одновременно.

Платформа позволяет подключать внешние сетевые списки баз с помощью параметра CommonInfoBases, который прописывается в конфигурационном файле 1CEStart.cfg. Выясним, как это настроить:

  1. Разместите готовые файлы со списками баз (например, buh.v8i для бухгалтеров и sklad.v8i для сотрудников склада) на общем сетевом ресурсе, к которому у пользователей есть доступ в режиме чтения.
  2. В конфигурационном файле 1CEStart.cfg (который находится в папке %ALLUSERSPROFILE%\1C\1CEStart\ или в пользовательском профиле) пропишите пути к этим файлам:

CommonInfoBases=\\FileServer\1C_Distr\buh.v8i
CommonInfoBases=\\FileServer\1C_Distr\sklad.v8i

При запуске 1С автоматически считает данные из сетевых файлов и отобразит их в общем списке пользователя. При этом базы из общих списков будут защищены от случайного редактирования рядовыми сотрудниками, а системный администратор сможет в любой момент добавить новую базу всем пользователям сразу, просто отредактировав один файл на сервере.

← На главную