Формулировка проблемы: дальнейшая доработка процесса экспорта и импорта конфигурации с учетом реализации централизованных фильтров реестров.
Связанные задачи:
Используется:
Конфигуратор -> Импорт/экспорт конфигурации
Решение:
Во-первых, необходимо доработать процесс экспорта реестров следующим образом:
При экспорте реестра должно экспортироваться все дерево его централизованных фильтров. Для каждого централизованного фильтра необходимо выгружать следующую информацию:
мультиязычное поле "Название";
поле "Код";
список условий фильтра:
компонент формы, на который налагается условие;
значение выпадающего списка с типом условия;
эталонное значение;
список прав на фильтр:
группа пользователей;
состояние флажка "Все"
состояние флажка "Просмотр списка"
состояние флажка "Просмотр данных"
состояние флажка "Редактирование"
состояние флажка "Изменение"
состояние флажка "Удаление"
При этом если в качестве группы указана служебная группа, то данная строка не экспортируется.
Значения указанных настроек и связи между ними должны сохраняться после экспорта конфигурации.
Во-вторых, необходимо доработать процесс экспорта групп следующим образом: при включении флажка реестра автоматически должны включиться флажки групп, указанных в таблице "Права на реестр" и в каждой таблице "Права на фильтр".
В-третьих, необходимо учитывать значение настройки "Удалять все дочерние объекты при замене родительского" и права на фильтры реестров для настройки "Удалять права при замене объектов", если реестр импортируется с заменой. То есть, если:
флаг "Удалять все дочерние объекты при замене родительского" включен:
флаг "Удалять права при замене объектов" включен:
Все фильтры заменяемого реестра и все права на сам заменяемый реестр будут удалены, добавятся права импортируемого реестра и его фильтры с правами.
флаг "Удалять права при замене объектов" выключен:
Все фильтры заменяемого реестра будут удалены, добавятся все фильтры импортируемого реестра.
Права на нам реестр не удаляются, к ним добавляются права импортируемого реестра. При этом если для одной и той же группы настроены различные права, то они суммируются.
флаг "Удалять все дочерние объекты при замене родительского" выключен:
флаг "Удалять права при замене объектов" включен:
Для фильтров заменяемого реестра, имеющих коды, совпадающие с кодами фильтров импортируемого реестра, будут заменены параметры, условия и права.
Для фильтров с кодами, которых нет среди фильтров импортируемого реестра, изменений произведено не будет.
Фильтры с кодами, которых не было у заменяемого реестра, будут импортированы с сохранением своих параметров, условий и прав.
флаг "Удалять права при замене объектов" выключен:
Для фильтров заменяемого реестра, имеющих коды, совпадающие с кодами фильтров импортируемого реестра, будут заменены параметры и условия. Права на эти фильтры не удаляются, к ним добавляются права соответствующего фильтра импортируемого реестра. При этом если для одной и той же группы настроены различные права, то они суммируются.
Для фильтров с кодами, которых нет среди фильтров импортируемого реестра, изменений произведено не будет.
Фильтры с кодами, которых не было у заменяемого реестра, будут импортированы с сохранением своих параметров, условий и прав.
Примечание:
При сравнении фильтров необходимо учитывать, что коды фильтров реестра уникальны только внутри своего реестра.