5. Present Perfect чи Past Simple — головна пастка

Найважливіший розділ теми. Обидва часи українською перекладаються однаково — «я зробив», — тому різниця для нас невидима на слух. Її не можна вгадати; її треба вирішити свідомо, і для цього достатньо однієї перевірки.

Перевірка з одного питання

Період, у якому ця дія сталася, вже закрився?

Так, закрився (yesterday, last week, in 2019, an hour ago) → Past Simple. У закритий період нічого не додати.

Ні, ще триває (today, this week, this year, ever, so far, і взагалі «моє життя») → Present Perfect. До відкритого періоду ще можна додати наступну таку дію.

Зверніть увагу, що питання не про давність дії. «Я щойно надіслав» — це Perfect, хоч це було 30 секунд тому. «Я надіслав учора» — це Past Simple, хоч це було лише вчора. Вирішує не давність, а закритість періоду.

ПЕРІОД ЗАКРИТИЙ → PAST SIMPLEyesterday · in 2019 · last weekЗАРАЗI sent the invoice yesterday. — «yesterday» уже скінчилось, у нього нічого не додати.ПЕРІОД ЩЕ ВІДКРИТИЙ → PRESENT PERFECTtoday · this week · so far · everI've sent three invoices today. — «today» триває, до нього можна додати четвертий.
Та сама дія, той самий інтервал до «зараз» — і різні часи, бо в одному випадку рамка періоду вже зачинилась, а в іншому ні.

5.1 Два списки, які варто знати напам'ять

Період ЗАКРИТИЙ → Past SimpleПеріод ВІДКРИТИЙ → Present Perfect
yesterday · the day before yesterdaytoday · this morning (якщо ранок триває)
last week / month / year / Fridaythis week / month / year
two hours ago · a minute agoso far · up to now · until now
in 2019 · in March · on Mondayever · never · in my life
when I was a studentsince 2019 · for six years
at six o'clock · thenrecently · lately · these days
When…? (питання про момент)How long…? (питання про тривалість)
Найкоротший спосіб запам'ятати

Якщо в реченні є ago, yesterday або рік — Present Perfect неможливий фізично. Це не стилістика й не відтінок — це помилка того самого ґатунку, що неузгоджений відмінок в українській.

І навпаки: якщо є since, so far або How long — Past Simple буде помилкою.

5.2 Мінімальні пари — те саме речення, різний час

Рахунок вендору
I sent the invoice yesterday.
● Подія в закритому вчора. Ви розповідаєте історію.
I have sent the invoice.
⏵ Стан справ зараз: рахунок у них. Коли — не важливо.
Релізи
We shipped two releases last month.
Минулий місяць скінчився: цифра остаточна.
We have shipped two releases this month.
Цей місяць триває: до двох може додатися третій.
Робота в компанії
I worked at that company for six years.
Я там більше не працюю. Період закрився.
I have worked at that company for six years.
Я досі там працюю. Період відкритий.
Знайомство з людиною
I met him at a conference in 2019.
Одна подія: познайомились на конференції у 2019-му.
I have known him since 2019.
Стан, що триває: я його знаю з того часу й досі.
Втрачений ключ доступу
I lost the access key.
Розповідь про минулий інцидент. Може, ключ уже знайшли.
I have lost the access key.
Проблема прямо зараз: ключа в мене немає.
Сніданок
I had breakfast at seven.
Просто факт про ранок, який уже минув.
I have had breakfast.
Тому їсти не хочу. Наслідок для теперішнього — я сита.

5.3 Чому саме українцям це так важко

Українська ділить дієслова інакше

Українська система будується на виді: «писав» (недоконаний) проти «написав» (доконаний). Англійська система будується на охваті періоду. Ці дві сітки не збігаються — і жодне з українських дієслів не має в собі інформації про те, чи період закритий.

Тому «Я написав звіт» — це, залежно від контексту, і I wrote the report, і I have written the report. Українське речення просто не містить тієї інформації, яку англійське мусить містити. Її треба добудувати з ситуації.

А в деяких мовах перфект вільно бере «вчора» — і збиває з пантелику

Якщо ви вчили німецьку, тут особлива небезпека: німецьке Ich habe es gestern gemacht («я зробив це вчора») з перфектом — цілком нормально. Французьке Je l'ai fait hier — теж. Конструкція та сама («маю зроблене»), а обмеження — різні.

Англійська пішла окремим шляхом і зробила заборону жорсткою: назвав момент — втратив право на перфект. Тому інтуїція, перенесена з іншої європейської мови, тут не працює.

5.4 Найчастіші конкретні помилки

✗ НЕПРАВИЛЬНОI have finished it yesterday.
✓ ПРАВИЛЬНОI finished it yesterday.
Є yesterday — період закритий.
✗ НЕПРАВИЛЬНОWhen have you joined the team?
✓ ПРАВИЛЬНОWhen did you join the team?
When питає про момент, а Perfect моменту не називає. Ці двоє несумісні в принципі.
✗ НЕПРАВИЛЬНОI work here for six years.
✓ ПРАВИЛЬНОI have worked here for six years.
Найпоширеніша помилка теми. Українською теперішній час, англійською — Perfect.
✗ НЕПРАВИЛЬНОI am working here since 2019.
✓ ПРАВИЛЬНОI have been working here since 2019.
since вимагає Perfect. Continuous без have been тут неможливий.
✗ НЕПРАВИЛЬНОDid you ever been to Berlin?
✓ ПРАВИЛЬНОHave you ever been to Berlin?
Питання про досвід за все життя → Perfect. Американський розмовний варіант Did you ever go to Berlin? теж існує, але did … been неправильно завжди.

5.5 Дві прикрі деталі, через які здається, що правило «не працює»

① Британці й американці розходяться в дрібницях

З just, already та yet британська норма вимагає Perfect, а американська допускає Past Simple:

BrE: I've just eaten. · Have you finished yet? · I've already told him.
AmE: I just ate. · Did you finish yet? · I already told him.

Обидва варіанти зрозуміють будь-де. Порада проста: беріть британський. Він правильний в обох нормах, а американський — лише в одній.

② today і this morning можуть бути закритими

Період вважається закритим не за годинником, а в голові мовця. Якщо ранок для вас уже закінчився, ви скажете:

I had three calls this morning. — ранок позаду, це вже історія.
I've had three calls this morning. — ранок ще триває, я в ньому.

Обидва правильні. Це не виняток із правила, а сам його механізм: правило спирається на те, як ви бачите період, а не на календар.

Що робити, коли часу на роздуми немає

У живій розмові ви не встигнете прогнати цю схему. Тому запам'ятайте один поведінковий рефлекс:

Назвали час — переходьте на Past Simple. Щойно з вашого рота вилетіло yesterday, last week, in 2019 або ago, дієслово мусить бути V2. І навпаки: якщо ви не збираєтесь називати час, а хочете сказати про стан справ — беріть have + V3.

Ця одна звичка забирає приблизно 80% помилок теми.