РШ005
Решение2 мин чтения
Дополнительные поля: гибкость без поломок
Набор полей записи повторял наш экспорт из Aleph. Но время меняется: завтра понадобятся DOI, ссылка на электронную версию, провенанс. Как дать библиотекарю создавать поля самому и не дать случайно всё сломать.
Любая библиотечная система рано или поздно сталкивается с полем, которого в ней нет. Обычно это означает заявку разработчикам и ожидание. Мы захотели, чтобы библиотекарь мог добавить поле сам — через настройки, без программиста.
Что можно задать
- Ключ — внутреннее имя латиницей, например
doi. После создания не меняется. - Название и подсказку на трёх языках.
- Тип: текст, число, дата, ссылка, выбор из списка.
- Для каких типов документов показывать поле.
- Видимость: всем читателям или только библиотекарю.
- Поиск, фильтр, обязательность, тег RIS для выгрузки в Zotero.

Пять предохранителей
- Поле с данными не удаляетсяЕго можно только отправить в архив: оно пропадает из форм, но значения сохраняются. Удалить можно лишь пустое поле, с подтверждением вводом ключа.
- Тип меняется только безопасноЕсли хоть одно значение не подходит под новый тип, система покажет число таких записей и не даст сменить.
- Внутреннее остаётся внутриПоля «только для библиотекаря» — цена, поставщик — вырезаются на сервере. Их нет ни в карточке, ни в выгрузке, по ним не ищет публичный поиск.
- Сервер проверяет значенияСсылки только http и https, даты — настоящие даты, списки — только заданные варианты.
- Всё в журналеСоздание, архив и смена типа поля записываются: кто и когда.
Почему «вырезать на сервере», а не «скрыть в интерфейсе»Скрытое на странице всё равно приходит в браузер, и любопытный увидит его в инструментах разработчика. Вырезанное на сервере в браузер просто не попадает. Эту проверку мы сделали лично в коде, а не поверили отчёту.
Связь с импортом и качеством данных
При загрузке файла нераспознанные столбцы можно тут же сопоставить с дополнительными полями или создать новое поле. А незаполненные обязательные поля попадают в «Качество данных» отдельной группой. Гибкость не превращается в беспорядок.