Стремительно уходит время, отпущенное нам на решение проблем двухтысячного года. Лучше начать сейчас.

Тик-так, тик-так, тик-так... Это таймер вашего ПК отсчитывает секунды, оставшиеся до последнего года столетия. И если вы не займетесь вовремя вопросами двухтысячного года, этот звук, возможно, обернется тиканьем часовой мины.

Байки о грядущем электронном апокалипсисе сейчас уже всем известны. Миллионы компьютерных систем - от больших ЭВМ, ведающих резервированием авиабилетов, до логических схем, управляющих работой местной электростанции небольшого городка, - не сумеют перешагнуть из года номер 1999 в год номер 2000. Никто в точности не знает, что случится, когда часы пробьют полночь, но затраты на решение проблемы обойдутся, по разным оценкам, в сумму от 600 миллиардов до 4,6 триллиона долларов. (Иначе говоря, консультации по проблеме смены тысячелетия должны быть сейчас очень выгодным занятием.)

Если вы считаете свой ПК имеющим иммунитет к так называемой проблеме-2000, подумайте еще раз. Вы спросите, что же может пойти не так? Приведем несколько примеров.

  • Чтобы определить, какие проценты накопятся на долгосрочном вкладе к 2030 г., вы вводите в электронной таблице дату 1/15/30, а программа воспринимает ее как 15 января 1930 г.
  • При включении ПК неправильно устанавливает системную дату. В результате почта уходит с неверно указанным временем отправки, электронная записная книжка не предупреждает вас вовремя о назначенных встречах и звонках, а при упорядочении файлов по времени создания последние версии документов оказываются очень далеко от начала списка.
  • Бухгалтерский пакет, разработанный программистами вашей фирмы, начинает автоматически рассылать уведомления о взыскании пени за просрочку платежа на 99 лет по счетам, отправленным на прошлой неделе.

Но даже после того, как вы выявите и устраните в своей системе все подобные дефекты, останется риск вновь столкнуться с проблемой-2000, импортировав некорректный файл данных. И если сеть не будет готова к 2000 г., все старания пойдут насмарку.

В этой статье рассматриваются четыре ключевых области, в которых может проявиться проблема: аппаратное обеспечение (таймер компьютера и BIOS), коммерческое ПО (операционные системы и стандартные прикладные программы типа Excel), специализированное прикладное ПО (программы, написанные специально для определенной области бизнеса или промышленности) и обмен данными (вопросы, связанные с работой групп пользователей в доступных через сеть электронных таблицах и базах данных). Мы протестировали 19 бесплатных и коммерческих пакетов, которые, по утверждению разработчиков, диагностируют и устраняют проблему-2000, и обнаружили несколько действительно работающих (см. врезку "Программы-спасатели"), а кроме того, отправили несколько ПК "назад в будущее" (см. одноименную врезку), переставив их системную дату на 1 января 2000 г., чтобы выяснить, к каким в точности последствиям это приведет. На следующих страницах вы прочтете о том, как определять, классифицировать и разрешать проблемы, связанные с 2000 г., до того, как вы столкнетесь с ними лицом к лицу.

Аппаратное обеспечение

Часы остановятся в полночь

Возможно, вы этого еще не знаете, но вполне вероятно, что ваш ПК подвержен одной из разновидностей проблемы-2000. По сообщению британской компании Greenwich Mean Time, которая занимается поставками утилит, помогающих бороться с проблемой-2000, у 93% всех ПК, изготовленных до 1996 г., BIOS не сможет правильно переключиться с 1999 г. на 2000 г. Из компьютеров, изготовленных в прошлом году, таковы только 11%. Но все же любой пользователь ПК поступит мудро, заблаговременно проверив свою аппаратуру на способность пережить конец века - тем более, что это совсем несложно.

Суть дела такова. На каждой системной плате обязательно есть питающийся от аккумулятора таймер, который отсчитывает время даже тогда, когда компьютер выключен. Этот таймер хранит год в виде двух последних цифр, а две первые находятся в специальной области памяти - так называемом байте столетия (century byte).

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

Но таймер не меняет байт столетия. В ночь с 31 декабря 1999 г. на 1 января 2000 г. он изменит последние цифры года с 99 на 00, а байт столетия так и останется равным 19. В результате при включении компьютера система BIOS обнаружит, что настал 1900 г. Если она готова к этому, то немедленно заменит значение 19 на 20, в противном же случае добросовестно передаст операционной системе в качестве значения года число 1900. DOS, Windows 3.x и Windows 95 заменят 1900 на 1980 - первый год, для которого может быть задана системная дата. Windows 98 и NT 4.0 должны обнаружить ошибку и автоматически заменить 19 на 20, однако эта защита не всегда срабатывает, как запланировано.

Лечение таймера

Таким образом, если 1 января 2000 г. вы включите свой компьютер, а он поздравит вас с наступившим 1980-м, значит, у вас аппаратная проблема-2000. Но чтобы в этом убедиться, не обязательно ждать конца года - можно проверить компьютер прямо сейчас.

Один из способов произвести такую проверку - это посетить соответствующую страницу Web-узла фирмы, изготовившей ваш компьютер. Например, обладатели компьютеров Dell могут ввести по адресу www.dell.com/year2000 год выпуска и модель своего ПК и определить, совместим ли он с 2000 г.

Другой вариант - протестировать компьютер какой-либо из предназначенных для данной цели утилит. Из 19 программ, с которыми ознакомилась редакция PC World, наиболее простой и эффективной, на наш взгляд, оказалась CloсkTest британской фирмы Tantra Software. Достаточно скопировать CloсkTest на загрузочную дискету и перезагрузиться с диска A: - утилита запустится и сообщит вам результаты. Ее можно бесплатно взять с сервера FileWorld (www.fileworld.com/ magazine).

(Чтобы протестировать компьютер самостоятельно, измените системное время и дату, например на 23 часа 55 минут 31 декабря 1999 г., выключите компьютер, а через пять минут включите снова и проверьте дату. Не забудьте затем восстановить правильную дату и время. - Прим. ред.)

Обнаружив проблему-2000, ее надо решить. Часто для этого достаточно вручную изменить дату: загрузить компьютер в режиме DOS и набрать в командной строке команду date с правильной датой - например date 1/1/2000 (в России в DOS чаще всего используется формат даты дд-мм-гг, при котором соответствующая команда имеет вид date 01-01-2000; можно и не выходить из Windows, а задать дату в сеансе DOS или с помощью утилиты настройки даты и времени. - Прим. ред.)

Однако машина старого выпуска, возможно, будет возвращаться к неверной дате при каждом очередном включении. В наших тестах ни один из компьютеров, выпущенных до 1996 г., не сумел сохранить правильную дату (см. врезку "Назад в будущее"). В подобном случае лучшим решением будет перепрограммирование BIOS. Обычно новую версию BIOS можно получить на Web-узле поставщика компьютера или BIOS. Если же BIOS не допускает перепрограммирования, вам, скорее всего, придется заменить соответствующую микросхему. Ну, а кто-то просто купит новый компьютер вместо устаревшего.

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

Еще один вариант - воспользоваться дополнительной платой, которая перехватывает обращения к BIOS и делает то же, что и резидентная программа. Плата, как и программа, увеличивает риск конфликтов - в данном случае с другими устройствами. И конечно, в этом случае вы должны будете отдать деньги за исправление ошибки, которая, возможно, исправляется и бесплатно.

Коммерческое ПО

Даты и данные

Хотя прессу занимают в основном аппаратные неполадки, для большинства пользователей серьезнее могут оказаться проблемы, связанные с коммерческими программами, такими как Microsoft Office, Corel WordPerfect Suite или Lotus SmartSuite. Для программ, как и для компьютеров, риск тем выше, чем они старше. Но даже в относительно новых программах ошибка может проявиться из-за применяемого способа ввода информации.

Конечно, очень многое зависит от операционной системы. Если вы все еще работаете в Windows 3.x, то волей-неволей должны пользоваться 16-разрядными программами. К сожалению, лишь очень немногие поставщики позаботились о подготовке своих 16-разрядных программ к 2000 г., так что проблема-2000, возможно, подвигнет вас на модернизацию операционной системы, от которой вы счастливо уклонялись уже четыре года.

У пользователей Windows 95 и 98 поводов для беспокойства меньше. Разве что Диспетчер файлов в Windows 95 (программа winfile.exe с интерфейсом Windows 3.x) не вполне корректно отображает даты, относящиеся к 2000 г. и более поздние. Исправления можно получить на Web-узле Microsoft (support.microsoft. com/support/ downloads). Версию программы, поставляемую с Windows 98, обновлять не нужно.

Поворотные решения

За исключением горсточки незначительных дефектов текущие версии всех главных офисных и финансовых пакетов готовы к новому тысячелетию. Вопрос лишь в корректном вводе данных. Тем, кто с упорством фанатика задает в электронных таблицах, базах данных и финансовых программах все четыре цифры года (1998, 1999), беспокоиться, скорее всего, не о чем. Тем же, кто этого не делает, видимо, пора исправиться самому и исправить данные.

Практически все программы, работающие с датами, допускают обозначение года двумя цифрами, а столетие при этом выбирают в зависимости от их значения. Например, Excel 97 считает, что годы, записанные как '00'-'29' - это 2000-2029, а как '30'-'99' - соответственно 1930-1999. Поэтому дата 1/15/29 будет сохранена как 15 января 2029 г., но стоит ввести 1/15/30, и вы вернетесь в 1930 г. Значение, на котором "грядущее" сменяется "минувшим", - в нашем случае '30' - называется поворотным годом (pivot year). Важным исключением является Access 95 - эта программа присоединяет '19' к любой двузначной записи года; на сервере Microsoft (www.microsoft. com/technet) имеется исправленная версия.

Поворотный год может быть разным в разных программах, а иногда даже в разных версиях одной и той же программы: скажем, в Excel 97 это '30', а в Excel 7.0 - '20', т. е. запись 1/15/29 здесь, в отличие от Excel 97, будет означать 15 января 1929 г. (см. врезку "Поворотные годы").

Проблема возникает, когда программа вдруг приписывает указанной дате не то столетие. Предположим, у вас есть таблица Lotus 1-2-3 97, по которой рассчитываются пенсии. Значение поворотного года для Lotus 97 - '50'. Если вы введете дату рождения сотрудницы в форме 1/15/34, программа решит, что она родилась в 2034 г.

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

Следите за программой

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

Первым делом задайте в Windows такой формат даты, чтобы в нем показывались все четыре цифры года, - это поможет обнаружить ошибки в файлах данных. Откройте Панель управления, а на ней - утилиту Regional Settings ("Язык и стандарты"), щелкните по закладке Date ("Дата") и вручную измените значение в поле Short date style ("Краткий формат даты") на m/d/yyyy (для России естественно выбрать dd.MM.yyyy, а в русской версии - дд.ММ.гггг. - Прим. ред.)

Затем просмотрите свои файлы электронных таблиц, финансовых программ и баз данных на предмет дат, а также формул, в которых участвуют даты. Если на исследование всех файлов нет времени, начните с жизненно важных для вашего бизнеса. В поиске потенциальных проблем вам способны помочь несколько коммерческих пакетов, лучшим из которых редакция PC World считает Check 2000 PC Deluxe компании Greenwich Mean Time UTA (см. врезку "Программы-спасатели"). Кстати, он заодно проверяет BIOS на наличие ошибки-2000.

Однако необходимо понимать, что ни одна программа не избавит вас полностью от бедствий смены тысячелетия. Единственное верное средство - тщательная проверка всех файлов, которые используются в вашем бизнесе; и не забывайте следить за тем, как вносятся новые данные.

Специализированное ПО

Опасность на порядок выше

Опасности, которые таит в себе "коробочное" коммерческое ПО, - пустяк по сравнению с угрозой, исходящей от программ, написанных для конкретного применения. Если у вас есть хоть один специализированный пакет для вашей области бизнеса, неважно, куплен он или разработан на заказ, вы с очень большой вероятностью столкнетесь с проблемой-2000, причем в трудноразрешимом варианте. Даже ваши любимые макрокоманды Excel могут стать питательной почвой для такого рода ошибок.

Типичным специализированным ПО являются программы для бухгалтерии, склада и других областей, в которых неправильно вычисленная дата способна полностью разрушить систему учета и даже вовсе погубить бизнес. Если ваша бухгалтерская программа не в состоянии обработать накладную с датой 01/15/00 или регистрирует ее как просроченную на 99 лет, это серьезная проблема.

Еще хуже то, что вам, возможно, не удастся разыскать тех, кто писал программу. А если у вас вдобавок нет ее исходных текстов, вы не сможете также нанять программиста, который бы исправил ошибку.

Так что же предпринять? Прежде всего определите, какое специализированное ПО у вас используется, если, возможно, свяжетесь с разработчиками (фирмами или конкретными людьми) и запросите у них подробную информацию о готовности программы к 2000 г., причем в письменном виде.

Но не верьте поставщику на слово. Выделите в своей фирме компьютер, установите на него все подозрительные программы и протестируйте их с фиктивными данными. Заработает ли программа вообще с системной датой 1 января 2000 г. или более поздней? Допускается ли ввод года в четырехзначном формате? Что произойдет, если ввести дату с двузначным обозначением года? Можно ли задать удобный поворотный год? Будут ли правильно работать запросы и формулы, в которых фигурируют даты из разных столетий?

С макрокомандами, особенно если вы их сами писали, разобраться проще. Определите, какие макрокоманды работают с датами, тщательно проверьте их текст, внесите необходимые исправления и протестируйте с двух- и четырехзначными обозначениями года в обоих столетиях.

О пользе исходных текстов

Итак, вы протестировали программу и обнаружили в ней несколько ошибок, связанных с 2000 г. А дальше что? Если у вас нет возможности разыскать разработчика или получить от него исправления (например, программу писал ваш бывший сотрудник, перешедший затем в конкурирующую фирму), выбор невелик. При наличии исходных текстов можно нанять программиста, владеющего соответствующим языком, чтобы он нашел и исправил ошибки.

В противном случае программу придется заменить на другую, работающую корректно. Если вы знаете подходящий продукт, свяжитесь с его разработчиком и выясните, готова ли программа к новому тысячелетию (лучше, если ответ будет в письменной форме). Убедитесь, что сможете перенести данные из старой программы в новую.

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

Обмен данными

Ошибка не сдается

Вы заменили устаревшее ПО, изгнали из файлов укороченные даты, проследили за BIOS и теперь, наверное, считаете, что полностью застрахованы от проблемы-2000? А вот и нет - ведь остались данные из внешних источников.

В импортируемых данных вполне могут оказаться даты с двузначной записью года. Ваша программа припишет им столетие, основываясь на своем значении поворотного года, - но правильно ли? При обмене данными с программами, не готовыми к следующему тысячелетию, проблемы растут как грибы.

Поэтому во внешних файлах данных перед использованием необходимо проверять корректность дат. Хорошо бы пропускать их через специальный тест (такой, как Check 2000 PC Deluxe). Если вы обмениваетесь данными с поставщиками или клиентами, обсудите с ними заранее, как будут представляться даты.

Хаос на сервере

Еще одним источником проблем может стать сеть. Скажем, сетевая версия Windows NT 4.0 обращается за датой непосредственно к аппаратному таймеру сервера. А большинство таймеров, как мы видели, подвержены проблеме-2000 - изготовители компьютеров рассчитывают на то, что BIOS исправит ошибку и передаст дальше правильную информацию. Некоторые ошибки NT опознает и устраняет (например, двузначная дата xx при xx меньше 20 будет проинтерпретирована как 20xx), но другие накладки могут вызвать возврат к "базовому" 1980 г.

А если сервер считает текущий год 1980-м, то и вся остальная сеть тоже - ведь ПК, подключенные к сети, берут дату и время с сервера. Мало того, неверная дата на сервере способна нарушить резервное копирование, перепутать даты в заголовках писем, а также электронных календарях и записных книжках пользователей.

Что делать? Подумайте о замене соответствующей части аппаратного обеспечения сервера. В крайнем случае можно воспользоваться программной службой времени, которая при загрузке предоставляет компьютеру надежный источник информации. Так, программа Domain Time Software компании Greyware позволяет NT Server получить точное время от другого компьютера сети или одной из общедоступных служб времени в Internet, а Time Synchronization Server 100 компании Coetanian Systems пользуется данными спутников системы Global Positioning System.

Domain Time Software

Цена: 42 долл. Greyware. Тел. в США: 972/867-2794, www.greyware.com/ software/domaintime

Time Synchronization Server 100

Цена: 1995 долл. Coetanian Systems. Тел. в США: 650/917-0130, www.coetanian.com

Будьте готовы!

Никто не может предвидеть всех бед, которые способна принести проблема-2000. Многие ошибки, вероятно, окажутся полной неожиданностью для всех. Основная их масса не коснется ПК, но чтобы минимизировать будущие сложности, очень важно уже сейчас, насколько возможно, навести порядок на своем компьютере.

Кроме того, если мрачные пророчества относительно 1 января 2000 г. сбудутся, у вас найдется немало забот и помимо ПК. n

Об авторах

Линкольн Спектор - редактор и автор PC World, ведет разделы Answer Line (вопросы и ответы) и Gigglebytes (компьютерный юмор).

Сьюзен Сильвиус - независимый журналист, живет в Сан-Франциско.


Группа риска
ВопросВозможная неисправностьМеры по устранению
Изготовлен ли ваш ПК до 1997 г.?Многие машины старого выпуска не способны перейти к 2000 г.Проверьте BIOS компьютера утилитой ClockTest компании Tantra Sofftware или аналогичной. При обнаружении ошибки перепрограммируйте или замените BIOS либо воспользуйтесь резидентной программой, перехватывающей обращения к BIOS. Еще один вариант - купить новый компьютер.
Изготовлен ли ваш ПК после 1997 г.?Многие относительно новые машины не способны перейти к 2000 г. автоматически.Проверьте BIOS компьютера; если будет нужно изменить дату вручную, сделайте это; если дата не сохраняется, перепрограммируйте или замените BIOS.
Работаете ли вы в Windows 3.x?Сама Windows 3.x имеет лишь незначительные дефекты, относящиеся к проблеме-2000, но со многими 16-разрядными программами для Windows могут возникнуть серьезные осложнения.Перейдите на Windows 98 или NT 4.0 и соответствующие версии прикладных программ.
Работаете ли вы в Windows 95 или 98?Незначительные проблемы с программами, унаследованными от Windows 3.x; в Windows 95 и 98 по умолчанию используется краткий формат даты с двузначной записью года.Перенастройте краткий формат даты в Windows на четырехзначную запись года. Если нужно, замените версию Диспетчера файлов.
Пользуетесь ли вы электронной таблицей, базой данных или бухгалтерской программой?Программа может ошибочно отнести введенную в ней двузначную запись года не к тому столетию, которое имелось в виду.Проверьте все ячейки, поля и формулы в файлах данных на наличие двузначных записей года и замените эти записи четырехзначными. Для автоматизации этой работы воспользуйтесь утилитой Check 2000 PC Deluxe компании Greenwich Mean Time UTA или аналогичной.
Пользуетесь ли вы специализированными программами?Эти программы могут вообще не работать с четырехзначной записью года или некорректно обрабатывать даты после конца 1999 г.Протестируйте работу используемых у вас специализированных программ с четырехзначной записью года и датами, относящимися к следующему веку. Если результат вас не удовлетворит, программу нужно переписать или заменить. Поинтересуйтесь у разработчиков существованием пакета корректировки.
Обмениваетесь ли вы файлами данных с клиентами, партнерами и т. д.? Работаете ли вы в сети?Файлы, пришедшие извне, могут содержать некорректные даты. Сетевой сервер может менять дату клиентских компьютеров на некорректную.Внимательно проверяйте все внешние файлы на специально выделенной "карантинной" машине. Протестируйте сервер; добейтесь отсутствия проблемы-2000 или установите ПО службы времени.