Как сделать самому

Как раздать программу службам события

Звуку, эфиру, сцене и клиенту нужна одна и та же программа — но каждому в своём виде. Это решается представлениями, а не пятью версиями файла в почте.

Что ломается при рассылке файлов

Привычный порядок такой: продюсер ведёт мастер-таблицу, а перед событием делает из неё выжимки — «для звука», «для клиента», «для площадки». Дальше происходит одно из двух. Либо выжимки устаревают в тот же вечер, потому что программу поменяли, а разослать заново забыли. Либо их не делают вовсе, отдают мастер-файл целиком, и клиент читает служебные пометки, написанные не для него.

Скрытые столбцы проблему не решают: их разворачивают в два клика, и данные всё равно уехали. Разграничение по видимости обязано происходить до отправки, а не в вёрстке у получателя.

Одна программа — разные представления

Представление службы — это сохранённый набор из двух вещей: какие колонки видны и какие строки отбираются. Одна и та же строка «10:30 · Интервью» выглядит по-разному и содержит разное:

Звук

10:30 · Интервью
Микрофоны: 2 петлички
Фонограмма: отбивка

Клиент

10:30 · Интервью
Спикер готов
Служебные колонки не передаются

Важно, что это не косметика. Колонка, которой нет в представлении, не приходит в браузер получателя — не приходит и в его выгрузки. Отборы строк в представлении заодно определяют границу доступа, поэтому их нельзя потерять «по дороге».

Кому что можно

Приглашение участника — постоянная ссылка, которую владелец отзывает в любой момент. По умолчанию она привязана к сохранённому представлению; отдать весь рандаун целиком можно, но это отдельное явное решение. Получатель ссылки входит или регистрируется и явно принимает приглашение — тихого подключения к событию не бывает.

Что делать с теми, кому нужен файл

Часть подрядчиков всё равно попросит документ: площадке нужна распечатка, клиенту — PDF, монтажу — таблица. Это не повод возвращаться к рассылке версий. Выгрузка делается из того же представления и в тех же границах прав: XLSX, PDF, печатная страница, презентационный текст и машинный JSON-снимок программы.

Выгрузка для участника или гостя никогда не отдаёт файл владельца целиком — она собирается заново, уже отфильтрованной. То есть человек не может получить через кнопку «скачать» то, чего ему не показали на экране. Права проверяются ещё раз после того, как файл собран, и только потом отдаются байты.

Одна честная тонкость: выгруженный XLSX представления — читаемый документ, а не шаблон для обратной загрузки. Если попробовать загрузить его назад как импорт, сервис откажет, и это правильное поведение, а не недоработка. Для обратного переноса есть отдельный официальный шаблон.

Если программа уже собрана в другом месте

Переносить руками не нужно, но и «магии» здесь нет. Сервис принимает два формата: официальный версионированный XLSX и строгий текстовый формат Rundown Text. Сначала он показывает разбор без записи — новые дни, залы, контуры, колонки и строки, ошибки и спорные совпадения, — потом типизированную разницу с текущей программой, и только потом применяет всё одной транзакцией: либо переносится целиком, либо не переносится ничего.

Перенос только добавляет и обновляет. Он не удаляет существующие строки и не переставляет их местами, а строка помнит свой исходный идентификатор — поэтому повторная загрузка обновит её, а не создаст дубликат.

Произвольный Excel, собранный по своим правилам, сервис не разбирает и не угадывает — он честно отказывает и показывает, где взять пустой официальный шаблон. Сопоставление идёт только по точным идентификаторам строк, точным датам и однозначным именам: похожие заголовки сервис не сближает. PDF на вход не принимается вообще. Это осознанное решение: молча неправильно понятая программа хуже, чем отказ на этапе загрузки.

Строгий формат выглядит так: четыре обязательные строки заголовка, дальше блоки, и в каждом блоке присутствуют все десять системных полей — пропустить хотя бы одно нельзя.

RUNDOWN_TEXT_VERSION: 1
СОБЫТИЕ: Конференция
ЧАСОВОЙ_ПОЯС: Europe/Moscow
КОЛОНКИ: Экран | Эфир | Звук | Свет

БЛОК
ID: opening-001
ДАТА: 2026-09-10
ЗАЛ: Главный зал
КОНТУР: Основной эфир
НАЧАЛО: 10:00
ДЛИТЕЛЬНОСТЬ: 00:05:00
ЯКОРЬ: ЖЁСТКИЙ
ТИП: Открытие
НАЗВАНИЕ: Открытие конференции
СПИКЕРЫ: Иван Иванов
ЭКРАН: Заставка, затем камера
ЭФИР: Общий план
ЗВУК: Джингл 01
СВЕТ: Сценарий «Открытие»
КОНЕЦ_БЛОКА

Обратите внимание на две вещи. Зал и контур — разные поля: в одном зале может идти несколько независимых контуров, поэтому контур указывается явно. И пустое значение отличается от неизвестного: пустая строка после двоеточия означает «значение есть и оно пустое», а слова НЕ ОПРЕДЕЛЕНО — «значения нет». Сервис не считает это одним и тем же.

Порядок действий

  1. Соберите одну программу. Все служебные колонки — в ней. Отдельных файлов «для звука» не заводите.
  2. Опишите представление службы. Видимые колонки и отбор строк. Проверьте его глазами до того, как выдадите ссылку.
  3. Выдайте доступ ссылкой. Приглашение участника — тем, кто работает с программой и готов завести аккаунт; гостевую ссылку — тем, кому аккаунт заводить незачем.
  4. Отдавайте выгрузки из того же представления. Не из мастер-файла: тогда границы прав соблюдаются сами.

Ограничения: аккаунт нужен и владельцу, и приглашённому участнику — без аккаунта работает только гостевая ссылка. Интерфейс русский. Как считается время в этих строках — на странице про тайминг.

Если вести сценарий некому

Раздать доступы — половина дела: во время события кто-то должен держать программу в актуальном состоянии. Тогда программу события ведём мы: продакшн OKVideo.pro проводит трансляции конференций под ключ — со своим режиссёром, своим таймингом и своей техникой.

Если делать самому — создайте аккаунт владельца и соберите сценарий сами. В интерфейсе нет ни оплаты, ни тарифов, ни формы заказа. Но без аккаунта инструмент не работает: программа события — не публичный документ.