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

Зачем это ?

Цель — сэкономить время на рутинной задаче и не добавлять базы по одной, а сразу группой. Плюс избавиться от путаницы, которая обязательно возникнет из-за одинаковых названий баз.
Выглядит это так:

— Андрей, добавь Наталье Натальевне базу: Server1C: «buh2017» (это ещё в идеале, если скажут путь к базе, а не ее название)
— А как её назвать?
— Бухгалтерия или там Бухгалтерия NEW (ну вы поняли, их таких могут быть десятки и попробуй потом разберись)

Восхитительно, не правда ли ? Не правда.
Другой минус такого кривого подхода ещё в том, что сотрудника надо выловить (а он в другом городе например), согласовать с ним время и подключение.

Как устроены конфигурационные файлы 1C

Кодировка UTF-8. Расширения .cfg и .v8i. Обычные текстовые и читаемые файлы.

Расположение файлов на стороне пользователя

У пользователя на компьютере 1С 8.3 хранит файлы списков баз в каталогах:

Для Windows XP/Server 2003:
Профиль всех пользователей: С:\Documents and Settings\All Users\Application Data\1C\1CEstart\
Профиль пользователя: С:\Documents and Settings\%username%\Application Data\1C\1CEstart\

Для Windows 7 и выше/Server 2008 и выше:
Профиль всех пользователей: C:\ProgramData\1C\1CEStart\
Профиль пользователя: C:\Users\%username%\AppData\Roaming\1C\1CEStart\

Содержимое профиля пользователя — два файла: 1CEStart.cfg, ibases.v8i.
Содержимое директории профиля всех пользователей — один лишь, 1CEStart.cfg.

При запуске 1С читает список баз из профиля всех пользователей C:\ProgramData\1C\1CEStart\1CEStart.cfg, а потом и из профиля пользователя C:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfg, и если в них есть ссылки на конфигурационные базы в сети, то добавляет их в этот файл.

Описание файла 1CEStart.cfg

В профиле всех пользователей конфигурационный файл C:\ProgramData\1C\1CEStart\1CEStart.cfg имеет следующее содержание:
InstalledLocation=C:\Program Files (x86)\1cv83
InstallComponents=DESIGNERALLCLIENTS=1 THINCLIENTFILE=1 THINCLIENT=0 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=0 LANGUAGES=RU

Где:
InstalledLocation — указывает на каталог, в который установлена 1С: Предприятие. По умолчанию это значение C:\Program Files (x86)\1Cv8.
CommonCfgLocation — указывает путь и имя общего конфигурационного файла. Допускается наличие нескольких строк с таким параметром.
CommonInfoBases — указывает путь и имя файла (.v8i) со списком общих информационных баз.
DistributiveLocation — содержит указание на каталог, в котором будет производится поиск новой версии для автоматической установки.
InstallComponents — В локальном конфигурационном файле (1CEStart.cfg) содержит перечень установленных компонент с признаком нужно установить компонету — 1, или нет — 0

В профиле пользователя конфигурационный файл C:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfg первоначально пустой. Но, если какие-то настройки необходимо сделать индивидуально для конкретного пользователя, то писать нужно именно в него.

Описание файла ibases.v8i

Второй важный файл информационных баз, который находится в профиле самого пользователя — C:\Users\%username%\AppData\Roaming\1C\1CEStart\ibases.v8i. В него и собирается конечный список баз. Пример его содержимого:

[BUH_2017] Connect=Srvr="Server1C:1551";Ref="BUH2017";
ID=34891456-947f-4283-8a34-1cbc092a654a
OrderInList=16640
Folder=/
OrderInTree=16640
External=1
ClientConnectionSpeed=Normal
App=ThinClient
WA=1
Version=8.2

Где:
[BUH_2017] – название базы 1С. Может быть как русскими буквами, так и английскими. Это то, что видит пользователь.
Connect=Srvr="Server1C:1551";Ref="BUH_2017"; - место хранения базы, в данном случае база серверная.
ID=34891493-907f-4783-8a37-3cbc092a989a — уникальный код базы. Если у двух записей один и тот же ID, значит это одна база.
OrderInList=16640 — порядок в списке баз, когда базы представлены одним общим списком без подкаталогов; этот параметр из сетевого списка синхронизируется только в чистый ibases.v8i, если в ibases.v8i пользователя уже заполнен этой базой и этот параметр не будет перезаписываться, при его изменении в сети.
Folder=/ — задаёт место в дереве каталогов, если вид представления списка баз выставлен деревом; этот параметр имеет приоритет пользователя, и не меняется при изменении в сетевом конфиге.
OrderInTree=16640 — порядок в дереве, когда список баз представлен в виде иерархии подкаталогов; этот параметр имеет также приоритет пользователя, и синхронизируется только при первом добавлении базы, а далее подлежит изменению только локальным пользователем.
External=1 — внешняя подключаемая запись конфигурации или нет. Когда 0 тогда база присутствует только в этом файле. В данной ситуации эта запись импортируется из файла списка баз .v8i из сети. Это идентификатор, если это список баз расположенный в сети (расшаренный), то этот параметр можно вообще убрать из конфигурационного файла.
ClientConnectionSpeed=Normal — скорость соединения клиента. Опции могут быть “Nofmal” и “Low”.  Этот параметр интерактивный и при сетевом размещении синхронизируется при каждом запуске 1С.
App=Auto — тип соединения клиента. Бывает три типа:
— Auto — определяется сервером;
— ThinClient — тонкий клиент;
— ThickClient — толстый клиент.
Этот параметр интерактивный и синхронизируется при каждом запуске 1С.
WA=1 — этот параметр говорит о том, что система должна использовать windows авторизацию. Этот параметр интерактивный и синхронизируется при каждом запуске 1С.
Version=8.3 — используемая версия для этой базы. Если указать полностью конкретизируя какую платформу использовать, то будет использовать именно ту платформу, которую укажешь

Ещё есть такой параметр как DefaultApp — тип соединения клиента по умолчанию, если в конфигурации для базы не задан, и DefaultVersion — используемая версия по умолчанию, если не задано в конфигурации для базы. Этот параметр пользовательский, и синхронизируется в чистый файл базы при первом запуске. Далее этим параметром управляет локальный пользователь.

Ссылки на конфигурационные файлы в сети

Прелесть всей этой схемы работы в том, что производители 1С предусмотрели возможность глядеть в конфигурационные файлы, расположенные в сети. Реализуется это путём правки:
либо в конфигурационном файле всех пользователей C:\ProgramData\1C\1CEStart\1CEStart.cfg, если мы хотим показать базы для всех пользователей компьютера;
либо в конфигурационном файле конкретного пользователя C:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfg, если мы хотим показать базы только определённому пользователю на компьютере.

А добавить можно параметры:
либо CommonCfgLocation=\\server\1C\config\bases.cfg — указывает путь и имя общего конфигурационного файла. Допускается наличие нескольких строк с таким параметром. Название файла не играет принципиального значения, лишь бы расширение сохранялось;
либо CommonInfoBases=\\server\1C\config\buh_bases.v8i — указывает путь и имя файла (.v8i) со списком общих информационных баз. Название файла не играет принципиального значения, лишь бы расширение сохранялось или в комбинации и тот и другой, и помногу строк.

В сети мы должны разместить файлы с расширением .cfg и .v8i, и соответствующим наполнением.

Идея

Идея в том, чтобы делать правки с наименьшим количеством повторений. Если настройки базы или её расположение на сервере поменялось, то, исправив запись один раз в одном месте, мы получим актуальную информацию на всех компьютерах.
Для этого необходимо сделать шару в сети: \\server\1C\.

В этой шаре сделать, как минимум два каталога:
..\DB\
Листинг каталога:
\\server\1C\DB\..
..
base1.v8i
base2.v8i
base3.v8i
base4.v8i

В этом каталоге будут хранится файлы с расширением .v8i. Эти файлы будут иметь внутри себя настройки всего лишь одной базы для каждого файла. Причём указать следует только те параметры, настройки, которые критичны именно для этой базы, всё остальное автоматом подставится по умолчанию. Пример файла:
[Название базы] Connect=
ClientConnectionSpeed=Normal
App=Auto
WA=1
Version=8.3

Следует избегать использования параметра ID, т.к. 1С разработчики используют для создания новой базы копипаст из имеющейся базы. А базы с одним ID будут конфликтовать.
..\groups\
Листинг каталога:
\\server\1C\groups\..
..
buh.cfg
fin.cfg
managers.cfg

В этом каталоге будут храниться файлы с расширением .cfg. Эти файлы будут иметь внутри себя ссылки на базы в каталоге ..\DB\. Пример файла:
CommonInfoBases=\\server\1C\bases\base1.v8i
CommonInfoBases=\\server\1C\bases\base2.v8i

В это каталоге мы создаём индивидуальные для группы пользователей или же для конкретного пользователя списки баз. Именно на файлы из этой группы мы ссылаемся в конфигурационных файлах операционной системы пользователя.
Если необходимо изменить настройки какой-то базы, то мы правим её всего одни раз в файле \\server\1C\bases\base.v8i, и это отразится у всех пользователей, т.к. все пользователи смотрят информацию о базе именно в этом файле.

Результат радует

  • Исправить название базы, месторасположение, параметры запуска — всё можно сделать в одном месте и единожды.
  • Унификация названия баз — все пользователи о базе знают по одному общему названию.
  • Пользователь сам не сможет поломать конфигурационные настройки, т.к. они хранятся не на его компьютере.
  • Возможность редактировать конфигурационные файлы, даже если компьютер пользователя выключен.

 

Если у Вас появились вопросы или есть какие-либо замечания, оставьте комментарий.

 

Поделиться