Менеджер конфигураций#
Менеджер конфигураций — механизм переноса данных и настроек системы между контурами (разработка, тестирование, продуктив). Перенос выполняется через формирование файла конфигурации на исходном контуре и его установку на целевом.
Механизм используется для передачи бизнес-объектов и JEXL-скриптов. Конфигурация формируется из задач, каждая из которых содержит состав объектов для переноса. Порядок применения изменений контролируется через порядковые номера задач и состава.
Примеры использования.
Перенос ролевой модели с тестового контура на продуктивный после согласования прав доступа.
Доставка новых классов и атрибутов после завершения разработки функционала.
Синхронизация настроек автонумерации и проектных настроек между контурами.
Проверка совместимости целевого контура до передачи полного набора данных через метаданные.
Преимущества механизма.
Сокращение трудозатрат. Однократная настройка на исходном контуре с последующим переносом исключает ручное повторение действий на нескольких стендах.
Исключение ошибок. Автоматизация переноса минимизирует риски, неизбежные при ручном вводе и копировании настроек.
Разделение ролей. Проектировщики работают на тестовом контуре, формируют конфигурации, после чего администраторы проверяют и переносят их на продуктив — без прямого доступа разработчиков к рабочей системе.
Основная логика работы.
Создание конфигурации и наполнение её задачами с объектами для переноса.
Финализация конфигурации и формирование файла.
Установка файла на целевом контуре — локально или через удалённое подключение.
Интерфейс конфигурации#
Доступ к интерфейсу. Путь: Настройка системы > Настройки и сервисы > Управление конфигурации > Менеджер конфигурации.
В разделе отображается список всех доступных конфигураций.
Типы конфигураций.
Исходящая конфигурация — создана и сформирована на текущем контуре для передачи на другой контур, ещё не установлена на целевой системе.
Входящая конфигурация — получена из внешнего источника и установлена на текущем контуре.
Цветовая индикация.
Красный значок — установка прошла с ошибками.
Синий значок — установка выполнена без ошибок.
В верхней части интерфейса расположена кнопка Дополнительно, содержащая следующие операции:
Сформировать — формирование файла конфигурации без блокировки редактирования.
Сформировать и установить — формирование файла и его удалённая установка на выбранный контур.
Установить — установка конфигурации из файла на текущий контур.
Финализировать — блокировка конфигурации для любых изменений, обратная операция недоступна.
Финализировать и выгрузить — финализация конфигурации с одновременным формированием файла для передачи.
Скачать метаданные — выгрузка облегчённого файла со структурой конфигурации для предварительной проверки.
Проверить метаданные — проверка совместимости текущего контура по файлу метаданных.
Проверить метаданные на удалённом контуре — отправка метаданных на выбранный удалённый контур для предварительной проверки.
Открыть отчёт о валидации — загрузка и просмотр сформированного отчёта валидации.
Карточка конфигурации#
Открывается при создании или редактировании конфигурации. Содержит вкладки для настройки состава, параметров и контроля переноса.

Задача#
Основное наполнение конфигурации. Позволяет создавать несколько задач для группировки состава.
Колонки таблицы задач:
Порядковый номер — определяет порядок установки задач внутри конфигурации.
Системное имя — наименование задачи, по умолчанию формируется как ФИО и логин создателя.
Дата создания — дата создания записи задачи.
Дата последнего изменения — дата последнего редактирования записи.
Описание — текстовый комментарий к задаче.
Создатель — ФИО и логин пользователя, создавшего задачу.
Закрыто — флаг, блокирующий возможность редактирования задачи. После закрытия задачи, изменения БО в системе не приведёт к обновлению конфигурации.
Состав задачи. В детализации задачи доступен Состав задачи. Здесь задаются конкретные объекты, скрипты или настройки, которые будут перенесены в рамках данной задачи и конфигурации. Для каждой записи указываются:
Порядковый номер — определяет порядок установки внутри задачи.
Системное имя — идентификатор объекта для поиска: системное имя,
gid,guidили мнемокод (зависит от типа).Флаг «Заблокирован» — если галочка установлена, объект можно изменять, данные в конфигурации обновляются при изменении исходного объекта; если галочка снята, данные зафиксированы на момент снятия флага, изменения в источнике игнорируются.
Тип — определяет, какой объект будет перенесён и какая логика выгрузки применяется.
Класс — класс объекта, заполняется автоматически после проверки, можно задать вручную.
Системное имя класса — системное имя класса объекта, заполняется автоматически.
Дополнительная информация — примечания или контекст для записи, заполняется автоматически после проверки.
Проверка состава. Операция Проверить ищет указанные объекты в текущей системе:
Если объект найден — автозаполнение класса, системного имени, дополнительной информации.
Если объект не найден — появляется окно с деталями ошибки.
Конфигурация#
Вкладка содержит основные параметры конфигурации, которые используются для её идентификации и описания назначения. Здесь отображаются служебные данные (создатель, серийный номер) и поле для текстового комментария, которое помогает различать конфигурации при работе со списком.
Параметры конфигурации:
Создатель — ФИО и логин пользователя, создавшего конфигурацию. Заполняется автоматически.
Уникальный серийный номер — идентификатор конфигурации. Заполняется автоматически.
Описание — текстовый комментарий к назначению конфигурации. Заполняется вручную.
Пользователи#
Список пользователей, которые могут редактировать данную конфигурацию. Если список пуст — редактировать конфигурацию может любой пользователь с соответствующими правами.
Зависимость от версии модулей#
Вкладка позволяет задать минимальные версии модулей, которые должны быть установлены на целевом контуре для успешной установки конфигурации.
Конфигурация может содержать объекты, которые используют функционал, появившийся в определённой версии модуля. Если на целевом контуре установлена более старая версия, эти объекты не смогут корректно работать. Зависимости позволяют заранее проверить совместимость и получить понятную ошибку до начала установки.
Журнал валидации#
Отображает логи проверок конфигурации, выполненных через операцию Открыть отчёт о валидации.
Типы составляющих конфигурации#
Тип определяет, какой объект будет перенесён и какое значение указывать в поле Системное имя.
Тип |
Системное имя / Класс |
Что переносится |
|---|---|---|
Роль |
Системное имя или |
Объект роли + коллекции (права, параметры адм. правила роли) |
Профиль |
Системное имя или |
Объект профиля + вложенные роли |
Печатная форма |
Системное имя или |
Объект печатной формы + коллекции (шаблоны, параметры) |
Отчёт |
Системное имя или |
Объект отчётной формы + коллекции + тип документа, создаваемого по отчёту ( |
Профиль печати |
Системное имя или |
Настройки профиля печати |
Закладка |
Системное имя или |
Объект закладки интерфейса |
Тип объекта |
Системное имя или |
Тип объекта + коллекции + настройка расширений типа объекта ( |
JEXL-скрипт |
Не используется / Не используется |
Текстовый файл со скриптом. Поля «Класс» и «Системное имя» игнорируются. Скрипт выполняется на целевом контуре при установке конфигурации. |
Функции JEXL |
Системное имя или |
Библиотека функций JEXL |
Библиотека JEXL |
Системное имя или |
Глобальная библиотека JEXL |
Все состояния класса |
Системное имя или |
Все состояния класса ( |
Состояние класса |
|
Состояние класса ( |
Объект класса по gid с коллекциями |
|
Объект + коллекции. Если найден — обновляется, если нет — создаётся |
Объект класса по guid с коллекциями |
|
Объект + коллекции. Если найден — обновляется, если нет — создаётся |
Объект класса по мнемокоду с коллекциями |
Мнемокод объекта / Класс объекта |
Объект + коллекции. Аналогично |
Все JSON-атрибуты класса |
Системное имя или |
Все |
JSON-атрибут класса |
Системное имя атрибута / Класс, содержащий атрибут |
Атрибут класса ( |
Проектные настройки по AVI из обозревателя проекта |
Имя AVI из обозревателя проектов / Не используется |
Переопределенные атрибуты выборки ( |
Пункт динамического меню (с потомками) |
Системное имя или |
Пункт меню с потомками + соответствующие им вызовы меню |
Вызов меню |
Системное имя или |
Действие, вызываемое из меню |
Маршрут документооборота |
Системное имя или |
Схема бизнес-процесса + коллекции |
Универсальный справочник |
Системное имя или |
Тип объекта ( |
Универсальная характеристика |
Системное имя или |
Универсальная характеристика и универсальный справочник (если есть). Универсальный справочник переносится по аналогии |
Все настройки автонумерации для класса (переопределённые) |
Системное имя или |
Все переопределения автонумерации ( |
Настройка автонумерации для класса (переопределённые) |
|
Настройка автонумерации + коллекции |
Объектная привилегия |
|
Выгружает объектную привилегию и соответствующий объект администрирования без коллекций |
Jexl-тест |
Системное имя или |
JEXL-тест |
Класс и его окружение |
Системное имя или |
Класс ( |
Настройки УФ |
Системное имя настройки или |
Настройки универсального фильтра |
Объекты класса все |
Не используется / Класс, объекты которого нужно перенести |
Все объекты указанного класса |
Удаление объекта класса |
|
Ищет и удаляет указанный объект на целевой базе |
Переопределение атрибутов класса |
Системное имя или |
Переопределенные атрибуты ( |
Схема XML данных (с потомками) |
Системное имя или |
Схема XML данных + коллекции |
Идентификаторы внешних систем по gid объекта |
|
Выгружает идентификатор внешней системы по |
Динамическое приложение (с пунктами меню) |
|
Динамическое приложение без коллекций + переопределенные JEXL-операции |
Переопределение атрибутов выборки |
Формат: |
Переопределенный атрибут выборки. Если на исходном контуре переопределение отсутствует, то на целевом контуре переопределение будет удалено. Для указания системного имени используется специальная выборка |
Переопределение операций выборки |
Формат: |
Переопределенная операция выборки. Если на исходном контуре переопределение отсутствует, то на целевом контуре переопределение будет удалено. Для указания системного имени используется специальная выборка |
Все объекты таблицы вариантов |
Системное имя или |
Объекты таблицы вариантов ( |
Таблица вариантов с объектами |
Системное имя или |
Таблица вариантов ( |
Тег модуля с пакетом изменений |
|
Тег, коммиты и измененные сущности вместе с пакетом изменений между версиями тегов |
Тег модуля |
|
Тег модуля, коммиты и измененные сущности |
Тег комплекта сборки с пакетом изменений |
|
Тег, коммиты и измененные сущности вместе с пакетом изменений между версиями тегов |
Тег комплекта сборки |
|
Тег комплекта сборки, коммиты и измененные сущности |
Гибкая настройка объектов, атрибутов и коллекций#
Система позволяет точечно управлять тем, какие данные участвуют в переносе. Это необходимо, когда часть данных управляется внешними системами (например, интеграциями с HR или ERP) и не должна перезаписываться при установке конфигурации.
Настройка выполняется на уровне атрибута класса и влияет на поведение в зависимости от контура:
Настройка |
Стенд влияния |
Описание |
|---|---|---|
Требуется наличие объекта по ссылке при переносе входящими релизами |
Целевой |
Снятие признака позволяет не прерывать установку ошибкой, если ссылочный объект отсутствует на целевой базе |
Обновляется со входящими релизами конфигурации |
Целевой |
Снятие признака отключает принятие изменений по атрибуту при установке входящих конфигураций |
Выгружается как объект коллекции в исходящих релизах |
Исходный |
Снятие признака с атрибута коллекции отключает перенос дочерних объектов вслед за родительским объектом |
Выгружается в исходящих релизах конфигурации |
Исходный |
Снятие признака отключает добавление значения данного атрибута в формируемый пакет переноса |
Примечание
Настройки применяются на уровне атрибута класса и позволяют гибко управлять тем, какие данные участвуют в переносе, а какие остаются неизменными.
Порядок работы с конфигурацией#
Подходы к наполнению конфигурации. Система поддерживает два способа формирования состава переносимых объектов:
Ручное наполнение. Объекты добавляются в конфигурацию явно: через операцию в карточке бизнес-объекта или непосредственно в составе задачи через интерфейс менеджера.
Отслеживание изменений. При включённой настройке система автоматически предлагает включить изменённые или созданные объекты в конфигурацию. Режим активируется только для классов с настройками, чтобы в релиз попадали изменения конфигурации системы, а не бизнес-данные.
Создание и наполнение. Создайте новую или откройте текущую конфигурацию. На вкладке Задача создайте задачу, задайте порядковый номер. В окне Состав задачи добавьте объекты для переноса: выберите тип, укажите идентификатор, нажмите Проверить для валидации. Сохраните изменения.
Дозаполнение конфигурации. Если после сохранения и закрытия задачи вы обнаружили, что в конфигурации не все данные, создайте в той же конфигурации новую задачу и заполните её состав недостающими объектами. Закрытие задачи выполняется через установку флага Закрыто в карточке задачи.
Финализация. Когда конфигурация полностью готова, нажмите кнопку Финализировать. Конфигурация блокируется для любых изменений, обратной операции нет.
Формирование файла. Нажмите Сформировать конфигурацию. Система скачает файл, содержащий все данные конфигурации. Этот файл можно передать на другой контур для установки.
Установка конфигурации#
В таблице конфигураций нажмите кнопку Дополнительно > Установить. Выберите файл конфигурации. Система применяет изменения согласно структуре файла.
Примечание
Поведение при ошибке. Если в одном из объектов возникает ошибка, система пропускает проблемный объект и фиксирует ошибку в логе, продолжает установку остальных объектов, не затронутых ошибкой.
После установки всегда проверяйте вкладку Лог установки на наличие предупреждений и ошибок.
Вкладка «Лог установки». Отображается только в установленной конфигурации. Содержит следующие элементы:
Порядковый номер — номер установки в рамках конфигурации.
Дата установки — временная метка выполнения.
Кол-во ошибок — индикатор проблем при установке.
Лог БО — детализация: какие объекты установлены, статус, сообщения.
Стек ошибки + JSON — детальная информация для отладки при возникновении ошибок.
Файлы конфигурации:
Резервная копия данных до установки.
Файл конфигурации, который был установлен.
Проверка метаданных#
Метаданные содержат только структуру конфигурации (классы, атрибуты, версии модулей), без самих данных объектов. Проверка метаданных выполняется за секунды и позволяет выявить несовместимость целевого контура до передачи тяжёлого файла конфигурации.
Процесс проверки.
В выбранной конфигурации: Дополнительно > Скачать метаданные.
На целевом контуре: Дополнительно > Проверить метаданные > загрузить скачанный файл.
Откройте отчёт: Дополнительно > Открыть отчёт о валидации > загрузить сформированный файл.
Структура отчёта валидации:
Ошибки в структуре класса — отсутствуют классы и атрибуты, которые есть в конфигурации, но отсутствуют на целевом контуре. Такие ошибки требуют обновления модулей или комплектов сборки на удалённом контуре.
Ошибки в данных — отсутствуют необходимые данные, конфигурация ссылается на объекты, которых нет в целевой системе. Такие ошибки требуют изменения состава конфигурации (добавления недостающих объектов) перед установкой.
Если в отчёте обнаружены отсутствующие связанные объекты их можно добавить через кнопку Добавить недостающие объекты. Недостающий объект автоматически добавится в текущую конфигурацию.
Удалённая установка#
В таблице конфигураций: Дополнительно > Сформировать и установить. Выберите целевой контур из списка. Система отправит файл конфигурации напрямую на выбранный контур. На целевом контуре появится запись в журнале «Установленные конфигурации» с логом выполнения.
Если конфигурация была установлена на удалённый контур с ошибками, можно отправить метаданные на проверку: кнопка Проверить метаданные на удалённом контуре отправляет только метаданные на выбранный контур. Результат проверки возвращается в журнал валидации текущего контура.
Добавление удалённых контуров. Путь: Настройка и сервисы > Управление конфигурации > Настройки удалённых контуров.
Примечание
В данном разделе выполняется только регистрация уже существующего удалённого контура в текущей системе — указываются параметры подключения и авторизации для обмена конфигурациями.
Поле |
Описание |
|---|---|
Код |
Уникальный идентификатор контура |
Наименование |
Произвольное понятное имя контура (например, |
URL |
Полный URL-адрес для доступа к удалённому контуру (например, |
База данных |
Наименование базы данных целевого контура |
Пользователь |
Логин учётной записи, имеющей права на установку конфигураций на целевом контуре |
Пароль |
Идентификатор (GUID) предварительно зашифрованного пароля. Не сам пароль, а ссылка на зашифрованные данные в системном хранилище |
Тип передачи |
REST / Git / Artifact Registry |
Шифрование пароля. Значение в поле Пароль должно быть предварительно зашифровано через встроенный сервис системы.
Перейдите:
Настройки системы > Настройки и сервисы > Дополнительно > Шифрование данных.В поле Исходные данные введите текстовый пароль.
Нажмите Выполнить шифрование.
Скопируйте полученный идентификатор (GUID) из поля Результат шифрования.
Вставьте этот идентификатор в поле Пароль при настройке удалённого контура.
Маршрутизация между контурами. Передача конфигураций между изолированными контурами может выполняться тремя способами, которые выбираются в поле Тип передачи:
REST — прямое подключение по HTTP/HTTPS. В поле URL указывается адрес целевого контура (например,
https://test-circuit.global-system.ru/). Используется, когда между контурами есть сетевой маршрут и они могут обмениваться данными напрямую.Git — передача через репозиторий системы контроля версий. В поле URL указывается адрес репозитория (например,
https://git.global-system.ru/configs.git), а не конечного контура. Исходный контур отправляет конфигурацию в репозиторий, после чего CI/CD-пайплайн автоматически выполняет валидацию и установку на целевом контуре, а результаты возвращает обратно. Используется, когда прямой сетевой доступ между контурами отсутствует.Artifact Registry — передача через корпоративный реестр артефактов (Nexus, Artifactory и аналоги). Логика работы аналогична типу Git: конфигурация публикуется как артефакт, пайплайн забирает её, выполняет валидацию и установку.
Примечание
Для типов Git и Artifact Registry требуется:
предварительная настройка доступа к стороннему сервису как с исходного, так и с целевого контура;
согласование параметров маршрутизации (значения «Наименование целевого контура» должны соответствовать кодам настроек на противоположной стороне);
создание технических пользователей с минимально необходимыми правами и зашифрованными учётными данными.
Детали настройки пайплайна и репозитория см. в отдельной инструкции Настройка обмена через репозиторий.
Системные настройки и отслеживание изменений#
В этом разделе настраиваются глобальные параметры механизма: ограничение контуров, с которых разрешён приём релизов, и автоматическое отслеживание изменений объектов для включения в конфигурацию.
Ограничение источников релизов. Путь: Настройка и сервисы > Настройки модулей системы > Общие настройки модулей > модуль btk > Релизы конфигурации.
Настройка |
Описание |
|---|---|
Системные имена контуров, с которых разрешён приём конфигураций |
Укажите коды контуров (например, |
Отслеживать изменения для добавления в релиз конфигурации |
Включает механизм автодобавления изменённых объектов в конфигурацию. После включения необходимо очистить кэш. |
Отслеживание изменений на уровне класса. Откройте журнал Классы, выберите нужный класс, установите флаг Отслеживать изменения для включения в релиз конфигурации, очистите кэш.
После сохранения изменений в классе с активным флагом открывается диалог Включение в релиз конфигурации. Можно добавить изменения в существующий черновик (отображаются только конфигурации, созданные текущим пользователем) или создать новый релиз.
Быстрое добавление объектов в конфигурацию#
Используется, когда изменены данные объекта и требуется сразу добавить их в конфигурацию без перехода в интерфейс Менеджера конфигураций — напрямую из карточки объекта.
Из карточки объекта. Откройте карточку любого бизнес-объекта, перейдите: Информация > Информация об объекте, нажмите Добавить в конфигурацию объект класса. Выберите способ идентификации: по gid, по мнемокоду, по guid.
Для специализированных типов. Для сложных объектов (Роль, Профиль, Печатная форма и др.) доступна дополнительная опция: Добавить для специализированных типов — добавляет объект с учётом связанных зависимостей (например, для Роли выгружаются также связанные права, ограничения, зависимости).
Настройка уникального ключа#
Уникальный ключ — это набор атрибутов, значения которых однозначно идентифицируют объект класса. Корректная настройка уникального ключа обязательна для переноса объектов: если объект относится к классу без настроенного уникального ключа, выгрузка и установка конфигурации будут заблокированы.
Способы настройки:
Предпочтительный способ: разработчики указывают уникальные атрибуты непосредственно в метаданных приложения. Это гарантирует согласованность настройки между исходным и целевым контурами.
Ручная настройка: при необходимости можно отметить атрибуты как уникальные на закладке «Уникальные атрибуты класса» в карточке класса. Настройка должна быть выполнена идентично на обеих базах.
Диагностика типовых ошибок#
При работе с менеджером конфигураций могут возникать ошибки, связанные с валидацией данных, ссылочной целостностью и настройкой уникальности. Разбор таких ошибок — существенная часть работы с инструментом. Ниже приведены наиболее частые сценарии, их причины и способы устранения в формате, принятом в технической документации системы.
Не настроена уникальность#
Когда возникает.
Ошибка появляется при попытке формирования конфигурации на исходном контуре или при её установке на целевом контуре. Процесс блокируется до устранения причины.
Сообщение.
Не настроена уникальность (класс <Класс>)
или
Ошибка импорта объекта. Передан не уникальный ключ для объекта класса <Класс>
Причина.
В конфигурацию включены объекты класса, для которого не определён уникальный ключ. Уникальный ключ — это набор атрибутов, значения которых однозначно идентифицируют объект в пределах класса. Без него система не может:
найти существующий объект на целевом контуре для обновления;
отличить новый объект от уже существующего;
гарантировать, что при установке не будут созданы дубликаты или перезаписаны чужие данные.
Во избежание некорректного переноса и потенциальной порчи данных такие конфигурации полностью блокируются на этапах выгрузки и установки.
Как исправить.
Способ |
Описание |
Когда использовать |
|---|---|---|
Настройка в метаданных приложения |
Определить уникальный ключ на уровне исходного кода приложения и передать задачу разработчикам. Разработчики указывают атрибуты, входящие в ключ, в конфигурации класса. Это гарантирует, что настройка будет одинаковой на всех контурах и не собьётся при обновлениях. |
Предпочтительный способ для долгосрочной поддержки и продуктивных сред |
Ручная настройка на закладке «Уникальные атрибуты класса» |
В карточке класса (журнал |
Для срочных исправлений, тестовых сценариев или когда нет возможности привлечь разработчиков |
Внимание
Если уникальный ключ настраивается вручную, убедитесь, что выбранные атрибуты действительно обеспечивают уникальность объектов в вашей предметной области. Слишком общие атрибуты (например, только «Наименование») могут привести к ошибке «Найдено несколько объектов с одинаковым уникальным ключом».
Не найден ссылочный объект#
Когда возникает.
Ошибка появляется при установке конфигурации на целевом контуре, когда система пытается создать или обновить объект, содержащий ссылку на другой объект.
Сообщение.
Не найден объект класса <Класс>, на который ссылается атрибут <Атрибут> класса <Родительский класс>
Причина.
Переносимый объект содержит ссылку на запись, которой нет на целевом контуре. По умолчанию все ссылочные атрибуты считаются обязательными: система не может создать объект, не зная, на что он ссылается, так как это нарушает целостность данных. Установка прерывается, чтобы избежать создания «битых» ссылок.
Как исправить.
Выберите один из вариантов в зависимости от бизнес-логики и того, должен ли ссылочный объект существовать на целевом контуре независимо от конфигурации.
Вариант |
Действия |
Результат |
|---|---|---|
Создать объект вручную |
На целевом контуре создать недостающий объект с тем же уникальным ключом, что и на исходном контуре. Убедитесь, что значения всех атрибутов, входящих в уникальный ключ, совпадают. |
Объект появится в базе, установка продолжится, ссылка будет корректно установлена |
Перенести отдельной конфигурацией |
Выгрузить недостающий объект в отдельный пакет конфигурации, установить его на целевой контур, затем повторно установить основную конфигурацию. |
Ссылочная целостность восстановится автоматически при второй установке |
Изменить порядок задач |
Включить недостающий объект в ту же конфигурацию, но задать ему порядковый номер меньше, чем у объекта, ссылающегося на него. Установка выполняется строго по возрастанию порядкового номера. |
Установка выполнится в правильном порядке: сначала создаётся ссылочный объект, затем — зависимый |
Снять требование ссылочной целостности |
На целевом контуре в настройках атрибута снять флаг |
Установка пройдёт без ошибки, но поле ссылки останется пустым. Используйте, если ссылка не критична или будет заполнена позже |
Примечание
Если объект является справочным и должен существовать на всех контурах (например, типы документов, статусы), предпочтительно создать его вручную или перенести отдельной конфигурацией. Если ссылка временная или опциональная — допустимо снять требование целостности.
Найдено несколько объектов с одинаковым уникальным ключом#
Когда возникает.
Ошибка появляется при установке конфигурации на целевом контуре, когда система пытается найти объект для обновления по уникальному ключу.
Сообщение.
Найдено несколько объектов с одинаковым уникальным ключом
или
Ошибка импорта объекта. Передан не уникальный ключ для объекта класса <Класс>
Причина.
На целевой базе существует несколько записей, у которых совпадают значения всех атрибутов, входящих в уникальный ключ. Это нарушает условие однозначной идентификации: система не может понять, какой из существующих объектов следует обновить, а какой — оставить без изменений. Установка прерывается, чтобы избежать некорректной перезаписи данных.
Как исправить.
Причина дублирования |
Решение |
|---|---|
Существуют объекты с одинаковыми комбинациями атрибутов |
Найти и удалить лишние записи на целевом контуре. Для этого выполните поиск по значениям атрибутов, входящих в уникальный ключ. Удалите дубликаты, оставив только актуальную запись. На программном уровне настройте ограничения (например, уникальные индексы в БД), исключающие создание таких дубликатов в будущем. |
Уникальный ключ настроен некорректно |
Сбросить пользовательское переопределение ключа в интерфейсе или обратиться к разработчикам для исправления метаданных. Проверьте, что в ключ включены достаточно специфичные атрибуты, которые в совокупности действительно обеспечивают уникальность. Например, для класса «Сотрудник» ключ может включать «Табельный номер», но не только «ФИО». |
Циклические ссылки между классами#
Когда возникает.
При попытке переноса двух взаимно ссылающихся классов: класс A содержит ссылку на класс B, а класс B содержит ссылку на класс A. Установка постоянно завершается ошибкой отсутствия ссылочного объекта, независимо от того, какая задача идёт первой.
Причина.
Невозможно первым создать объект, если он требует существования второго объекта, который, в свою очередь, требует первый. Стандартный линейный порядок установки (по возрастанию порядкового номера) не может разрешить такую циклическую зависимость.
Как исправить.
Выполните перенос в три этапа, временно отключив проверку ссылочной целостности:
Подготовка.
На закладкеАтрибутыодного из классов (например, классаA) снимите флагТребуется наличие объекта по ссылке при переносе входящими релизамидля атрибута, ведущего на классB.Перенос.
Перенесите оба класса в составе одной конфигурации. Ошибок ссылочной целостности не возникнет, так как проверка отключена. Поля ссылок временно останутся пустыми, но объекты будут созданы на целевом контуре.Финализация.
Верните флаг в исходное состояние (включите требование наличия объекта по ссылке). Повторно перенесите конфигурацию с теми же объектами. На этот раз система корректно заполнит ссылочные поля, так как оба объекта уже существуют на целевом контуре и могут быть найдены по уникальному ключу.
Особенности и ограничения#
Частичная установка: при ошибке в одном объекте остальные устанавливаются. Всегда проверяйте лог после установки.
После изменения настроек модуля или класса необходимо очистить кэш (
Сервис > Управление решением > Очистить все кэши).