Vibe ChessVibe Chess

Формат TRF: как устроен файл отчёта о шахматном турнире

TRF - формат обмена турнирными данными ФИДЕ, он же формат Краузе. В нём организатор отдаёт турнир на обсчёт рейтинга, а движки жеребьёвки читают из него историю партий. Формат текстовый, но непривычный: значение поля определяется не разделителем, а номером колонки. Разберём файл по строкам - это полезно и тем, кто сдаёт отчёт вручную, и тем, кто пишет свою программу. Зачем он нужен на практике - обсчёт рейтинга ФИДЕ и обсчёт ФШР.

Что такое TRF и где он применяется

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

  • Отчёт в федерацию. Организатор выгружает завершённый турнир и отправляет файл на обсчёт рейтинга.
  • Обмен с движком жеребьёвки. Программа отдаёт движку текущее состояние турнира в TRF и получает пары следующего тура. Именно так работает bbpPairings.

Отсюда две разновидности файла. Для жеребьёвки достаточно минимума - номера игроков, очки и история туров. Для отчёта нужна заполненная шапка и полные данные каждого участника: без ID ФИДЕ, пола и даты рождения отчёт не примут.

Актуальная версия - TRF-2026, при этом сохраняется совместимость со старым вариантом TRF(bx).

Шапка турнира: строки 012-132

Файл начинается со строк описания турнира. Каждая начинается с трёхзначного кода, дальше идёт значение.

012 Vibe Chess Cup Perm — название турнира

022 Perm — город

032 RUS — федерация

042 2026/03/14 — дата начала

052 2026/03/14 — дата окончания

062 24 — число участников

072 18 — из них с рейтингом

082 0 — число команд

092 Individual: Swiss-System — тип турнира

102 Ivanov Petr — главный судья

122 10'+5" — контроль времени

XXR 5 — число туров

XXC white1 — цвет первого стола в первом туре

Строки XXR и XXC - служебные, они нужны движку жеребьёвки. Без XXC движок не знает, каким цветом играет первый номер в первом туре, и отказывается считать пары.

Контроль времени записывается в принятом виде: 10'+5" означает 10 минут на партию и 5 секунд добавки на ход.

Строка участника 001: позиционная раскладка

Главная часть файла - по одной строке 001 на каждого участника. Здесь важно понимать: поля определяются позициями символов, а не пробелами. Лишний пробел сдвигает колонку, и файл читается неправильно.

ПозицииЧто там
1-3код строки 001
5-8стартовый номер участника
10пол: m или w
11-13звание (GM, IM, FM и т.д.)
15-47фамилия и имя латиницей
49-52рейтинг
54-56федерация (три буквы)
58-68ID ФИДЕ
70-79дата рождения в формате ГГГГ/ММ/ДД
81-84набранные очки
86-89итоговое место
от 92история туров, блоками по 10 символов

Имена пишутся латиницей: формат считает символы, а кириллица в кодировке UTF-8 занимает по два байта на букву и разъезжает колонки у тех, кто читает файл побайтово. Идентичность игрока в отчёте несут ID ФИДЕ и код федерации, а не написание фамилии - поэтому транслитерация не проблема.

История туров и коды результатов

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

0012 w 1 — играл с 12-м номером белыми и выиграл

0007 b = — играл с 7-м номером чёрными вничью

0003 w 0 — играл с 3-м номером белыми и проиграл

0000 - U — пропуск тура с начислением очка (BYE)

0000 - + — победа за неявку соперника

0000 - - — поражение за собственную неявку

Коды результатов:

  • 1 - победа, 0 - поражение, = - ничья;
  • U - пропуск тура, назначенный жеребьёвкой, с полным очком;
  • + и - - победа и поражение за неявку: такие партии учитываются в таблице, но не идут в обсчёт рейтинга.

Важная деталь: результат записывается с точки зрения самого игрока, а не белых. Если вы пишете свою программу, это первое место, где обычно возникает ошибка - партия отражается в двух строках, и у соперников коды должны быть зеркальными.

Вторая частая ошибка - ссылка на снятого участника. Если игрока убрали из турнира, а история партий на него ссылается, движок споткнётся. Корректный выход - записать такую партию как игру без соперника: 0000 и прочерк вместо цвета.

Расширения и нестандартные начисления

Иногда турнир начисляет очки не по классической схеме: например, 3 за победу и 1 за ничью. Для таких случаев в формате есть расширения - коды вида BBW, BBD, BBL, задающие свои значения за победу, ничью и поражение, а также коды для пропусков и неявок.

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

Как получить TRF своего турнира

Вручную такой файл собирают только в исключительных случаях: одна ошибка в колонке - и отчёт разъезжается. Обычно его выгружает турнирная программа.

В приложении Vibe Chess завершённый турнир выгружается в TRF одним нажатием: шапка собирается из параметров события, данные игроков - из их профилей, история туров - из сыгранных партий. Чтобы отчёт получился полным, участники заполняют в профиле раздел стандартов ФИДЕ и ФШР: ID ФИДЕ, код ФШР, звание, пол, дату рождения и федерацию.

Тот же формат используется и внутри приложения для жеребьёвки: перед каждым туром состояние турнира отдаётся движку bbpPairings, который возвращает пары. То есть отчёт не «собирается в конце» - он живёт с турниром всё время.

Чек-лист перед сдачей отчёта

  • число туров в XXR совпадает с фактически сыгранным;
  • у всех участников заполнены ID ФИДЕ или код федерации, если турнир рейтинговый;
  • имена латиницей, длина не выходит за отведённые позиции;
  • сумма очков в строке совпадает с историей туров;
  • нет ссылок на игроков, которых нет в файле;
  • результаты зеркальны у обоих соперников;
  • контроль времени записан в принятом формате;
  • указан главный судья.

Что ещё входит в пакет документов - комплект документов организатора.

Турнир, отчёт и рейтинг - под ключ

Проведём турнир, подготовим документы и выгрузим отчёт для федерации. Напишите Алексею Сухорукову в Telegram: @mr_suhorukov. Или ведите турнир сами: в приложении Vibe Chess выгрузка TRF бесплатна.

Частые вопросы о TRF

Что такое формат TRF?

Формат обмена турнирными данными ФИДЕ, он же формат Краузе. Текстовый файл, где в шапке записаны параметры турнира, а дальше по строке на каждого участника с его данными и историей всех партий. Используется для отчёта на обсчёт рейтинга и для обмена с движками жеребьёвки.

Почему в TRF имена латиницей?

Формат строго позиционный: значение поля определяется номером символа. Кириллица в UTF-8 занимает два байта на букву и сдвигает колонки у программ, которые считают байты. Идентичность игрока несут ID ФИДЕ и код федерации, поэтому транслитерация допустима.

Как в TRF записывается пропуск тура?

Как блок 0000 с прочерком вместо цвета и кодом U - пропуск, назначенный жеребьёвкой, с начислением полного очка. Неявки записываются кодами + (победа за неявку соперника) и - (поражение за собственную неявку); эти партии в обсчёт рейтинга не идут.

Чем TRF для жеребьёвки отличается от TRF-отчёта?

Для жеребьёвки достаточно минимума: номера участников, очки и история туров - движку больше ничего не нужно. В отчёте для федерации дополнительно заполняются шапка турнира и полные данные игроков: пол, звание, рейтинг, федерация, ID ФИДЕ, дата рождения и итоговое место.

Можно ли составить TRF вручную?

Технически да, но на практике это источник ошибок: каждое поле привязано к позиции символа, и один лишний пробел ломает разбор. Файл выгружают турнирные программы - в приложении Vibe Chess это делается одним нажатием после завершения турнира.

Какая версия формата актуальна?

TRF-2026, с сохранением совместимости с предыдущим вариантом TRF(bx). Движок bbpPairings версии 6.0.0 работает с обеими.

Приложение для турниров

Как провести турнир, если вы не судья

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

  • Швейцарская система
    универсальный вариант: подходит и для десяти человек, и для полусотни
  • Круговая система
    для маленькой группы, где хочется сыграть со всеми
  • Свободная встреча
    для тех, кому турнирная сетка не нужна вовсе

Не только бот: приложение, правила ФИДЕ и отчёт TRF

  • Приложение. Кроме бота есть приложение - в Telegram и просто по ссылке vibechess.ru/app: афиша событий города, состав турнира, живая таблица, ход тура, профиль и история партий - всё, что неудобно читать сообщениями.
  • Жеребьёвка по правилам ФИДЕ. Пары считает bbpPairings - открытый движок, реализующий систему Dutch: группы по очкам, переносы при нечётном составе, чередование цветов, без повторных встреч и без двух BYE подряд.
  • Отчёт в формате TRF. Завершённый турнир выгружается одним файлом в формате обмена данными ФИДЕ - его принимают судейские программы и федерации. В профиле для этого есть ID ФИДЕ, код ФШР, звание, пол и дата рождения.
  • Бесплатно. Всё перечисленное - без подписок, платных тарифов и лимитов на число турниров и участников.

Подробный обзор

Не хватает функции? Напишите разработчикам

Бот постоянно дорабатывается под реальные турниры. Если вам нужна возможность, которой пока нет, - командой /support прямо в боте напишите разработчикам. Многие функции появились именно по просьбам организаторов, и полезные идеи внедряются быстро.

Что почитать дальше

Движок, который читает TRF - bbpPairings. Обсчёт рейтинга - ФИДЕ и ФШР. Требования - регламент ФИДЕ. Документы - комплект организатора.