Разработка сайта музея на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка сайта музея на 1С-Битрикс
Сложная
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка сайта музея на 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> страницы. Шаблон разметки настраивается в административном разделе — маркетолог может добавить поля без участия разработчика.