ЧАСТЬ ПЕРВАЯ. МАКРОПРОГРАММИРОВАНИЕ ФИНАНСОВ
В настоящий момент на российском рынке ПО достаточно благополучным является сектор программ для экономики и бизнеса. Судить об этом можно по количеству выпущенных "бухгалтерий", "складов" и "зарплат".
Присутствующие на рынке тиражные системы можно разделить на два больших класса: инструментальные и комплексные. Время подтвердило: и те, и другие имеют своих пользователей, а следовательно, и право на существование. Указанные классы программ различаются в основном способами настройки на специфику учетной работы пользователей.
ИНСТРУМЕНТАЛЬНЫЕ СИСТЕМЫ
Наибольшее распространение получили инструментальные системы автоматизации бухгалтерского учета или "бухгалтерские конструкторы". По самой грубой оценке, не менее половины бухгалтерий, ведущих компьютерный учет, используют одну из "большой четверки" программ, к которой относятся "1С:Бухгалтерия", "Турбо-Бухгалтер", "Инфо-Бухгалтер" и "Финансы без проблем". Все это - пресловутые "бухгалтерские конструкторы".
Характерной чертой данного типа программ является то, что они умеют выполнять лишь небольшой набор бухгалтерских расчетов, но при этом содержат развитые средства настройки. По сути дела, все заложенные в них бухгалтерские "навыки" ограничиваются возможностью вводить данные хозяйственных операций (как правило, в форме проводок), рассчитывать сальдо и обороты синтетических и аналитических счетов и формировать небольшой набор выходных форм. Как производятся более специфические расчеты (начисление износа основных средств, оценка стоимости запасов, расчет зарплаты), как двигаются и взаимодействуют первичные документы бухгалтерии между участками учета инструментальные системы "не знают", их этому нужно "научить".
Поэтому там, где необходимы специальные расчеты (а их перечень весьма велик), настройку программы пользователь должен выполнять самостоятельно. Иными словами, предполагается, что бухгалтер владеет навыками программирования на специфическом макроязыке программы и сможет формализовать инструкции Минфина, Госналогслужбы и учетной политики своей фирмы в терминах данного языка.
Принципы настройки инструментальных систем
Разработчики "бухгалтерских конструкторов" стремятся построить как можно более простую формальную модель бухгалтерского учета, не вникая в тонкости ведения различных его участков. При этом многие проблемы перекладываются на плечи пользователей или дилеров.
В качестве иллюстрации настройки данного типа программ приведем пример описания расчетов по начислению износа основных средств для программы "Инфо-Бухгалтер" фирмы "Информатик":
ВЫЧИСЛИТЬ дата=ДАТА_ТЕК м=МЕС(ДАТА_ТЕК) г=ГОД(ДАТА_ТЕК)
ЕСЛИ г>100 ТО г=г-1900 КОНЕЦ_ЕСЛИ
ВВЕСТИ д1=ДАТА(1,м+1,г)
ЦИКЛ СЧЕТА(сч="01/*")
ЕСЛИ НЕ ЕСТЬ_СУБСЧ(сч) ТО на=ЗНАЧ(ПОДСЧ(сч,2))/1200
// Норма амортизации сч_из="02/1" // Составление субсчета износа и=2
ЦИКЛ ПОКА(и<=УРОВЕНЬ(сч)) сч_из=сч_из+"/"+ПОДСЧ(сч,и) и=и+1
КОНЕЦ_ЦИКЛА изн=МИН( ОСД(сч,д1)*на,
МАКС( 0, ОСД(сч,д1) - ОСК(сч_из,д1)))
ПРОВОДКА("20",сч_из,изн,дата,
"Начислен износ ОС за "+МЕСП(м))
КОНЕЦ_ЕСЛИ
КОНЕЦ_ЦИКЛА
Аналогичные описания расчетных алгоритмов на специализированном языке программы требуются и при решении других задач. Но мало дать описание, надо разработать еще и некоторую технологию ввода и хранения необходимой для выполнения расчетов информации, и не только для очень специфических расчетов, но и для достаточно типовых операций.
Справедливости ради отметим, что инструментальные системы, как правило, содержат немало примеров подобных настроек, которые в определенных случаях можно применять без всякой модификации. Однако следует иметь в виду: чтобы в полной мере использовать возможности указанных систем автоматизации, необходимо научиться записывать процесс решения той или иной задачи с помощью специальных языков, уметь отлаживать подобные макропрограммы и, самое главное, обладать достаточной фантазией для того, чтобы проектировать технологию обработки данных, основываясь на предлагаемых средствах.
Комплексные системы
Тиражные системы комплексной автоматизации бухгалтерского учета (в качестве примера назовем разработки фирм "Новый Атлант", "Интеллект-Сервис", "Инфософт", "Парус", "Авэр") строятся по другой схеме. Они предлагают как можно больше типовых бухгалтерских задач, алгоритмы решения которых не надо описывать на специальном макроязыке, но можно уточнять параметрически.
Этот тип программ менее универсален с точки зрения настройки, но более приближен к предметной области. Так, для настройки операции начисления износа основных средств не нужно записывать алгоритмы на макроязыке, а достаточно для каждого инвентарного объекта задать норму амортизации и счет отнесения износа; программа выполнит требуемый расчет, автоматически построив необходимые проводки на основе "зашитых" в код правил.
В этих системах изначально "овеществлено" бухгалтерских знаний и бухгалтерской технологии больше, чем в инструментальных системах. КПД использования таких программ неподготовленным бухгалтером в общем случае выше, чем при работе с "бухгалтерскими конструкторами". В этом смысле их можно считать более универсальными, чем инструментальные системы, поскольку они приспособлены для решения большего числа задач без необходимости сложной настройки, которая может оказаться бухгалтеру не по силам.
Однако наряду с несомненными достоинствами тиражные системы комплексной автоматизации обладают и определенными недостатками. Один из них - "усредненность" технологии обработки данных, вызванная желанием удовлетворить потребности как можно большего круга пользователей. Кроме того, ориентация на массовый тираж приводит к существенному "разбуханию" системы и появлению в ней функциональной избыточности.
МАКРОЯЗЫКИ КАК ОСОЗНАННАЯ НЕОБХОДИМОСТЬ
Даже при горячем желании разработчиков все возможные в жизни алгоритмы бухгалтерских расчетов "впихнуть" в комплексную программу не удается. А автоматизировать как можно больше задач хочется. Потому-то большинство тиражных "бухгалтерий" включают средства макропрограммирования.
Мы не будем обсуждать вопрос, на кого они рассчитаны, хотя точно можно сказать, что отнюдь не всем бухгалтерам "по зубам" написание мало-мальски содержательных макропрограмм. Речь о другом: встроенные в "бухгалтерии" языки программирования совершенно непохожи ни друг на друга, ни на те языки, к которыми привык программист.
Парадоксально, но факт: Visual Basic победно шествует по планете и сам по себе, и в специализированном виде в составе прикладных программ (даже, говорят, IBM уже поставляет с OS/2 Merlin какую-то его разновидность), а тут на тебе! - сколько "бухгалтерий", столько и языков.
Однако большинство этих языков все-таки неполны и либо не позволяют описать всего множества учетных задач и выходных форм, которые в природе существуют, либо для их описания приходится "вставать на уши". Поэтому разработчики наиболее тиражных систем автоматизации оперативного и бухгалтерского учета все чаще позиционируют свои новые продукты как инструментальные системы.
Например, фирма ДИЦ открыто говорит о пятой версии своего основного продукта - программе "Турбо-Бухгалтер" - как о системе программирования бухгалтерских задач, в которой есть все возможности для программирования, включая отладчик. "1С", хотя и не упоминает явно слов "система программирования", описывая свою новую систему "1С:Торговля", но даже невооруженным глазом видно, что это - типичный инструмент, среда для макропрограммирования специализированных задач.
(Окончание следует)
Евгений Шуремов
К Евгению Шуремову, доценту Финансовой академии, эксперту Центра исследований экономических систем "Бизнес-Программы-Сервис" можно обратиться по телефону: (095) 281-2443 или по адресу:
E-mail: root@arep.msk.su.
Даже при горячем желании разработчиков все возможные в жизни алгоритмы бухгалтерских расчетов "впихнуть" в комплексную программу не удается. Поэтому разработчики наиболее тиражных систем автоматизации оперативного и бухгалтерского учета все чаще позиционируют свои новые продукты как инструментальные системы.