+2

Справочники 1. Секционные

Сергей Попов 12 years ago updated by Artem Popov 11 years ago 4

В настоящий момент справочник используется для ограничения пользователя. При этом пользователь вправе выбрать любое значение из справочника. Предлагаю реализовать возможность ограничить пользователя только некоторыми значениями (из указанной секции).

Пример: В организации ведётся справочник исполнителей. Этот справочник используется уже давно и часть записей уже не актуальна (увольнение, смерть исполнителя), но должна оставаться неизменной для архива. При вводе значения из справочника, пользователь должен быть ограничен только актуальными записями, а при просмотре - без ограничений - все записи.

Для этого в справочнике должно быть 3 поля: 1 - ID, 2 - ФИО исполнителя, 3 - категория (секция). При настройке связи поля со справочником должно указываться поле и значение категории. Пользователь может выбирать из записей с указанным значением категории.

Ещё пример: справочник пользователей с множеством полей под каждую категорию (руководство, допуск к грифованым документам, право подписи и т.д.). На время замещения руководителя, в данном справочнике в соответствующее поле вносится изменение и сразу его заместителя можно указывать как лицо утверждающее документ. После окончания срока замещения, поле очищается, и его нельзя указывать как утверждающее лицо, но для уже утверждённых указана истинная информация

 Сейчас это можно сделать, присоединив в качестве справочника вьюху над основной таблицей.

Теоретически,в ингео можно ввести возможность присоединять в качестве справочника результат SQL-запроса, чтобы не лазать в СУБД.

Предложенный вариант условно можно назвать решением и вот по чему:

Работа со справочниками в ИнГЕО:

1. Отобразить значение из справочника

2. Выбрать значение из справочника

3. Редактировать справочник

4. Экспорт/импорт справочника

Если использовать View, тогда функции 3 и 4 будут давать сбой.

Ещё возможны проблемы в будущем, при революционном скачке версий, который может потянуть за собой изменине структуры данных.

А сторонние разработчики как узнают - что справочник не таблица а вьюшка? Вдруг их продукт предполагает дополнять справочник?

Думаю что View не следует сбрасывать со счетов, но оптимальнее чтобы это реализовывалось из ИнГЕО и сопросождалось во всех новых версиях.

да. это так)
Кстати, в MSSQL на вьюху можно повесить триггер "Instead of insert" и в нём корректно произвести вставку. Но, конечно, если экпортнуть, а потом импортнуть такой справочник, то на целевой базе создастся уже таблица.