Разработка сайта музея на 1С-Битрикс
Музейный сайт балансирует между двумя функциями: представительство коллекции в цифровом пространстве и коммерческая площадка по продаже билетов. На 1С-Битрикс обе задачи решаются штатными модулями — iblock для каталогизации, sale для билетов — с доработками под специфику учреждений культуры.
Каталог коллекций и экспозиций
Фондовая коллекция музея может насчитывать тысячи и десятки тысяч единиц хранения. Структура инфоблока Collections проектируется с учётом музейных стандартов описания:
- PROPERTY_INVENTORY_NUM — инвентарный номер
-
PROPERTY_AUTHOR — автор/мастер (привязка к инфоблоку
Persons) - PROPERTY_DATING — датировка (строка — «XV век», «1890-е», «ок. 1650 г.»)
- PROPERTY_TECHNIQUE — техника/материал (множественный справочник)
- PROPERTY_DIMENSIONS — размеры (строка — «120×80 см, холст»)
- PROPERTY_COLLECTION — принадлежность к коллекции (привязка)
-
PROPERTY_HALL — зал экспозиции (привязка к инфоблоку
Halls) - PROPERTY_HI_RES_PHOTO — фото высокого разрешения (файл)
- PROPERTY_AUDIO_GUIDE — аудиоописание (файл MP3)
Для фотографий настраивается модуль обработки изображений: при загрузке генерируются 4 варианта — превью 300px для списка, среднее 800px для карточки, крупное 2000px для зума и watermarked-версия для защиты от несанкционированного использования. Watermark накладывается через обработчик OnFileSave.
Поиск по коллекции реализуется через модуль search с фасетными фильтрами: по эпохе, технике, автору, залу. Для полнотекстового поиска подключается Elasticsearch через кастомный SearchProvider — штатный поиск Битрикс не справляется с объёмами музейных описаний.
Онлайн-продажа билетов
Модуль sale адаптируется под билетную специфику. Билет — это товар в каталоге со свойствами:
| Свойство товара | Назначение |
|---|---|
| Тип билета | Взрослый / Детский / Льготный / Семейный |
| Экспозиция | Постоянная / Временная выставка «N» |
| Сеанс | Дата + временной слот (10:00–12:00, 12:00–14:00...) |
| Лимит | Максимум посетителей на сеанс |
Лимит посетителей — критичная функция. При каждой продаже обработчик OnSaleOrderAdd уменьшает счётчик доступных мест для сеанса. Когда остаток достигает нуля, слот автоматически скрывается из виджета выбора. Счётчик хранится в отдельном HL-блоке SessionSlots, а не в свойстве товара — это исключает проблемы с конкурентным доступом при одновременных покупках. Для гарантии атомарности используется UPDATE ... SET count = count - 1 WHERE count > 0 на уровне SQL.
Льготные категории (пенсионеры, студенты, инвалиды, многодетные) настраиваются через правила корзины модуля sale. При выборе льготной категории покупатель загружает скан документа — поле на форме заказа через ORDER_PROP типа «Файл». Менеджер верифицирует документ перед подтверждением.
Виртуальные экскурсии и онлайн-коллекции
Это направление превращает сайт музея из витрины билетной кассы в самостоятельную культурную платформу. Разберём техническую реализацию.
360° панорамы залов. Съёмка выполняется сферической камерой (Insta360, Ricoh Theta). Результат — эквипрямоугольные проекции в формате JPEG или TIFF разрешением 8K–12K. На сайте панорамы отображаются через JavaScript-библиотеку Pannellum (open source, без лицензионных отчислений) или Marzipano.
Панорамы хранятся в инфоблоке VirtualTours. Каждый элемент — один зал или фрагмент экспозиции:
- PROPERTY_PANO_IMAGE — файл панорамы
- PROPERTY_HOTSPOTS — JSON с координатами точек интереса (yaw, pitch, type, target)
- PROPERTY_LINKED_PANO — связанные панорамы (переходы между залами)
- PROPERTY_AUDIO_TRACK — фоновое аудиосопровождение
Hotspots бывают трёх типов:
-
info — при клике открывается карточка экспоната (подтягивается из инфоблока
Collections) - scene — переход в другой зал (другая панорама)
- audio — запуск аудиогида для конкретного экспоната
Редактирование hotspots реализуется через кастомный административный интерфейс: менеджер открывает панораму в админке, кликает на точку и заполняет свойства. Координаты yaw/pitch вычисляются из позиции клика. Никакого ручного ввода градусов.
Аудиогиды. MP3-файлы привязаны к экспонатам. При нажатии на hotspot или на карточку экспоната запускается HTML5 Audio Player с визуализацией прогресса. Аудиогиды загружаются через административный интерфейс с автоматической конвертацией в формат AAC для экономии трафика (через FFmpeg на сервере, вызов из агента).
Онлайн-коллекция с зумом. Для детального рассмотра экспонатов подключается OpenSeadragon — просмотрщик изображений с технологией Deep Zoom. Исходное фото высокого разрешения (50–100 Мп для живописи) нарезается на тайлы утилитой vips dzsave. Пользователь масштабирует изображение плавно, загружаются только видимые тайлы — страница не зависает даже на мобильных устройствах.
Тайлы хранятся на отдельном домене cdn.museum-site.ru или в S3-совместимом хранилище. Модуль CDN Битрикс настраивается на раздачу статики с этого домена.
Афиша мероприятий
Инфоблок Events содержит лекции, мастер-классы, концерты, ночи музеев. Свойства:
- Дата и время начала/окончания (два свойства типа «Дата/время»)
- Возрастное ограничение (список: 0+, 6+, 12+, 16+, 18+)
- Стоимость (число, 0 = бесплатно)
- Привязка к выставке (если мероприятие в рамках выставки)
- Регистрация (да/нет + лимит участников)
Вывод на главной — компонент bitrix:news.list с фильтром >=DATE_ACTIVE_FROM по текущей дате и сортировкой по дате. Прошедшие мероприятия автоматически уходят в архив, но остаются доступны по прямой ссылке — для SEO и для истории.
Для афиши генерируется iCal-файл (формат .ics), который посетитель может добавить в Google Calendar или Apple Calendar одним кликом.
Доступность (WCAG 2.1)
Музеи как государственные учреждения обязаны обеспечивать доступность сайта для людей с ограниченными возможностями. Требования WCAG 2.1 уровня AA:
- Контрастность текста — соотношение не менее 4.5:1 (проверяется axe-core при сборке)
- Навигация с клавиатуры — все интерактивные элементы доступны через Tab, фокус визуально выделен
-
alt-тексты — для каждого экспоната обязательное поле в инфоблоке, без него элемент не проходит валидацию при сохранении (обработчик
OnBeforeIBlockElementUpdate) -
Режим повышенной контрастности — переключатель в шапке, класс
high-contrastна<body>, альтернативная цветовая схема через CSS-переменные -
Масштабирование текста — вёрстка в
rem, базовыйfont-sizeменяется переключателем -
Субтитры — для видеоматериалов обязательный трек
<track kind="captions">
Schema.org и SEO
Для музея применяется разметка типа Museum с вложенными объектами:
-
Museum— основная карточка с адресом, часами работы, контактами -
ExhibitionEvent— для временных выставок -
Event— для мероприятий афиши -
CreativeWork— для отдельных экспонатов в онлайн-коллекции -
Offer— для билетов с ценой и доступностью
Разметка генерируется автоматически через JsonLd-компонент, который собирает данные из инфоблоков и формирует JSON-LD-блок в <head> страницы. Шаблон разметки настраивается в административном разделе — маркетолог может добавить поля без участия разработчика.







