Список баз 1С — это то, что пользователь видит в окне запуска: наименования баз и папки. Сами базы лежат на сервере 1С, на диске или за веб-сервером, а в окне только ссылки на них. Хранятся ссылки в файле ibases.v8i, у каждого пользователя Windows свой. Ниже — где лежат файлы, формат записи, общий список для терминального сервера и рабочих мест и код, который собирает его по базам кластера.
Программа запуска 1cestart.exe (ярлык «1С:Предприятие») работает с двумя видами файлов — списками *.v8i и настройками 1CEStart.cfg. По справке платформы в Windows они лежат так:
| Файл | Где лежит | Что в нём |
|---|---|---|
| ibases.v8i | %APPDATA%\1C\1CEStart | личный список; его читают окно запуска, тонкий и толстый клиент |
| 1CEStart.cfg пользователя | %APPDATA%\1C\1CEStart | настройки окна запуска, в том числе всё, что меняют через «Настройка…» |
| 1CEStart.cfg для всех | C:\ProgramData\1C\1CEStart (%ALLUSERSPROFILE%) | общие настройки компьютера; сюда же установщик пишет InstalledLocation и InstallComponents |
| 1CESCmn.cfg | каталог, из которого запущен 1cestart.exe | настройки для запуска из сетевой папки |
| общий *.v8i | где решит администратор, например \\srv01\1c-lists | базы для всех; подключается параметром CommonInfoBases |
%APPDATA% — это C:\Users\<пользователь>\AppData\Roaming, поэтому путь %AppData%\Roaming\1C\1CEStart из некоторых инструкций неверен: Roaming в нём лишний. C:\Users\All Users\1C\1CEStart — ссылка Windows на ту же папку C:\ProgramData\1C\1CEStart. На Linux и macOS список лежит в домашнем каталоге: ~/.1C/1cestart/ibases.v8i.
Файл — текст в UTF-8 с BOM. База — секция: в квадратных скобках имя для пользователя, ниже строки «ключ=значение». Пример: папка, две серверные базы, файловая и веб-база.
[Рабочие базы]
ID=01a589cd-0b4d-4d5d-9224-3c90c44d711e
OrderInList=10
Folder=/
OrderInTree=10
External=0
[Торговля]
Connect=Srvr="srv01";Ref="trade";
ID=2288437b-ee70-40e2-bd88-9c260b3150b5
OrderInList=20
Folder=/Рабочие базы
OrderInTree=20
External=0
ClientConnectionSpeed=Normal
App=Auto
WA=1
DefaultVersion=8.3.27.1786
StartupErrorHelpText=Не входит в 1С? Звоните в ИТ, тел. 100
[Торговля (тест)]
Connect=Srvr="srv01:1641";Ref="trade_test";
ID=6e19b293-48cb-499d-b646-6a1caed6603f
OrderInList=30
Folder=/
OrderInTree=30
External=0
ClientConnectionSpeed=Normal
App=ThinClient
WA=0
AppArch=x86_64
[Архив до 2024]
Connect=File="D:\1C\Bases\archive";
ID=8b0776d7-0223-44d6-a39d-ebeb542fa17f
OrderInList=40
Folder=/
OrderInTree=40
External=0
ClientConnectionSpeed=Normal
App=ThickClient
WA=1
Version=8.3
AppArch=x86
[Торговля через интернет]
Connect=ws="https://srv01.example.local/trade";
ID=6267af02-cd6a-4b61-b177-c2a5bff2e865
OrderInList=50
Folder=/
OrderInTree=50
External=0
ClientConnectionSpeed=Low
App=ThinClient
WA=1
Connect — строка соединения: Srvr — адрес кластера (порт — если менеджер кластера не на 1541), Ref — имя базы в кластере, не в СУБД; File — каталог файловой базы; ws — адрес публикации.ID — GUID записи: по нему клиент называет папки кэша и настроек в %LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8 (см. статью про кэш 1С). Сменился ID — конфигурация скачается заново. Копируете секцию — ставьте новый GUID, например [guid]::NewGuid() в PowerShell.Folder — папка: / — корень, /Рабочие базы — вложенная; сама папка (в окне запуска — группа) — секция без Connect. Папки видны, если в «Настройка…» окна запуска включён флажок «Отображать в виде дерева».OrderInList, OrderInTree — порядок в списке и в дереве, если сортировка не по наименованию.App — режим запуска: Auto, ThinClient, ThickClient или WebClient; при Auto выбранный клиент платформа запишет в DefaultApp.WA — аутентификация: 1 — «Выбирать автоматически» (сначала вход по учётной записи Windows), 0 — «Запрашивать имя и пароль».ClientConnectionSpeed — Normal, Low (низкая скорость соединения) или OnStartup (выбирать при запуске); External=0 — служебный признак обычной записи, его не трогают.DefaultVersion, Version, AppArch — версия и разрядность платформы, о них ниже.StartupErrorHelpText, StartupErrorHelpURL — с 8.3.21 текст и ссылка в окне ошибки подключения: место для телефона ИТ-отдела.Общий список баз 1С не требует копировать ibases.v8i по профилям. Параметр CommonInfoBases в 1CEStart.cfg указывает на файл *.v8i; строк может быть несколько, и базы из всех файлов окно запуска показывает вместе с личными. Файл, подключённый через «Настройка…», появится только у текущего пользователя: интерактивные настройки пишутся в личный 1CEStart.cfg. Чтобы список информационных баз получили все пользователи компьютера, строки дописывают в C:\ProgramData\1C\1CEStart\1CEStart.cfg:
CommonInfoBases=\\srv01\1c-lists\cluster.v8i
CommonInfoBases=\\srv01\1c-lists\manual.v8i
DefaultVersion=8.3-8.3.27.1786
Путь вида \\сервер\папка — сетевой (UNC): два обратных слеша в начале обязательны. По справке 1CEStart.cfg — текст в UTF-16LE. CommonInfoBases из общего и личного файлов складываются, а DefaultVersion и UseHWLicenses из личного главнее. Личный ibases.v8i при этом остаётся.
Общий v8i кладите по UNC-пути, а не на букву сетевого диска, которой может не быть в сеансе; пользователям — только чтение, запись — администраторам и учётной записи генератора. Отделу можно дать ярлык с ключом /RunShortcut — окно запуска откроется со списком баз из указанного файла:
"C:\Program Files\1cv8\common\1cestart.exe" /RunShortcut "\\srv01\1c-lists\sklad.v8i"
При запуске 1cestart.exe из сетевой папки CommonInfoBases кладут в 1CESCmn.cfg рядом с ним — вместе с DistributiveLocation, каталогом дистрибутивов, из которого программа запуска сама ставит новые версии.
Для удалённых сотрудников без доступа к шаре в 1CEStart.cfg задают адреса веб-сервисов: InternetService — список баз и дистрибутив тонкого клиента, WebCommonInfoBases — только список, WebDistributiveLocation — только дистрибутив. Сервис пишут сами, например Web-сервисом небольшой конфигурации: программа запуска методом CheckInfoBases спрашивает, менялся ли список, а с 8.3.2 метод может перенаправить её на другой сервис. Интерфейс и пример — в «Руководстве администратора», приложение 6, публикация — в статье про веб-сервер.
На одном сервере строку можно дописать Блокнотом от администратора: при обычном сохранении он оставит UTF-16LE. Для парка машин удобнее скрипт: добавляет CommonInfoBases, не трогая остальное и не задваивая строку, делает копию с датой и пишет файл в UTF-16LE, даже если его пересохранили в другой кодировке.
# add-1c-common-list.ps1 - подключает общий список баз 1С строкой CommonInfoBases.
# По умолчанию правит 1CEStart.cfg для всех пользователей компьютера,
# с ключом -CurrentUser - файл текущего пользователя в %APPDATA%.
# Сохраните скрипт в UTF-8 с BOM. Запуск от администратора или сценарием GPO:
# powershell.exe -ExecutionPolicy Bypass -File add-1c-common-list.ps1 -ListPath "\\srv01\1c-lists\cluster.v8i"
param(
[Parameter(Mandatory = $true)]
[string[]]$ListPath,
[switch]$CurrentUser
)
$root = if ($CurrentUser) { $env:APPDATA } else { $env:ALLUSERSPROFILE }
$dir = Join-Path $root '1C\1CEStart'
$cfg = Join-Path $dir '1CEStart.cfg'
New-Item -ItemType Directory -Path $dir -Force | Out-Null
$lines = @()
$isUtf16 = $true
if (Test-Path -LiteralPath $cfg) {
# По справке платформы файл в UTF-16LE (BOM FF FE); другую кодировку читаем как UTF-8
$bytes = [System.IO.File]::ReadAllBytes($cfg)
$isUtf16 = ($bytes.Length -ge 2) -and ($bytes[0] -eq 0xFF) -and ($bytes[1] -eq 0xFE)
$encoding = if ($isUtf16) { 'Unicode' } else { 'UTF8' }
$lines = @(Get-Content -LiteralPath $cfg -Encoding $encoding)
}
$added = @()
foreach ($path in $ListPath) {
$line = 'CommonInfoBases=' + $path.Trim()
# -notcontains сравнивает без учета регистра: повторный запуск строку не задвоит
if ($lines -notcontains $line) {
$lines += $line
$added += $line
}
}
if (($added.Count -eq 0) -and $isUtf16) {
Write-Output "Без изменений: $cfg"
exit 0
}
if (Test-Path -LiteralPath $cfg) {
$backup = '{0}.{1:yyyyMMdd-HHmmss}.bak' -f $cfg, (Get-Date)
Copy-Item -LiteralPath $cfg -Destination $backup
}
# Пишем в UTF-16LE с BOM - в этой кодировке файл ждет программа запуска
Set-Content -LiteralPath $cfg -Value $lines -Encoding Unicode
Write-Output "Записан $cfg"
$added | ForEach-Object { Write-Output " добавлено: $_" }
В домене скрипт назначают компьютерам: «Конфигурация компьютера → Политики → Конфигурация Windows → Сценарии (запуск/завершение) → Автозагрузка», вкладка «Сценарии PowerShell», в параметрах — -ListPath с UNC-путём. Сценарий автозагрузки выполняется от SYSTEM, права на C:\ProgramData у него есть. Для группы пользователей — ключ -CurrentUser и сценарий входа: «Конфигурация пользователя → Политики → Конфигурация Windows → Сценарии (вход/выход из системы) → Вход в систему».
Не заменяйте 1CEStart.cfg готовым файлом, например элементом «Файлы» в настройках групповой политики: пропадут InstalledLocation и InstallComponents от установщика, и программа запуска может не найти версии, установленные не в C:\Program Files\1cv8, — скажем, 32-разрядные.
Версию, выбранную в свойствах базы (поле «Версия 1С:Предприятия»), платформа пишет в запись ключом DefaultVersion. Ключ Version — маска вроде 8.3, к которой применяется закрепление из 1CEStart.cfg; если версии в записи нет, берётся версия по умолчанию. Неполный номер означает самую свежую подходящую версию из установленных или доступных для установки, полный — ровно эту сборку. Если её нет и поставить неоткуда, программа запуска (с 8.3.8) пробует открыть базу самой свежей установленной версией, а серверная база с клиентом другой версии отвечает «Различаются версии клиента и сервера». Чтобы базы с версией 8.3 на терминальном сервере не уехали на только что установленную сборку, закрепите за ними нужную в 1CEStart.cfg: DefaultVersion=8.3-8.3.27.1786 — по справке базы с версией 8.3 тогда запускаются на 8.3.27.1786.
Разрядность (с 8.3.12, на 64-разрядной Windows) хранится в ключе AppArch: x86, x86_64 или x86_prt / x86_64_prt — самая свежая версия, а из двух разрядностей указанная. 32-разрядный клиент оставляют базам с 32-битными внешними компонентами и COM-объектами. Разрядность по умолчанию задают в «Настройка…» окна запуска, в таблице «Используемые версии»; она хранится в строке DefaultVersion файла 1CEStart.cfg.
Ручной список отстаёт от кластера. Код ниже берёт перечень баз через ras и объект АдминистрированиеСервера (8.3.14+, версия сервера — с 8.3.16), без COM-коннектора, и пишет \\srv01\1c-lists\cluster.v8i. Файловые и веб-базы держите в manual.v8i со своей строкой CommonInfoBases.
Код — для модуля формы внешней обработки, выполняется на сервере 1С: учётной записи службы (по умолчанию USR1CV8) нужна запись в папку списка, ras должен быть доступен с сервера. Запуск ras — в статье про консоль кластера, расписание — в статье про регламентное задание для обработки.
// Модуль формы внешней обработки «Общий список баз». Платформа 8.3.16 и новее,
// на сервере 1С запущен ras (сервер администрирования, порт по умолчанию 1545).
// Для регламентного задания перенесите функции в общий модуль с флажком «Сервер»
// и уберите директивы компиляции.
&НаСервереБезКонтекста
Функция НастройкиСписка()
Настройки = Новый Структура;
Настройки.Вставить("СерверRAS", "srv01");
Настройки.Вставить("ПортRAS", 1545);
Настройки.Вставить("ПортКластера", 1541);
// Администраторы кластера и центрального сервера, если они заведены.
// Пароли не храните в коде: передайте из формы или из безопасного хранилища
Настройки.Вставить("Администратор", "");
Настройки.Вставить("Пароль", "");
Настройки.Вставить("АдминистраторАгента", "");
Настройки.Вставить("ПарольАгента", "");
Настройки.Вставить("АдресДляКлиентов", ""); // пусто - имя компьютера из реестра кластера
Настройки.Вставить("Папка", "Сервер srv01"); // одно имя без "/"; пусто - базы в корне
Настройки.Вставить("Версия", ""); // пусто - точная версия сервера 1С, иначе полный номер сборки
Настройки.Вставить("ТекстПомощи", "Не входит в 1С? Звоните в ИТ, тел. 100"); // 8.3.21+
Настройки.Вставить("ИмяФайла", "\\srv01\1c-lists\cluster.v8i");
Возврат Настройки;
КонецФункции
// Текст файла *.v8i: по секции на каждую базу кластера, по алфавиту, в одной папке.
&НаСервереБезКонтекста
Функция ТекстСпискаБазКластера(Знач Настройки)
Агент = Новый АдминистрированиеСервера(Настройки.СерверRAS, Настройки.ПортRAS);
Если ЗначениеЗаполнено(Настройки.АдминистраторАгента) Тогда
// У агента порядок параметров обратный: сначала пароль, потом имя
Агент.ВыполнитьАутентификацию(Настройки.ПарольАгента, Настройки.АдминистраторАгента);
КонецЕсли;
Версия = ?(ПустаяСтрока(Настройки.Версия), Агент.ПолучитьВерсию(), Настройки.Версия);
Кластер = Неопределено;
Для Каждого Элемент Из Агент.ПолучитьКластеры() Цикл
Если Элемент.Порт = Настройки.ПортКластера Тогда
Кластер = Элемент;
Прервать;
КонецЕсли;
КонецЦикла;
Если Кластер = Неопределено Тогда
ВызватьИсключение СтрШаблон("На %1 нет кластера с портом %2",
Настройки.СерверRAS, Формат(Настройки.ПортКластера, "ЧГ=0"));
КонецЕсли;
Кластер.ВыполнитьАутентификацию(Настройки.Администратор, Настройки.Пароль);
// Srvr в строке соединения - менеджер кластера; порт пишем, если он не 1541
АдресКластера = ?(ПустаяСтрока(Настройки.АдресДляКлиентов), Кластер.ИмяКомпьютера,
Настройки.АдресДляКлиентов);
Если Кластер.Порт <> 1541 Тогда
АдресКластера = АдресКластера + ":" + Формат(Кластер.Порт, "ЧГ=0");
КонецЕсли;
Базы = Новый ТаблицаЗначений;
Базы.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
Базы.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
Базы.Колонки.Добавить("ID", Новый ОписаниеТипов("Строка"));
Для Каждого База Из Кластер.ПолучитьИнформационныеБазы() Цикл
Запись = Базы.Добавить();
Запись.Имя = База.Имя;
// Пользователю показываем описание базы из кластера, если оно заполнено
Запись.Наименование = ?(ПустаяСтрока(База.Описание), База.Имя, СокрЛП(База.Описание));
// ID берем из кластера: при пересборке списка он не меняется
Запись.ID = Строка(База.ИдентификаторИнформационнойБазы);
КонецЦикла;
Базы.Сортировать("Наименование");
ИмяПапки = ИмяСекции(Настройки.Папка);
Текст = Новый ТекстовыйДокумент;
Если ЗначениеЗаполнено(ИмяПапки) Тогда
ДобавитьПапку(Текст, ИмяПапки);
КонецЕсли;
Порядок = 0;
Для Каждого Запись Из Базы Цикл
Порядок = Порядок + 10;
ДобавитьБазу(Текст, Запись, АдресКластера, "/" + ИмяПапки, Порядок, Версия,
Настройки.ТекстПомощи);
КонецЦикла;
Возврат Текст.ПолучитьТекст();
КонецФункции
Секции базы и папки; ID папки — из MD5 её имени, тоже постоянный.
// Секция серверной базы в формате *.v8i
&НаСервереБезКонтекста
Процедура ДобавитьБазу(Текст, Знач База, Знач АдресКластера, Знач Папка, Знач Порядок,
Знач Версия, Знач ТекстПомощи)
Текст.ДобавитьСтроку("[" + ИмяСекции(База.Наименование) + "]");
Текст.ДобавитьСтроку(СтрШаблон("Connect=Srvr=""%1"";Ref=""%2"";", АдресКластера, База.Имя));
Текст.ДобавитьСтроку("ID=" + База.ID);
Текст.ДобавитьСтроку("OrderInList=" + Формат(Порядок, "ЧГ=0"));
Текст.ДобавитьСтроку("Folder=" + Папка);
Текст.ДобавитьСтроку("OrderInTree=" + Формат(Порядок, "ЧГ=0"));
Текст.ДобавитьСтроку("External=0");
Текст.ДобавитьСтроку("ClientConnectionSpeed=Normal");
Текст.ДобавитьСтроку("App=Auto");
Текст.ДобавитьСтроку("WA=1");
Текст.ДобавитьСтроку("DefaultVersion=" + Версия); // так платформа хранит версию из свойств базы
Если ЗначениеЗаполнено(ТекстПомощи) Тогда
Текст.ДобавитьСтроку("StartupErrorHelpText=" + ТекстПомощи);
КонецЕсли;
КонецПроцедуры
// Секция папки: без Connect, сама лежит в корне дерева
&НаСервереБезКонтекста
Процедура ДобавитьПапку(Текст, Знач ИмяПапки)
Текст.ДобавитьСтроку("[" + ИмяПапки + "]");
Текст.ДобавитьСтроку("ID=" + СтабильныйID("folder:" + НРег(ИмяПапки)));
Текст.ДобавитьСтроку("OrderInList=0");
Текст.ДобавитьСтроку("Folder=/");
Текст.ДобавитьСтроку("OrderInTree=0");
Текст.ДобавитьСтроку("External=0");
КонецПроцедуры
// Квадратные скобки в имени заменяем на круглые, чтобы не путать разбор секций
&НаСервереБезКонтекста
Функция ИмяСекции(Знач Наименование)
Возврат СтрЗаменить(СтрЗаменить(СокрЛП(Наименование), "[", "("), "]", ")");
КонецФункции
// GUID из MD5 ключа: один и тот же ключ дает один и тот же ID при каждой пересборке
&НаСервереБезКонтекста
Функция СтабильныйID(Знач Ключ)
Хеширование = Новый ХешированиеДанных(ХешФункция.MD5);
Хеширование.Добавить(Ключ);
Хекс = НРег(ПолучитьHexСтрокуИзДвоичныхДанных(Хеширование.ХешСумма));
Возврат СтрШаблон("%1-%2-%3-%4-%5", Лев(Хекс, 8), Сред(Хекс, 9, 4), Сред(Хекс, 13, 4),
Сред(Хекс, 17, 4), Сред(Хекс, 21, 12));
КонецФункции
Запись файла и команда формы. Неизменившийся файл не перезаписывается, пустым списком не затирается.
// Пишет список во временный файл, прежний сохраняет в .bak и подменяет его.
// Возвращает Истина, если файл изменился. Список без баз не пишет:
// если ras вернул пустой ответ, у пользователей остается вчерашний файл.
&НаСервереБезКонтекста
Функция ЗаписатьСписокБаз(Знач ИмяФайла, Знач ТекстСписка)
Если СтрНайти(ТекстСписка, "Connect=") = 0 Тогда
ВызватьИсключение СтрШаблон("В списке нет ни одной базы, файл %1 не изменен", ИмяФайла);
КонецЕсли;
Файл = Новый Файл(ИмяФайла);
Если Файл.Существует() Тогда
Прежний = Новый ТекстовыйДокумент;
Прежний.Прочитать(ИмяФайла, КодировкаТекста.UTF8);
Если Прежний.ПолучитьТекст() = ТекстСписка Тогда
Возврат Ложь; // базы не менялись - файл не трогаем
КонецЕсли;
КопироватьФайл(ИмяФайла, ИмяФайла + ".bak");
КонецЕсли;
// UTF-8 с BOM, как пишет список сама платформа
ВременныйФайл = ИмяФайла + ".tmp";
Запись = Новый ЗаписьТекста(ВременныйФайл, КодировкаТекста.UTF8);
Запись.Записать(ТекстСписка);
Запись.Закрыть();
КопироватьФайл(ВременныйФайл, ИмяФайла);
УдалитьФайлы(ВременныйФайл);
Возврат Истина;
КонецФункции
// Команда формы «Обновить общий список»
&НаКлиенте
Процедура ОбновитьОбщийСписок(Команда)
Результат = ОбновитьСписокНаСервере();
ПоказатьОповещениеПользователя(?(Результат.Изменен, "Список баз обновлен", "Список баз не изменился"),
, Результат.ИмяФайла);
Для Каждого Замечание Из Результат.Замечания Цикл
Сообщить(Замечание);
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ОбновитьСписокНаСервере()
Настройки = НастройкиСписка();
Результат = Новый Структура("ИмяФайла, Изменен, Замечания", Настройки.ИмяФайла);
Результат.Изменен = ЗаписатьСписокБаз(Настройки.ИмяФайла, ТекстСпискаБазКластера(Настройки));
Результат.Замечания = ЗамечанияКСпискуБаз(Настройки.ИмяФайла);
Возврат Результат;
КонецФункции
Проверка готового файла, в том числе ручного manual.v8i:
// Разбирает файл *.v8i в массив структур: Наименование и Параметры (ключи в нижнем регистре).
&НаСервереБезКонтекста
Функция СекцииСпискаБаз(Знач ИмяФайла)
Секции = Новый Массив;
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ИмяФайла, КодировкаТекста.UTF8);
Текущая = Неопределено;
Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл
СтрокаФайла = СокрЛП(Текст.ПолучитьСтроку(НомерСтроки));
Если СтрНачинаетсяС(СтрокаФайла, "[") И СтрЗаканчиваетсяНа(СтрокаФайла, "]") Тогда
Текущая = Новый Структура("Наименование, Параметры",
Сред(СтрокаФайла, 2, СтрДлина(СтрокаФайла) - 2), Новый Соответствие);
Секции.Добавить(Текущая);
Продолжить;
КонецЕсли;
Позиция = СтрНайти(СтрокаФайла, "=");
Если Текущая = Неопределено Или Позиция = 0 Тогда
Продолжить; // пустые строки и текст до первой секции
КонецЕсли;
// Делим по первому "=": в значении Connect их несколько
Текущая.Параметры.Вставить(НРег(СокрЛП(Лев(СтрокаФайла, Позиция - 1))),
СокрЛП(Сред(СтрокаФайла, Позиция + 1)));
КонецЦикла;
Возврат Секции;
КонецФункции
// Замечания к списку: записи без ID, повторы ID, повторы имен баз
// (базу с повторяющимся именем не запустить ярлыком с /IBName).
&НаСервереБезКонтекста
Функция ЗамечанияКСпискуБаз(Знач ИмяФайла)
Замечания = Новый Массив;
ПоID = Новый Соответствие;
ПоИмени = Новый Соответствие;
Для Каждого Секция Из СекцииСпискаБаз(ИмяФайла) Цикл
Наименование = Секция.Наименование;
ID = Секция.Параметры.Получить("id");
Если ID = Неопределено Тогда
Замечания.Добавить(СтрШаблон("«%1»: нет ID", Наименование));
ИначеЕсли ПоID.Получить(НРег(ID)) <> Неопределено Тогда
Замечания.Добавить(СтрШаблон("«%1» и «%2»: одинаковый ID %3",
ПоID.Получить(НРег(ID)), Наименование, ID));
Иначе
ПоID.Вставить(НРег(ID), Наименование);
КонецЕсли;
Если Секция.Параметры.Получить("connect") = Неопределено Тогда
Продолжить; // секция без Connect - папка
КонецЕсли;
Если ПоИмени.Получить(НРег(Наименование)) = Неопределено Тогда
ПоИмени.Вставить(НРег(Наименование), Истина);
Иначе
Замечания.Добавить(СтрШаблон("«%1»: имя повторяется, запуск с /IBName выдаст ошибку",
Наименование));
КонецЕсли;
КонецЦикла;
Возврат Замечания;
КонецФункции
Новый АдминистрированиеСервера(...) — подключение к ras (по умолчанию порт 1545), а не к агенту на 1540. До 8.3.14 остаётся COM: V83.COMConnector, ConnectAgent("tcp://srv01:1540"), GetClusters(), Authenticate(), GetInfoBases() — только Windows и коннектор той же версии и разрядности, что сервер; незарегистрированный даёт «Недопустимая строка с указанием класса».Агент.ВыполнитьАутентификацию(...) нужна, только если заведены администраторы центрального сервера, и первым в ней идёт пароль. Кластер.ВыполнитьАутентификацию(...) — всегда: без неё ПолучитьИнформационныеБазы() не работает, а без администраторов подходят пустые строки.Агент.ПолучитьВерсию() — точная версия сервера: генератор пишет её ключом DefaultVersion, как платформа хранит версию из свойств базы, и программа запуска сразу берёт нужный клиент. На 8.3.14–8.3.15 метода нет: впишите в Версия номер сборки сервера.Кластер.ИмяКомпьютера — имя из реестра кластера. Если клиенты знают сервер под другим именем, заполните АдресДляКлиентов.ИдентификаторИнформационнойБазы — постоянный GUID базы в кластере, поэтому кэш пользователей переживает пересборку списка.КопироватьФайл(ВременныйФайл, ИмяФайла) — если оборвётся запись временного файла (сеть, права), рабочий список останется целым; прежний к тому же лежит в .bak.Нет, пропал только ibases.v8i, например при пересоздании профиля Windows. Поищите файл в старом профиле или в предыдущих версиях папки %APPDATA%\1C\1CEStart. Серверные базы вернёт генератор выше, файловые — «Добавить…» → «Добавление в список существующей информационной базы».
Скопируйте ibases.v8i при закрытом окне запуска в %APPDATA%\1C\1CEStart нового ПК; если там уже есть свой список, перенесите нужные секции. Пути файловых баз должны существовать, кэш клиент создаст сам.
Да: общий файл плюс файл отдела, который групповая политика подключает нужной группе (скрипт с -CurrentUser на вход в систему). Внутри файла базы раскладывают по папкам через Folder.
Если баз десятки, серверов несколько, а списки нужно развести по отделам и навести порядок с версиями платформы, опишите задачу на площадке: исполнитель настроит общий список, групповую политику и генератор по расписанию. Разместить задачу можно бесплатно, оценку пришлют в течение рабочего дня; все направления — на странице услуг.
Станьте частью сообщества!
Войдите или зарегистрируйтесь, и вы сможете участвовать в обсуждениях.