Инструменты

GEDCOM: как перенести родословную в программу

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

20.09.202619 мин чтенияАвтор: Андрей Кириенко
Обложка статьи «GEDCOM: как перенести родословную в программу»

GEDCOM — текстовый формат обмена генеалогическими данными: одна программа выгружает в него людей, семьи, даты, места и связи между ними, другая читает. Переносятся структура дерева и события, теряются медиафайлы, оформление и нестандартные поля. Рабочие версии формата — 5.5.1 и 7.0. Русские имена ломает неверно объявленная кодировка. Файл открывается обычным текстовым редактором, поэтому его можно проверить до импорта.

Что такое GEDCOM и почему формат до сих пор стандарт

Название расшифровывается как GEnealogical Data COMmunication — «передача генеалогических данных». Формат создан отделом семейной истории Церкви Иисуса Христа Святых последних дней, чьё генеалогическое направление сегодня работает под именем FamilySearch, и распространяется с середины 1980-х годов. Задача была сугубо прикладной: свести росписи, составленные в разных местах разными людьми и разными средствами, в единый массив, пригодный для машинной обработки.

Технически это простой текстовый файл, обычно с расширением .ged. Внутри — строки одинакового устройства: номер уровня, необязательный указатель, тег из нескольких латинских букв, значение. Ни разметки, ни сжатия, ни двоичных блоков. Файл, выгруженный в 1997 году, сегодня открывается блокнотом и читается человеком без всякой специальной программы — свойством этим не может похвастаться почти ни один проприетарный формат тех же лет.

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

Одно свойство формата нужно усвоить сразу, иначе потери при переносе будут выглядеть необъяснимыми. Ни одна программа не хранит ваше дерево в GEDCOM. Внутри у настольной программы своя база, у онлайнового сервиса — таблицы на сервере, а GEDCOM возникает только в момент выгрузки. Роль у него примерно та же, что у CSV для таблиц: общий знаменатель, на который переводят перед передачей и с которого переводят после приёма. Все потери растут отсюда — вопрос всегда в том, что уцелело при двойном переводе.

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

Как устроен файл внутри: уровни, теги и указатели

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

0 HEAD
1 SOUR DrevoApp
2 VERS 4.1
1 GEDC
2 VERS 5.5.1
2 FORM LINEAGE-LINKED
1 CHAR UTF-8
0 @I1@ INDI
1 NAME Иван Петрович /Кузнецов/
2 GIVN Иван Петрович
2 SURN Кузнецов
1 SEX M
1 BIRT
2 DATE 12 MAY 1861
2 PLAC Кузнецово, Ярославский уезд, Ярославская губерния
1 FAMC @F2@
1 FAMS @F1@
0 @F1@ FAM
1 HUSB @I1@
1 WIFE @I2@
1 CHIL @I3@
1 MARR
2 DATE 9 FEB 1882
0 TRLR

HEAD — шапка файла: кто выгрузил, в какой версии формата, в какой кодировке. INDI — запись о человеке, FAM — о семье, TRLR — служебная последняя строка, отмечающая конец файла. Записи об источниках идут под тегом SOUR, о хранилищах — REPO, о медиафайлах — OBJE, о заметках — NOTE.

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

Связи устроены не напрямую «отец — сын», а через семью. Человек указывает FAMC — семью, где он ребёнок, и FAMS — семью, где он супруг; запись FAM перечисляет мужа, жену и детей. Эта развилка объясняет самый обидный сбой импорта: карточки на месте, все видны в списке, а родительская связь исчезла, потому что не прочиталась запись FAM.

Имя записывается целиком в строке NAME, фамилия выделяется косыми чертами, а теги GIVN и SURN дублируют разбор в явном виде — и программы по-разному решают, какой записи верить.

Дата в теге DATE пишется трёхбуквенными английскими сокращениями месяцев: JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC. Место в теге PLAC — через запятую от меньшего к большему, от селения к губернии. Историю переподчинений формат не знает: он хранит ровно ту строку, которую вы записали.

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

Версии 5.5.1 и 7.0: что между ними ломается

Хронология короткая. Версия 5.5 опубликована в 1996 году. Версия 5.5.1 много лет оставалась черновиком 1999 года и при этом стала фактическим отраслевым стандартом; официальный статус она получила только в 2019 году, когда со спецификации сняли пометку «черновик». Версия 7.0 вышла в 2021 году, её развивает FamilySearch вместе с сообществом, и выходят уточняющие выпуски ветки 7.0.x. Редакция на основе XML начала 2000-х распространения не получила.

Различия, которые реально видны при переносе, сводятся к пяти пунктам.

  1. Кодировка. Версия 5.5.1 допускает несколько вариантов объявления, включая устаревшие; версия 7.0 требует UTF-8 и только его. Для кириллицы это однозначное улучшение.
  2. Длинные тексты. В 5.5.1 длина значения строки ограничена, поэтому пространная заметка режется тегами CONC (продолжение без пробела) и CONT (с новой строки). На этой сборке-разборке появляются склеенные слова и потерянные абзацы. В 7.0 тег CONC убран вместе с целым классом ошибок.
  3. Расширения. Вольные теги с подчёркиванием — _UID и десятки других изобретений отдельных программ — в 7.0 заменены объявленными расширениями с идентификацией через URI в шапке. Читающая сторона хотя бы понимает, что именно ей прислали.
  4. Медиа. В 7.0 появилась упаковка GEDZIP: zip-контейнер с расширением .gdz, внутри которого лежат и сам файл выгрузки, и приложенные изображения. Это первое системное решение проблемы «фотографии не переносятся».
  5. Внутренние структуры. Переработаны записи об ассоциациях, источниках и внешних идентификаторах. Для пользователя это значит, что старая программа, встретив файл 7.0, может отказаться его читать вовсе.

Отсюда рабочее правило. Версия выбирается не по принципу «новее значит лучше», а по тому, что объявляет принимающая сторона. Написано «GEDCOM 5.5.1» — выгружайте 5.5.1, даже если ваша программа умеет 7.0. Обе стороны заявляют 7.0 и в дереве много фотографий — берите 7.0 с упаковкой GEDZIP. Файл кладётся в архив на будущее — сохраните обе выгрузки.

Кодировки и русские имена: откуда берутся крякозябры

Кодировка объявляется в шапке, в строке 1 CHAR. Версия 5.5 знала ANSEL, ASCII и UNICODE; версия 5.5.1 добавила UTF-8 — на практике именно с ним кириллица ведёт себя предсказуемее всего.

ANSEL — восьмибитная кодировка для библиотечных каталогов, рассчитанная на латиницу с диакритикой. Русских букв в привычном виде там нет, и принимающая программа читает байты как однобайтную латиницу. Результат на экране — «Êóçíåöîâ» вместо «Кузнецов».

Классическая поломка выглядит так: программа физически пишет текст в Windows-1251, а в заголовке объявляет ANSEL или ASCII. Файл при этом не повреждён — неверна только подпись на нём. Принимающая сторона верит подписи, и имена превращаются в мусор.

Диагностика занимает три шага.

  1. Откройте файл текстовым редактором, который умеет показывать и менять кодировку.
  2. Найдите строку 1 CHAR в первых двадцати строках и запомните значение.
  3. Посмотрите на любое русское имя ниже. Имена читаются при открытии в UTF-8, а в CHAR стоит ANSEL — подпись врёт. Не читаются ни в UTF-8, ни в Windows-1251 — файл испорчен предыдущей конвертацией, и лечить надо исходную базу.

Лечение по порядку предпочтительности. Сначала попробуйте выгрузить заново, явно выбрав UTF-8 в настройках экспорта: у большинства программ такой переключатель есть. Если его нет, пересохраните файл редактором в UTF-8 и поправьте строку CHAR, чтобы объявление совпало с содержимым. Порядок важен: сначала сохранить, потом исправить подпись, иначе файл станет лгать по-новому.

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

Две мелочи сверх этого. Метка порядка байтов в начале UTF-8-файла: одни программы её ставят, другие на ней спотыкаются и не узнают тег HEAD. И кириллица в путях к приложенным файлам — между операционными системами такие пути ломаются чаще латинских.

Что переносится всегда, а что теряется почти всегда

Опыт переносов укладывается в три группы, и знание границ между ними избавляет от главного разочарования — обнаружить пропажу через месяц работы.

Переносится практически всегда:

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

Переносится частично и требует проверки:

  • источники и ссылки на них — структура записи SOUR понимается программами по-разному;
  • архивные хранилища и шифры;
  • нестандартные события: переезд, служба, образование, род занятий;
  • длинные заметки в файлах версии 5.5.1, порезанные на CONC и CONT;
  • альтернативные написания имени и сведения о сословии, если программа держала их в собственных полях.

Теряется почти всегда:

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

Причина у всего списка одна. GEDCOM — общий знаменатель, а программы конкурируют между собой ровно тем, чего в общем знаменателе нет. Чем богаче возможности инструмента, тем больше он теряет при выгрузке.

Медиа заслуживают отдельного абзаца: это самая частая претензия. В файле версии 5.5.1 нет самих изображений — есть только путь к ним в теге FILE, а абсолютный путь на другом компьютере превращается в ссылку в никуда. Выходов два: выгружать в GEDZIP, если обе стороны поддерживают версию 7.0, либо переносить рядом с файлом всю папку с изображениями и следить за относительностью путей. Хранение семейных сканов разобрано в материале об организации семейного архива, требования к самим файлам — в инструкции по оцифровке фотоархива.

Отчество, девичья фамилия и места: где формат жмёт по-русски

Имя в GEDCOM раскладывается на части тегами NPFX (приставка перед именем), GIVN (личное имя), NICK (прозвище), SPFX (фамильная приставка), SURN (фамилия) и NSFX (приставка после имени). Отдельного поля для отчества нет: формат вырос из англоязычной традиции, где отчества как обязательного элемента не существует.

Программы выходят из положения тремя способами. Одни пишут отчество прямо в GIVN вместе с личным именем — «Иван Петрович»; такая запись переносится без потерь. Другие заводят собственный тег с подчёркиванием, и при импорте в чужую программу отчество исчезает. Третьи кладут его в NSFX, после чего принимающая сторона показывает Ивана Кузнецова с суффиксом, будто это «младший».

Рабочее правило простое: отчество должно попасть внутрь строки NAME и в GIVN, а не в экзотический тег. Проверяется это одним поиском по выгруженному файлу — найдите любое знакомое отчество и посмотрите, в какой строке оно оказалось.

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

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

Места — третья болевая точка. Формат хранит строку, а не привязку к справочнику, и не различает историческое название и современное: село Кузнецово Ярославского уезда и оно же в нынешнем районе — две разные строки без всякой связи. Дисциплина здесь редакторская: в поле пишется название на дату события, как в документе, а современный адрес и переподчинения выносятся в заметку.

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

Даты и календари в GEDCOM

Дата в формате пишется как день, трёхбуквенное английское сокращение месяца и год: 12 MAY 1861. Неполные даты допустимы — можно указать только год или только месяц и год.

Неопределённость описывается служебными словами перед значением: ABT — приблизительно, EST — оценочно, CAL — вычислено, BEF — раньше, AFT — позже, BET ... AND ... — в промежутке, FROM ... TO ... — период, INT — интерпретация с пояснением. Пометки переносятся хорошо, и пользоваться ими нужно: круглый год, поставленный наугад, через поколение выглядит точной датой и превращается в семейную легенду.

Календарь задаётся отдельно. В версии 5.5.1 юлианская дата помечается служебной вставкой @#DJULIAN@ перед значением, предусмотрены также григорианский, еврейский и французский республиканский календари. В версии 7.0 синтаксис записи календаря изменился, но набор поддерживаемых календарей сохранён.

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

Редакционное решение, которое переживает любую программу, выглядит так. В поле даты заносится дата документа в том виде, в каком она там стоит. Пересчёт на новый стиль указывается в заметке или в скобках в текстовом описании события — например, «род. 12 (24) мая 1861». Разница между стилями не постоянна: для XVIII века она составляла 11 суток, для XIX — 12, для XX — 13, и пересчёт «минус тринадцать на все века» даёт ошибку. Механика пересчёта и календарный переход 1918 года подробно разобраны в отдельном материале о старом и новом стиле дат.

Классы инструментов и что спрашивать до выбора

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

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

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

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

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

Четыре вопроса, которые задают инструменту до того, как начали в нём работать:

  1. Есть ли выгрузка в GEDCOM и в какой версии — 5.5.1, 7.0 или обеих?
  2. Входят ли в выгрузку источники, заметки и нестандартные события или только скелет дерева?
  3. Выгружаются ли загруженные фотографии и сканы, и если да, то в каком виде?
  4. Требуется ли для выгрузки платная подписка и что происходит с данными после её окончания?

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

Чек-лист переноса и проверки после импорта

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

До выгрузки.

  1. Сделайте резервную копию исходной базы средствами самой программы, а не копированием файлов вслепую.
  2. Приберитесь: слейте явные дубликаты, проставьте пол там, где он не указан, уберите тестовые карточки.
  3. Узнайте, какую версию формата читает принимающая сторона.
  4. Запишите контрольные числа: сколько в базе персон и сколько семей. Эти два числа — главный инструмент проверки.

Выгрузка и осмотр файла.

  1. Выберите версию осознанно, кодировку — UTF-8.
  2. Включите в настройках экспорта всё, что предлагается: источники, заметки, нестандартные события, медиа.
  3. Откройте полученный файл текстовым редактором и посмотрите шапку: строки 2 VERS и 1 CHAR должны соответствовать вашему выбору.
  4. Убедитесь, что кириллица читается, а последняя строка файла — TRLR. Отсутствие TRLR означает, что выгрузка оборвалась и файл неполон.
  5. Посчитайте строки, оканчивающиеся на INDI, и сверьте с контрольным числом персон.

Импорт и приёмка.

  1. Импортируйте в пустую базу, а не поверх существующего дерева: так ошибку видно сразу и ею нечего испортить.
  2. Сверьте число персон и семей с контрольными числами. Расхождение в одну-две карточки — обычно служебные записи, расхождение в десятки означает, что часть данных не проехала.
  3. Откройте десять карточек подряд и проверьте построчно: имя целиком, отчество, девичья фамилия, даты, места, привязка к родителям, ссылки на источники.
  4. Отдельно проверьте три-пять сложных узлов: повторный брак, приёмные дети, однофамильцы в одном поколении, человек без известных родителей.
  5. Пересоберите привязку медиафайлов и откройте наугад три фотографии.
  6. Сохраните сам файл выгрузки в семейный архив с датой в имени — это копия дерева на день переноса, и она пригодится, если через месяц обнаружится пропажа.

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

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

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

Дисциплина, снимающая все три риска, умещается в пять правил.

Выгружайте GEDCOM регулярно — раз в квартал или после каждого крупного сеанса работы. Выгрузка занимает минуту, а восстановление дерева по памяти — месяцы.

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

Читайте условия выгрузки до того, как внесли в сервис существенный объём работы. Вопрос «смогу ли я забрать своё» задаётся в первый день, а не в последний.

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

Частые ошибки переноса и как их чинить

После повторного импорта все люди удвоились. GEDCOM не умеет объединять — он умеет только добавлять. Загрузив тот же файл второй раз, вы получите вторые копии всех карточек. Объединение дубликатов — функция принимающей программы, и делается она отдельно, руками или полуавтоматически. Если удвоение уже произошло, проще откатиться к резервной копии, чем чистить вручную.

Люди на месте, родители пропали. Не прочиталась запись FAM или указатели в ней ведут в пустоту. Проверяется поиском по файлу: найдите идентификатор человека и посмотрите, есть ли запись FAM, где он значится ребёнком.

Битые указатели. В записи FAM стоит ссылка @I57@, а самой записи @I57@ в файле нет. Возникает при ручной правке файла и при частичной выгрузке одной ветви. Лечится повторной полной выгрузкой.

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

Приблизительные даты стали точными. Потерялись пометки ABT и BEF. Постфактум это трудно отследить, поэтому такие даты проверяют сразу после импорта, пока исходная база жива.

Файл не открывается вовсе. Три обычные причины: версия 7.0 подана программе, знающей только 5.5.1; файл оборван и не содержит TRLR; в начале стоит метка порядка байтов, которую принимающая сторона не ожидает. Все три диагностируются текстовым редактором за минуту.

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

Часто задаваемые вопросы

Вопросы и ответы

Чем открыть файл GEDCOM, если под рукой нет генеалогической программы?

Любым текстовым редактором. Файл с расширением .ged — это обычный текст, и блокнот, встроенный редактор файлового менеджера или любой редактор кода откроют его без установки чего-либо дополнительного. Единственное условие: редактор должен уметь выбирать кодировку, иначе русские имена могут показаться нечитаемыми. Откройте файл как UTF-8; если имена превратились в набор латинских букв с диакритикой, попробуйте Windows-1251. Что смотреть в открытом файле: первые двадцать строк — это шапка, где указаны выгрузившая программа, версия формата в строке 2 VERS и кодировка в строке 1 CHAR. Дальше идут записи людей, начинающиеся с уровня 0 и тега INDI. Поиском по строке INDI вы сосчитаете, сколько человек в выгрузке; поиском по фамилии проверите, есть ли в файле конкретная семья. Последняя строка полного файла — TRLR. Если её нет, выгрузка оборвалась, и такой файл импортировать не нужно. Текстовый просмотр не заменяет программу для работы с деревом, но для проверки перед переносом его вполне достаточно.

Почему после импорта вместо русских имён нечитаемые символы?

Потому что в шапке файла объявлена не та кодировка, в которой реально записан текст. Самый частый случай: программа физически пишет в Windows-1251, а в строке 1 CHAR ставит ANSEL или ASCII. ANSEL — старая восьмибитная кодировка для латиницы с диакритикой, кириллицы в ней нет, и принимающая программа читает байты как однобайтную латиницу, выдавая «Êóçíåöîâ» вместо «Кузнецов». Проверяется это за минуту: откройте файл текстовым редактором, найдите строку 1 CHAR и сравните объявление с тем, как выглядят имена. Порядок лечения такой. Сначала попробуйте выгрузить заново из исходной программы, явно выбрав UTF-8 в настройках экспорта. Если переключателя нет, пересохраните файл редактором в UTF-8 и только после этого поправьте строку CHAR, чтобы подпись совпала с содержимым. Чего делать нельзя — чинить искажения массовой заменой букв поиском: соответствие символов неоднозначно, часть фамилий исправится неверно, и ошибки всплывут через год. Если текст не читается ни в одной кодировке, испорчен не файл, а исходная база, и начинать надо с неё.

Какую версию выбрать при экспорте — 5.5.1 или 7.0?

Ту, которую объявляет принимающая сторона, а не ту, которая новее. Версия 5.5.1 остаётся общим языком отрасли: её читают почти все программы и сервисы, включая давно не обновлявшиеся. Версия 7.0 вышла в 2021 году, она строже и чище — требует UTF-8, избавилась от разрезания длинных текстов и ввела упаковку GEDZIP, в которой фотографии едут вместе с деревом, — но поддержка её распространяется неравномерно. Старая программа, получив файл 7.0, в лучшем случае потеряет часть сведений, в худшем откажется его открывать. Практическое решение зависит от задачи. Переносите дерево в конкретную программу — откройте её справку, найдите объявленную версию и выгружайте именно в ней. Обе стороны поддерживают 7.0 и в дереве много прикреплённых изображений — выбирайте 7.0 с GEDZIP, это единственный способ перенести медиа автоматически. Делаете выгрузку в семейный архив на неопределённое будущее — сохраните обе: 5.5.1 как максимально совместимую и 7.0 как максимально полную. Места они занимают немного, а выбор через десять лет сделает тот, кто будет открывать.

Почему фотографии не перенеслись вместе с деревом?

Потому что в файле версии 5.5.1 их и не было. Формат хранит не изображения, а только путь к ним в теге FILE внутри записи OBJE. Пока вы работаете на одном компьютере, путь разрешается и картинка видна; на другой машине или в другом сервисе он превращается в ссылку в никуда, и программа показывает пустую рамку. Выходов три. Первый и лучший: выгружать в формате GEDZIP версии 7.0 — это zip-контейнер с расширением .gdz, куда складываются и файл дерева, и сами изображения; подходит, если обе программы поддерживают версию 7.0. Второй: переносить рядом с файлом всю папку медиа и следить, чтобы пути в выгрузке были относительными, а не абсолютными вроде буквы диска и полного маршрута по папкам. Третий, годящийся для небольших деревьев: перепривязать изображения вручную после импорта. Отдельно проследите за именами файлов — кириллица и пробелы в них ломаются при переносе между операционными системами чаще, чем латиница с цифрами. Общее правило хранения семейных сканов и фотографий от программы не зависит и разобрано в материалах о семейном архиве и оцифровке фотоархива.

Можно ли объединить два дерева, просто импортировав второй файл в первое?

Нет, и попытка обычно заканчивается удвоением. GEDCOM умеет только добавлять записи: импорт создаёт новые карточки для всех людей из файла, даже если точно такие же уже есть в базе. Формат не содержит никакого механизма сопоставления людей между деревьями — у него нет глобальных идентификаторов, а внутренние указатели вроде @I1@ в каждой выгрузке свои. Объединение дубликатов — отдельная функция принимающей программы, и делается она после импорта: инструмент показывает пары похожих карточек по имени и датам, а решение о слиянии принимает человек. Совпадение имени и года рождения само по себе доказательством не является: в одном приходе спокойно жили два Ивана Кузнецова одного года, и ошибочное слияние сшивает две разные семьи в одну, после чего распутать их почти невозможно. Разумный порядок работы такой: импортируйте второе дерево в отдельную базу, сравните пересечение вручную, решите по каждой спорной паре отдельно и только потом сливайте. Если удвоение уже случилось, быстрее откатиться к резервной копии, чем чистить сотни карточек руками.

Как записать в GEDCOM дату по старому стилю?

В поле даты заносится дата документа в том виде, как она там стоит, а пересчёт держится в текстовом пояснении. Технически формат календари различает: в версии 5.5.1 юлианская дата помечается служебной вставкой @#DJULIAN@ перед значением, есть также григорианский, еврейский и французский республиканский календари; в версии 7.0 синтаксис записи изменился, а набор календарей сохранён. Беда в том, что программы обращаются с этой пометкой по-разному: одни её сохраняют, другие игнорируют и считают любую дату григорианской, третьи при импорте пересчитывают дату сами и сдвигают событие на десяток с лишним дней. Предсказать поведение конкретной пары программ нельзя — его проверяют опытом: занесите одну заведомо известную дату, выгрузите файл, посмотрите, что в нём оказалось, импортируйте и сравните. Надёжнее всего оказывается редакторский приём: дата документа в поле, а пересчёт в заметке или в описании события, например «род. 12 (24) мая 1861». Разница между стилями меняется по векам — 11 суток для XVIII века, 12 для XIX, 13 для XX, — поэтому универсального «минус тринадцать» не существует.

Что делать, если онлайн-сервис не отдаёт GEDCOM?

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

Как проверить, что перенос прошёл без потерь?

Проверка строится на числах и выборке. До выгрузки запишите, сколько в исходной базе персон и сколько семей, — эти два числа и есть основной контроль. После импорта сверьте их с новыми. Расхождение в одну-две карточки обычно объясняется служебными записями, расхождение в десятки означает, что часть данных не проехала, и надо разбираться, а не работать дальше. Второй слой — выборочная проверка десяти карточек подряд: имя целиком, отчество, девичья фамилия у женщин, даты со всеми пометками приблизительности, места, привязка к родителям, ссылки на источники. Третий слой — сложные узлы, на которых ломаются конвертеры: повторный брак, приёмные дети, однофамильцы в одном поколении, человек без известных родителей, семья без зарегистрированного брака. Проверьте три-пять таких случаев отдельно. Четвёртый слой — медиа: откройте наугад три фотографии и убедитесь, что они привязаны к нужным людям. Удобный приём приёмки: пройти не по всему дереву, а по одной линии от себя до самого дальнего установленного предка. Если эта линия цела во всех деталях, остальное дерево обычно тоже в порядке.