![]()
1С:Проблема 2000
Игорь Котельников,
Астро Софт, IgorK@astrosoft.ru
Мы продолжаем анализировать Проблему 2000 г. с точки зрения пользователя "1С:Бухгалтерии","1С:Предприятия" и рассматривать пути их решения, предлагаемые фирмами "1С" и Астро Софт. Статья рассчитана на IT-менеджеров и пользователей экономических программ фирмы "1С".
Бороться и искать, найти и ... осмотреться
В предыдущей статье ("КИ", 1/1999) было рассмотрено решение проблемы 2000 года от фирмы "1С". К сожалению, стопроцентной гарантии безмятежной работы пользователя они не дают. Старшее поколение читателей, наверное, помнит знаменитую миниатюру Аркадия Райкина о том, что "... Мы пришиваем пуговицы. К ним претензии есть? ". Бухгалтерская программа, конечно, не пуговица, но... Перечислим компоненты, образующие тот типичный автоматизированный комплекс, с которым работает конечный пользователь. Это:Компьютер+ОС+приложение (бухгалтерская программа)+ офисные приложения.Поскольку компонентой компьютера, ответственно й за представление даты ОС, является BIOS, то в дальнейшем мы будем рассматривать именно ее.
И как для любой системы ее качество (в данном случае совместимость с 2000 годом) определяется качеством всех компонентов и стыков (интерфейсов) между ними. Рассмотрим это по порядку.
BIOS
К решению простенькой задачи о том,
сколько будет, если 31 декабря 1999 г. к 23 час. 59 мин. 59
с. прибавить 1 с., базовые системы ввода-вывода
подходят творчески. Не знаю, хорошо это или плохо,
ответ непредсказуем. Большинство современных BIOS
дают-таки правильный ответ. Должно ли это
успокаивать? Если вы работаете на виртуальном
"современном большинстве", то да, если на
конкретном PC - вряд ли, гарантии нет. Для справки:
при проведении в Астро Софт тестирования ИС в
связи с решением Проблемы 2000 г. выяснилось, что
около 5% компьютеров фирмы имеют BIOS,
несовместимый с 2000 г.
Понятно, что в случае неправильного перехода с 1999
г. на следующий за ним, с точки зрения BIOS, будет
возникать проблема, которую мы рассматривали в
предыдущей статье. Но благодаря взаимодействию
BIOS с ОС, многообразие ее проявлений
представляется удивительным. Для его полного
описания, удобно разбить некорректно работающие
BIOS на две группы,сбрасывающие дату:
Связка "BIOS - ОC"
ОC фирмы Microsoft по ее жеопределению с 2000
г. "совместимы" или "соответствуют с
незначительными проблемами" (об этом пойдет
разговор в одной из следующих статей). А вот их
интерфейс с BIOS достаточно любопытен. Так,
некоторые старые ОС Microsoft не распознают 1900 г. и
автоматически устанавливают системные часы в 1980
г., по заявлению Microsoft "являющийся нашей базовой
датой" (Эра MS?). Таким образом, старые ОС Microsoft при
работе с BIOS 1-й группы порадуют вас омоложением на
20 лет и возвращением в доперестроечную Русь.
Новые ОС Microsoft автоматически преобразуют 1900 г. в
2000, т. е. при каждом включении компьютера и
последующей загрузке, ОС в течение всего 2000 г.
будет корректировать дату, решая проблему 2000 г.
за счет года 2001. Почему? Потому что 1901 г.
корректировать уже не будет. Так что, если вы не
столкнулись с неприятностями в 2000 г., это не
гарантирует беспроблемный переход к 2001 г.
BIOS'ам 2-й группы все ОС Microsoft доверяют вполне и никаких корректирующих действий не предпринимают. Таким образом, в лучшем случае ОС может отложить проблему на год, но, в общем случае, несовместимость BIOS с 2000 г. обязательно влечет некорректность работы автоматизированного комплекса. Может показаться, что проблема сильно преувеличена - мол, диагностируется проблема BIOS легко и, в крайнем случае, заменить клиентский компьютер - несложная задача. Может быть. Но я знаю точно, что сервер с несовместимым BIOS может вывести из строя всю систему автоматизации хозяйственной деятельности на несколько дней.
Связка "ОС - приложение"
Поскольку проблему совместимости с 2000 г. самих экономических программ "1С" мы уже обсуждали, достаточно кратко пояснить, как будет вести себя программа в случае получения некорректной даты от ОС. В момент старта программы на основании данных ОС она формирует параметр "Рабочая дата", значение которого в дальнейшем рассматривается как "значение по умолчанию" всегда, когда необходимо ввести дату. Таким образом, если ОС передает приложению некорректную текущую дату, то оно будет оперировать неверными данными о дате и времени. Это приведет к занесению информации о хозяйственных операциях с неверной датой. Некорректную дату исправить в "1С" несложно, но делать это нужно при каждом запуске программы. При достаточно интенсивной работе и нормальной забывчивости ошибки такого рода превратят ваши учетные записи в хаос.
Связка "бухгалтерская программа - офисные приложения"
Экономические программы фирмы "1С"
являются современными программными продуктами,
использующими современные технологии.
"1С:Бухгалтерии" версии 6.0 являются DDE-сервером,
а все версии "1С:Предприятия" - DDE сервером, OLE
automation сервером и клиентом. Большинством
пользователей эти возможности не используются,
но при организации сложной автоматизированной
системы без них не обойтись. Так, практически все
совместные предприятия, использующие
"1С:Бухгалтерию" для формирования российской
отчетности, а для зарубежной - другие системы (Scala,
Baan и проч.), применяют эти интерфейсы для передачи
данных между программами. Частным, но довольно
распространенным, является требование
формирования небухгалтерской отчетности в
Excel'е.
Нюансы, связанные с проблемой 2000 г., существуют и при передаче данных из экономических программ 1С в офисные приложения (Excel, Access). Речь будет идти о релизах 1С и релизах "офиса", совместимых с 2000 г. Рассмотрим использование как канала DDE, так и канала OLE automation.
32-битные компоненты офиса применяют 4-значный формат представления года, т.е. все даты до 9999 г. включительно являются для MS Office 97 "родными". Но что будет, если передавать год в двухзначной кодировке? Office сам преобразует двухзначную кодировку в четырехзначную по тому же алгоритму "логического диапазона дат", что и экономические программы "1С". Но в отличие от последних, он использует жестко заданный год начала столетия - 1930. Т. е. 29 г. преобразуется в 2029, а 30 г. - в 1930, что открывает лазейку для рассогласования данных. Вопрос стоит так: в какой кодировке передаются данные из экономических программ "1С" в офисные приложения по каналам DDE и OLE automation? Если используется четырехзначное представление года - проблем нет, если двухзначное - будет наблюдаться проблема 2030 г. Ответ на вопрос о совместимости связки "1С:Предприятия - MS Excel 97" с 2030 г. представлен на рис.1.

На одном листе MS Excel представлены как
данные (рабочая дата), полученные по каналу DDE
(содержимое ячейки для связи выведено в строке
формул), так и по каналу OLE automation (VBA подпрограмма в
окне в нижней части экрана) из программы
"1С:Бухгалтерия версия 7.5" с годом рабочей даты,
установленным в 2030.
Очевидна корректная передача по каналу OLE automation
и, о ужас!, искажение данных, переданных по каналу
DDE. Испугались? А теперь внимание - решение! (Рис.2).

Для устранения проблемы необходимо, чтобы "1С:Предприятие" передавало в канал DDE дату не в двухзначной кодировке, а в четырехзначной. А "заставить" ее делать это можно простым выбором параметра "Число цифр в представлении года", равным 4 (кстати, и работать с программой будет удобнее, так как все даты будут выводиться с четырехзначным годом). И все. Таким образом, проблема 2030 г. представляет скорее академический, чем практический интерес.
Где еще может прятаться проблема 2000?
Мы рассмотрели систему управления бухгалтерской деятельностью, при рассмотрении общехозяйственной системы появляется еще одна потенциально чреватая проблемой 2000 г. компонента, правда, имеющая к компьютеру отдаленное отношение - дополнительные оконечные устройства, использующие встроенную систему работы с датами, например, контрольно-кассовые машины. Для фискальных целей эти устройства сами генерируют дату, проставляемую на чеке. А вы уверены, что ваши ККМ совместимы с 2000 г.? Обратитесь за консультацией к курирующему вас ЦТО.
Чем вам может помочь Астро Софт
В задачу предлагаемой серии статей о проблеме 2000 г. входило дать обзор самой проблемы с точки зрения автоматизации хозяйственной деятельности на платформах Microsoft и "1С", способов ее решения и сложностей, связанных с этим решением. Но мы планируем сделать для вас больше - с середины февраля мы начинаем проводить бесплатные семинары "Проблема 2000: осознание последствий и меры по предотвращению" отдельно для малых предприятий, использующих в основном экономические программы "1С" и офисные приложения Microsoft, и отдельно - для средних и крупных организаций, имеющих сложные ИС. Для всех, заинтересованных в решении проблемы, Астро Софт предлагает целый спектр продуктов и услуг, предназначенных для этого, включая консультирование, тестирование и модернизацию с выдачей заключений, комплексные проекты. С 10 февраля в Астро Софт стал действовать специальный стенд, на котором мы сможем протестировать ваши компьютеры и программное обеспечение.
Вперед в XXI век!
