Как правильно заполнять параметры OrderInList и OrderInTree при программном добавлении баз 1С?

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

Часто перед администраторами и разработчиками встает задача программного добавления информационных баз в список пользователя с помощью обработок. При прямой модификации файла ibases.v8i возникают вопросы: как правильно рассчитывать и прописывать параметры OrderInList и OrderInTree, чтобы не нарушить структуру списка? Разберем эту ситуацию по шагам и выясним, какие нюансы необходимо учитывать.

Назначение и логика работы параметров сортировки

Рассмотрим подробнее, за что отвечают параметры OrderInList и OrderInTree. Эти параметры определяют порядок расположения баз в окне запуска в виде списка и в виде дерева соответственно.

  1. Значения параметров: В эти поля записываются целые числа.
  2. Весовая схема: Платформа 1С использует систему сортировки с крупным шагом (обычно кратным 16384). Если пользователь вручную перетаскивает базу между двумя другими в окне запуска, платформа высчитывает промежуточное значение. Это делается для того, чтобы избежать полной перенумерации всего списка баз при каждом перемещении.
  3. Необязательность: Самое важное, что нужно знать — эти параметры не являются обязательными. Если вы формируете секцию базы программно и просто опустите строки OrderInList= и OrderInTree=, платформа 1С при первом запуске или интерактивном перемещении сама рассчитает и присвоит корректные значения.
  4. Влияние настроек пользователя: Если в стартере включена сортировка по наименованию (по алфавиту), платформа визуально игнорирует эти числовые значения, хотя они и продолжают храниться в файле.

Как показала практика, точное вычисление этих чисел при программном добавлении не имеет смысла, и их можно просто не указывать.

Синтаксис параметра Folder

Проанализируем частую ошибку, с которой сталкиваются при формировании файла списка. Зачастую проблема кроется не в сортировке, а в неправильном указании иерархии.

Параметр Folder отвечает за распределение баз по папкам в режиме отображения дерева. Путь формируется через прямой слеш. Чтобы явно указать, что база находится в корне (а не в какой-то случайной папке), необходимо прописать Folder=/. Для помещения базы во вложенную структуру используется синтаксис Folder=/ИмяПапки/Подпапка.

Риски при прямом редактировании ibases.v8i

Посмотрим на технические ограничения, о которых критически важно помнить при ручной или программной модификации пользовательского файла ibases.v8i:

  1. Блокировка стартером: Если у пользователя открыто окно выбора баз (1cestart.exe) или запущена любая информационная база, при их закрытии платформа выгрузит состояние из памяти и полностью перезапишет файл ibases.v8i. Все изменения, которые ваша обработка внесла "на лету", будут безвозвратно уничтожены.
  2. Кодировка файла: Файл обязан сохраняться строго в кодировке UTF-8. Использование ANSI, UTF-16 или повреждение структуры приведет к тому, что 1С не сможет прочитать файл и сбросит весь список баз до пустого (дефолтного) состояния.
  3. Уникальность ID: Каждая база должна иметь параметр ID с уникальным строковым GUID в формате {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}. Если сгенерировать одинаковые ID для разных баз или оставить поле пустым, платформа начнет путать пользовательский кэш, настройки окон и позиционирование.

Альтернативные и более надежные способы управления списком баз

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

1. Использование файла 1CEStart.cfg

Вместо редактирования профиля каждого пользователя, в конфигурационный файл стартера (находится в %ALLUSERSPROFILE%\1C\1CEStart\1CEStart.cfg для всех или в %APPDATA%\1C\1CEStart\1CEStart.cfg для конкретного пользователя) добавляется строка CommonInfoBases= с указанием пути к общему файлу со списком. Этот файл может лежать на сетевом диске (с правами только на чтение) или отдаваться по протоколу HTTP/HTTPS. Стартер сам подтянет актуальный список при запуске.

2. Защита баз параметром External

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

3. Генерация ярлыков (.v8i)

Если базу нужно передать разово, обработка может сформировать отдельный мини-файл с расширением .v8i, содержащий настройки только одной базы, и сохранить его на рабочий стол пользователя. При клике по такому файлу платформа сразу запустит нужную информационную базу, вообще не вмешиваясь в глобальный список ibases.v8i.

← На главную