Архивы: по дате | по разделам | по авторам

"1C" - компании и продукту

Архив
автор : Андрей Акопянц   26.01.1999

Все началось с того, что Анатолий Левенчук обратился ко мне с вопросом, могу ли я выяснить, что собою представляют продукты "1С" и каков их технологический уровень.

Андрей Акопянц - консультант по информационным технологиям и автоматизации бизнесс-процессов, в настоящее время - директор Института коммерческой инженерии (www.ice.ru). Биография - www.ice.ru/libertarium/people/akopyants.html.


Все началось с того, что Анатолий Левенчук обратился ко мне с вопросом, могу ли я выяснить, что собою представляют продукты "1С" и каков их технологический уровень.


   Далее он пояснил, что этот заказ исходит от Евгения Козловского, которому хочется получить объективную оценку от достаточно компетентного и не ангажированного человека, в частности, для того, чтобы определить редакционную политику по отношению к "1С".

   Я начал вспоминать, что же я знаю об "1С". Вспомнил, что мои друзья, занимавшиеся бухгалтерией, отзывались об "1С:Бухгалтерии" весьма пренебрежительно; правда, это было году в 92-93-м. Еще я вспомнил, что мне недавно пришлось столкнуться в моей предметной области (автоматизация деятельности на ныне почившем рынке ценных бумаг) с программой, сделанной на базе чего-то "1С". Эта программа, хотя и не блистала находками, была вполне добротной, не хуже многих других. При этом ее разработчики на многие вопросы типа "А можно сделать вот так и учесть еще и это?" отвечали: "Сейчас сделаем" и порывались прямо тут же все сделать.

   Последнее воспоминание как-то не вязалось с первым, и мне самому стало любопытно - что же это такое, "1С" сегодня. И вообще, почему "1С"? На сайте "1С" (www.1c.ru) все оказалось еще любопытнее, чем я думал.

   Во-первых, впечатляли количественные показатели деятельности компании:   
  • свыше 200 тыс. зарегистрированных пользователей собственных программ "1С";   
  • свыше 1500 постоянных партнеров-продавцов (дилеров) и внедренцев (франчайзеров);   
  • среднемесячный оборот, превышающий 2 млн. долларов [1], из него более половины - на продаже продуктов производства "1С".

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

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

     
       В конце лета - начале осени "Компьютерра" печатала так называемые желтые страницы от фирмы "1С". Поначалу, хоть они и отбивались от остальных материалов журнала специальным желтым цветом, никакой марочки, указывающей на рекламный характер этих публикаций, не было. Такие публикации, во-первых, противоречили "Редакционной политике" (в которой как раз после этого и появилась добавка о "Специальной рекламной секции"), во-вторых - вызывали раздражение многих читателей, чему свидетельством были их письма. Речь не шла о том, что продукты "1С" недостойны освещаться на страницах "Компьютеры", - просто такое их позиционирование явно противоречило месту, ими занимаемому в мировом хард-софт-процессе.
       На одной из осенних презентаций мы встретились с главой "1С" Борисом Нуралиевым, с которым, хоть не особо близко, но давно и приятно знакомы, и довольно долго обсуждали ситуацию. Кончилось тем, что Борис, по моему совету, поместил на "желтых страницах" анкету, призванную прояснить отношение читателей нашего журнала к такой доле его объема, посвященной "1С", а я пообещал Борису найти и направить к нему независимого эксперта, который дал бы оценку не только очевидному бизнес-успеху фирмы, но и - по гамбургскому счету, без скидок, - программистскому качеству продукции фирмы. А результат экспертизы - непременно опубликовать.
       В качестве эксперта был выбран Андрей Акопянц из ИКИ, человек, очень неплохо разбирающийся в предмете и никогда никаким боком с "1С" не связанный. Присланная спустя пару недель статья г-на Акопянца оценивала продукцию "1С" весьма высоко, но не подходила к немедленной публикации из-за объема, который никак не хотелось сокращать. (Уверяю читателей, что, если бы результат экспертизы был прямо противоположным, и такая статья непременно увидела бы свет на наших страницах; другое дело, что приятное публиковать всегда более приятно, чем неприятное.)
       Почти автоматически возникла идея положить статью Андрея в основу давно задуманной, но все как-то не реализовывавшейся темы номера про лидеров отечественного программирования, - и вот, первая часть темы "Родина слонов", наконец предлагается читателю. Не было бы, как говорится, счастья, да несчастье помогло.
    Евгений Козловский

       То есть по российским меркам компанию "1С" надлежит признать не просто успешной, а суперуспешной. Надо сказать, я не верю и никогда не верил в случайный успех, поэтому мне хотелось понять, как и благодаря чему достигнут такой результат. Этой информации мне на сайте, разумеется, найти не удалось, поэтому я от имени "Компьютерры" напросился взять интервью у бессменного директора и бизнес-идеолога компании Бориса Нуралиева.

       Речь пошла о том, "как все начиналось". А начиналось оно, как выяснилось, совсем не на пустом месте.

       Немного истории
       К началу перестройки Борис Нуралиев был одним из ведущих специалистов в системе Центрального статистического управления - сердца и мозга плановой системы управления народным хозяйством. Это было огромное ведомство, насчитывающее свыше 300 тыс. сотрудников (из которых большая часть была программистами) и имеющее ряд громадных вычислительных центров, набитых самой современной техникой.

       В середине 80-х он возглавил отдел, занимавшийся разработкой системы, позволяющей извлекать информацию из огромных баз данных ЦСУ с помощью запросов на псевдоестественном языке, причем с возможностями телекоммуникационного доступа. Система была создана и использовалась, в частности, для информационной поддержки исторического Второго съезда народных депутатов.

       Затем система была адаптирована для персональных компьютеров. Гарантировалось, что система дает ответ не более чем за одну секунду, поэтому она и была названа "1С" (секунда), точнее, "1С система информационного обслуживания". Позднее по имени системы была названа и компания (а вовсе не затем, чтобы, как говорят злые языки, первой стоять во всех алфавитных списках).

       Для своего времени этот продукт был супертехнологичным. Он не только умел давать ответ за секунду, но мог работать через плохие и разные линии связи (например, телеграфные), что было очень актуально в начале 90-х годов.

       Вспомним те времена. Система централизованного управления товаропотоками была разрушена, и как грибы стали возникать товарные биржи, брокерские конторы и всевозможные другие посреднические организации. Поскольку все посредники на самом деле торговали информацией, то идея организации телекоммуникационных баз с товарной информацией овладела достаточно большим количеством людей: разработка "1С" оказалась востребована и легла в основу нескольких телекоммуникационных коммерческих сетей, из которых самой известной была ИКС МИР.

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

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

    Борис Нуралиев: В феврале 1991 года закупил контейнер коробок с "Лотусом". Мне все говорили, что я сошел с ума, что я его не продам... На таможне решили, что это стиральный порошок, поэтому его пришлось специально охранять, чтобы не разворовали... Мы стали собирать наших партнеров, проводили для них семинары, учили, как продавать. И то, что мне удалось запустить продажу "Лотуса", я считаю самым большим своим успехом.

       В качестве продукта для дистрибуции был выбран пакет Lotus 1-2-3, который уже был суперпопулярен на Западе и малоизвестен в России (как и сам класс электронных таблиц).

       За 1991 год было продано 7500 коробок, и сеть заработала: бизнес более чем сотни организаций оказался завязанным на "1С", которая помогала им зарабатывать деньги.

       Следующий судьбоносный шаг компания сделала весной 1992 года. Проанализировав, для чего используется покупателями "Лотус", Нуралиев принимает решение изготовить бухгалтерскую программу и запустить ее в дистрибьюторскую сеть. При этом рынок бухгалтерских программ был уже достаточно насыщен - почти все нынешние программы ("Парус", "Инфин", "Инфобухгалтер", "ТурбоБухгалтер", "Финансы без проблем" и др.) уже были на рынке. Однако ни у одной из фирм-изготовителей и близко не было такой сбытовой сети, как у "1С", и это давало шанс.

       Программу разработал брат Бориса, Сергей Нуралиев, который тогда занимался разработкой учетных систем для разных больших организаций (он и по сей день руководит разработкой продуктовой линии "1С:Предприятие").

    Борис Нуралиев: На рынке не было реально настраиваемых коробочных продуктов, приспособленных к продаже через дилерскую сеть. Поэтому важна была скорость. Задание я выдал 16 февраля, а первые продажи пошли 6 апреля - на "Комтеке", где мы ее выставили на своем стенде. Потом мы долго уговаривали наших партнеров ее продавать. Они не хотели. В конце концов, уговорили.

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

       Модель бизнеса
       Таким образом, была сформирована уникальная не только в России, но и в мире модель бизнеса, при которой "1С" обслуживает на самом деле не конечных покупателей, а своих партнеров.

       Целевой аудиторией для компании "1С" являются ее партнеры.

       Поэтому у "1С" совсем другие приоритеты и в маркетинге, и в требованиях к продуктам и их ассортименту. Например, компании не очень интересен рынок крупных корпоративных заказчиков.

       Ввиду особой структуры бизнеса сравнивать "1С" с монолитной компанией, самостоятельно сбывающей свою продукцию, некорректно. Средний франчайзер насчитывает примерно двадцать сотрудников (из которых семеро - программисты-внедренцы, а шестеро - продавцы). Поэтому если рассматривать как единую компанию всю сеть "1С", то оказывается, что это - мегафирма с оборотом свыше 200 млн. долларов в год и численностью персонала свыше 30 тыс. человек, представленная в более чем 300 городах России. Попробуй с такой поконкурируй!

    Борис Нуралиев о РОЛИ ДИЛЕРСКОЙ СЕТИ: Пусть я умнее их, ну, скажем, в два раза... Но ведь их 1500! То есть, кроме моей головы, над вопросами, что нужно и как продать думают еще 1500 директоров. - А результатами делятся? - Пускай даже и не делятся... Хотя некоторые делятся.

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

    Борис Нуралиев О работе с дилерами: IBM очень плохо работает с дилерами. Например, вот этот компьютер (показывает последний Think Pad) стоит 10 тысяч долларов, но в Москве его купить нельзя. Потому что IBM на новую машину устанавливает запредельную цену, снимает сливки, а потом снижает ее со скоростью 100-200 долларов в неделю. Какой дилер будет держать у себя на складе технику, которая дешевеет с такой скоростью? Поэтому у нас Toshiba, которая нормально работает с дилерами и представлена гораздо шире...

       Потребностями же партнеров, как правило, вызвано расширение продуктовой линейки: они хотят все, что им нужно для бизнеса, покупать в одном месте. Так, например, недавно появились "1С"-версии популярных баз данных "Гарант" и "Кодекс", распространяемые на CD-ROM, по цене, сравнимой со стоимостью месячного обновления у самого "Гаранта".

       Ложка дегтя
       К сожалению, ориентация на партнеров как на целевую аудиторию иногда выходит боком для конечного пользователя. Один мой знакомый (будем называть его Игорь), рассказал мне следующую историю.

       В феврале или марте прошлого года он купил в Госкомстате пакет "1C:Первичные документы" - сборник утвержденных форм со средствами их заполнения. После этого с удивлением выяснил, что использовать по прямому назначению эту программу невозможно, так как во многие поля не помещаются те реквизиты, которые там должны быть (например расчетный счет). Всякие мелкие неудобства, например то, что программа не рассчитывала итоги и не заполняла сумму прописью (то есть все поля нужно было заполнять вручную), были уже менее существенными.

    Борис Нуралиев О КРУПНЫХ КОРПОРАТИВНЫХ ПРИЛОЖЕНИЯХ: Бывали прецеденты, когда наши франчайзеры побеждали в тендерах "Галактику"... Я знаю пример, когда организация выкинула R/3 (SAP) и перешла на "1С:Предприятие". Но деньги за это все равно получаем не мы - делают это все наши партнеры, которые покупают у нас одну коробку, независимо от того, автоматизируют они крупного или мелкого заказчика.

       "Единственное, для чего ее можно было использовать, - сказал Игорь, - это для распечатки бланков, а после заполнять их вручную. Но и это оказалось неудобно, так как поля очень маленькие и писать приходилось микроскопическими буквами".

       Но самое интересное началось потом. Через месяц после установки программа отказалась работать, сославшись на какую-то защиту. Игорь попытался дозвониться по телефону "горячей линии" "1С". Линия оказалась слишком горячей - это ему не удалось. Через Web-сайт компании он нашел не столь горячий телефон, где ему, не объяснив, что, собственно, произошло, предложили приехать. При этом рекомендовали привести с собой дискету, так как "у нас вы купите дискету за 10 тысяч".

       Естественно, никуда он не поехал. Кончилось все тем, что он запрограммировал все нужные формы на Access, и они уж все вычисляли и печатали, как надо.

       Наверное, продукт был сырой, и купили его в неправильном месте, где не могли помочь с консультациями, но самой истории я верю.

       Собственно о продукте
       Говорить мы будем о том, что называется "1С:Предприятие" версия 7.5 - ведущем продукте компании.

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

       Программы для этой среды называются Конфигурациями. Продается "1С:Предприятие" в основном с уже готовыми Конфигурациями, имеющими собственные имена (например "1С:Зарплата и Кадры"), как правило, с возможностью их настройки и модификации силами самих пользователей или внедренцев-франчайзеров.

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

       Что касается качества прикладных решений, сделанных на "1С", имеется ряд косвенных, но достаточно убедительных аргументов в пользу того, что со своими задачами продукт справляется.
       1) Более половины продаж продуктов семейства "1С" идут как чистые продажи - без дополнительного программирования. Это дает основания полагать, что пользователи какое-то удовлетворение получают, иначе бы не покупали.
       2) Сама компания "1С" свой оперативный учет (немаленький!) и бухгалтерию ведет на системе "1С". Правда, над ее настройкой работали лучшие специалисты (авторы системы), но ведь настроить ее удалось! По словам разработчиков, система была реализована за две недели - неделя на торговлю, неделя на бухгалтерию - и далее постоянно совершенствуется. И на мои вопросы относительно статистики продаж и прочего с помощью этой системы Борис Нуралиев отвечал в реальном времени.
       3) Более года назад "1С:Бухгалтерия" прошла сертификацию в Минфине на соответствие положению о бухгалтерском учете в Российской федерации. Можно спорить о том, что это реально означает, но остается фактом, что ни одна другая российская бухгалтерская программа такого сертификата не имеет.

       Далее мы будем говорить об "1С" как инструментальной среде. О ней можно говорить в двух аспектах.   
  • Собственно инструментальной среде и идеях, в нее заложенных.   
  • О прикладных (бизнес-ориентированных) концепциях и их отражении в "объектной модели" "1C".

       Платформа
       "1С" - это 32-разрядное приложение, использующее для хранения данных либо DBF-файлы, либо MS SQL. "1С" умеет использовать стандартные для Microsoft интерфейсы межзадачных коммуникаций (OLE, DDE) для общения с другими задачами. "1C" работает с распределенными базами данных и имеет собственные гибкие механизмы настройки правил репликации (может использовать любые виды транспорта данных - вплоть до переноса на дискетах).

       Написано все это на Visual C++ и имеет совокупный объем свыше 500 тыс. строк кода. В систему встроен собственный язык программирования, содержащий большое количество встроенных функций и допускающий подключение внешних DLL для реализации функций недостающих.

       Единственное, в чем можно было бы пытаться упрекнуть "1С", - стремлении все запрограммировать самим. Но надо сказать, что в процессе беседы мне не удалось обнаружить ни одного примера, где действительно без проблем можно было бы использовать стандартные компоненты.

       Например, использовать VBA в качестве встроенного языка мешает тот факт, что стандартная плавающая арифметика не подходит для финансовых приложений, и в "1С" своя реализация арифметики.

       Вероятно, можно было бы пытаться реализовать "1С" как набор компонентов для той же Delphi - возможно, это было бы удобно профессиональным разработчикам. Но это сильно подняло бы порог сложности для тех пользователей, которым нужно чуть-чуть "подкрутить" готовое приложение, а таких большинство.

    Комментарий Сергея Нуралиева: Я бы уточнил, что, как я считаю, есть квалификация чистого программиста и квалификация проектировщика - специалиста по автоматизации экономических процессов, так последнее на "1С", может, и полезнее совершенствовать, так как уделяется больше внимания предметной области, а не окнам, кнопкам и т. д.

       Как среда разработки "1С" не очень открыта "вниз" - не содержит механизмов, позволяющих программировать очень тонкие детали поведения и интерфейса своих объектов. Но этого, как правило, и не требуется в реальных бизнес-приложениях. По крайней мере, все высокоуровневые CASE-системы страдают тем же: ты получаешь приложение быстро, но выглядит оно и ведет себя так, как принято в данном CASE.

       При этом "1С"-приложения выглядят симпатичнее, чем в других высокоуровневых CASE, с которыми мне приходилось общаться.

       Говорят, в одной из фидошных дискуссий, где тусуются вольные автоматизаторы, обсуждался вопрос, на чем лучше делать приложения - на Delphi или на "1С". Ответ местного гуру, завершивший дискуссию, звучал так: "Если хотите поднять свою квалификацию - пишите на Delphi. Если хотите заработать деньги - на "1С"".

       Прикладные концепции
       Любая учетная система имеет как минимум четыре компонента:   
  • систему хранения, поиска и редактирования условно-постоянной информации (справочники);   
  • систему ввода и фиксации событий внешнего мира (документов, хозяйственных операций и др.), влияющих на состояние системы;   
  • систему работы с динамической информацией (остатки и проводки), которую я буду называть машиной транзакций;   
  • генератор отчетов, позволяющий получать разнообразные отчеты как на основе динамических данных и истории их изменения, так и по справочной информации и истории событий.

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

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

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

       Справочники имеют стандартный интерфейс, которого, впрочем, должно почти всегда хватать. Создаются справочники с помощью визуального редактора, причем выглядит это все достаточно просто (впрочем, в "1С" все, что я видел, выглядело достаточно просто).

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

       Реквизиты документов могут быть либо встроенных типов, либо прикладных - объекты типа справочников, другие типы документов. Реквизиты также могут быть вычислимыми.

       Документы могут быть связаны друг с другом - есть понятие подчиненного документа, сформированного на основании другого документа и др., связанные документы могут образовывать целые деревья, например: счет - накладные, кассовые ордера.

       Типы документов также создаются с помощью визуального редактора, при этом описывается набор реквизитов и создается экранная форма документа. Заметим, что всю необходимую работу с базой данных - создание таблиц и пр. - "1С" делает сама.

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

       Таким образом, документ - это чуть более сложная (за счет табличной части) конструкция, чем привычная всем разработчикам связка "Таблица базы данных+Экранная форма+Грид (экранная таблица)", но более простая, чем произвольно настраиваемая форма в той же Delphi. Мне этот компромисс представляется вполне разумным.

       Документ может находиться в двух состояниях - введенном и проведенном. При его проведении выполняется соответствующий документу алгоритм, который, например, формирует и выполняет проводки.

       План счетов и проводки. Я не бухгалтер и не очень сведущ в бухгалтерском учете, но мне показалось, что ничего более гибкого придумать уже невозможно. На каждом счете может быть три остатка: сумма, количество, валютная сумма - и это все в разрезе многоуровневой иерархии субсчетов и многомерной аналитики, а также многовалютности и деления на отдельные балансы. У каждого счета может быть свой набор (до пяти) аналитических параметров, причем на каждом из этих параметров может быть установлена иерархия, позволяющая консолидировать остатки по уровням аналитики, много планов счетов могут вестись одновременно и др.

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

       Проводки в "1С" выглядят традиционно, причем имеется возможность непосредственного ввода проводок в обход документов. Кроме этого, есть понятие "типовая операция", описывающее набор проводок с указаниями о повторяющихся параметрах и счетах. При вводе операции появляется набор проводок, в которых пользователь заполняет пустые поля. По мере ввода переменных параметров они автоматически вставляются во все те проводки, куда они должны быть сдублированы.

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

       Регистры. Регистры - это еще одна разновидность машины транзакций, реализованная в "1С". Потребность в них была вызвана, вероятно, тем, что объем оперативного учета существенно больше, чем бухгалтерского, а план счетов - довольно неэффективный механизм из-за своей динамичности: можно на лету добавлять новые счета, разные счета могут иметь разную аналитику и др.

       Кроме того, для оперативного учета зачастую нужно более пяти измерений, а именно пятью ограничено число аналитических параметров в планах счетов.

       Регистр очень похож на то, что сейчас принято называть многомерной базой данных. Заметим, что это понятие не было известно разработчикам из "1С", проектировавшим этот объект три года назад. Они неожиданно для себя выяснили, что находятся в русле самых передовых мировых тенденций и, как мольеровский персонаж, "всю жизнь говорили прозой".

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

     
       Краткая аннотация для не знакомых с понятием olap
       Отец реляционной алгебры Кодд в начале 90-х выдвинул новую идеологию работы с данными, названную им OLAP (on-line analytical processing), причем моделью данных для поддержки OLAP является многомерный куб, где на измерениях определены некоторые иерархии, а в клетках этого куба находятся числовые значения.
       Например, рынок ценных бумаг хорошо описывается измерениями Инструменты, Торговые площадки, Дата-время и Параметр (цена спроса, цена предложения, цена последней сделки, объем и др.), а значение параметра находится на пересечении этих измерений. Единичный факт (точка) выглядит, например, как "Обыкновенные акции Мосэнерго на РТС имели 8 августа 1998 год в 15:00:00 bid (цену покупки) 1 цент".
       Операции извлечения данных из такого куба описываются в терминах поворотов, срезов и иерархического "схлопывания" измерений с агрегированием значений (суммирование, взятие среднего и др.). Эта метафора хорошо ложится на табличную организацию пользовательского интерфейса.
       Имеется класс программ для поддержки такой работы с данными. Они обычно используются для создания так называемых хранилищ данных (наиболее известный у нас в стране программный продукт этого класса - Oracle Express Server).

       Занесение данных в регистры происходит только программным путем - в основном, из алгоритмов, соответствующих документам.

       Расчет. Расчет - это еще одна разновидность машины транзакций в "1С". Как она работает и какими понятиями оперирует, мне детально разобраться не удалось, понял я только, что это некий способ формализованного описания задач типа зарплаты, где есть очень сложная логика начислений и удержаний, данные для расчетов накапливаются непрерывно, а сами расчеты происходят с определенной периодичностью.

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

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

       Генератор отчетов. Отчет, как обычно, включает в себя три компонента:   
  • диалог с запросом параметров, происходящий перед генерацией отчета;   
  • шаблон отчета;   
  • алгоритм формирования отчета.

       Все это (кроме алгоритма) описывается в визуальном редакторе. Процесс рисования отчета выглядел довольно понятно, а алгоритм (запрос) был сформирован с помощью некоего Wizard'a. Потом появился текст запроса, который можно было поправить руками.

       Приятно удивило то, что средства описания отчетов позволяют штатным образом описывать отчеты, которые могут "расти" не только вниз, но и вправо.

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

       Вообще, кажется, что "1С" честный инструмент, в том смысле, что все системы на его базе действительно сделаны путем программирования на "1С", а не на Си.

       Скажем, Delphi 2 в этом смысле не была честным инструментом. Несмотря на то, что утверждалось, будто стандартная библиотека компонентов позволяет решать все задачи работы с базой данных, утилита Database Desktop (административная утилита создания и работа с таблицами), не была написана на Delphi, и ряд ее свойств не удается воспроизвести с помощью стандартных средств.

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

       В "1С" нет функций контроля исполнения. Современной тенденцией является интеграция учетных систем и систем WorkFlow, которая позволяет, например, не просто отразить проведенный платеж, но и заранее зафиксировать, что платеж должен быть проведен тогда-то, назначить ответственного, напомнить ему об этом в срок, помочь сформировать документ и только после этого отразить проведенный платеж.

       На концептуальном уровне такие механизмы (понятия задачи, исполнителя, рабочего листа, маршрута, ожидаемого события и др.) в "1С" отсутствуют. WorkFlow подразумевает существенно более сложный и программируемый жизненный цикл документа, чем принято в "1С" (ввод/исполнение).

       Имеется, правда, отдельный продукт "1С:Документооборот", который связан с "1С:Предприятие" только общей фирмой-изготовителем.

       Конечно, подобная система может быть запрограммирована на "1С", но для этого потребуется разделить единый с точки зрения WorkFlow документ на много отдельных, но связанных документов "1С". Для "придания" системе "инициативы" имеются средства, позволяющие, например, реализовать обработку, которая будет вызываться не нажатием клавиш, а в определенное время и по некоторым условиям.

       В "1С" имеется довольно распространенная, но неприятная проблема при внесении изменений задним числом. В этом случае появляется два понятия прошлого - логическое и физическое. Логическое прошлое - это прошлое с высоты нашего сегодняшнего знания о нем. Физическое - то, каким оно было в соответствующий момент времени.

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

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

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

       "1С" в интерьере
       После того как основной материал статьи был уже написан, оба ее вдохновителя (Козловский и Левенчук) настоятельно попросили меня попытаться обозначить место продукта "1С" в общемировом контексте. Я долго упирался, так как оная задача показалась неподъемной, с одной стороны, и неблагодарной - с другой.

       Безусловно, "1С" не имеет смысла сравнивать с тяжеловесами рынка систем управления предприятиями, такими, как SAP R/3, BAAN и др. Для транснациональной корпорации с десятками филиалов и десятками тысяч рабочих мест "1С" вряд ли подойдет: в таких условиях не выдержит тот самый MS SQL, на котором работает наиболее продвинутая версия "1С".

       Хотя концептуально R/3 устроена так же, как "1С", - она имеет относительно небольшое исполнительное ядро и язык программирования (ABAP), на котором описывается вся прикладная функциональность.

       "1С" имеет смысл сравнивать скорее с пакетами среднего уровня, такими как Platinum, Scala, AccPack. Я и мои знакомые имели опыт работы с DOS-версиями этих пакетов, но они непрерывно развиваются и совершенствуются, поэтому сказать что-либо определенное об их современных версиях оказалось трудно.

       Я предпринял некие розыскные действия и нашел Web-сайт для выбирающих учетный пакет (www.excelco.com). Оказалось, что этих пакетов на рынке свыше трех тысяч. В открытом доступе там оказалось довольно мало детальной информации (сайт продает свою базу данных), но некоторый сравнительный анализ клиент-серверных версий бухгалтерских пакетов мне найти удалось.

       Для содержательного сравнения их по прикладной функциональности с готовыми конфигурациями "1С:Предприятие" моей квалификации не хватило: я не знаю специфики многих приложений, по наличию/отсутствию которых, собственно, и сравнивались пакеты на этом сайте. Тем более сложной задачей является ответ на вопрос: а можно ли все это запрограммировать на "1С".

       По используемой платформе "1С" выглядит вполне современно. Дело в том, что большинство этих пакетов (их клиент-серверных версий) - выходцы из мира Unix. Поэтому почти все они успели переползти на MS SQL, но практически нет пакетов, поддерживающих Microsoft-интерфейсы межзадачного взаимодействия - MAPI и OLE.

       На самый же интересный вопрос, есть ли пакеты среднего уровня, построенные по той же идеологии, что "1С", мне ответа найти не удалось. В DOS-версиях пакетов, с которыми приходилось иметь дело, со средствами расширения было совсем плохо. Пара новых пакетов, описания которых я просмотрел, содержат довольно мощные средства расширения, но последние концептуально являются "нашлепками" и не вписаны органически в концепцию пакета.

       Путем опроса знакомых мне, вроде, удалось составить представление о том, как обстоят дела в последней версии одного из самых популярных в России пакетов - Platinum (версия SQL для Windows). Этот пакет просто написан на Visual Basic for Windows, и авторизованным дистрибьюторам доступны его исходные тексты. Насколько я понял, средств расширения, более простых, чем переделка/дополнение исходных текстов, там нет. Похоже, что с финансовой арифметикой пакет работает просто с помощью стандартного типа Double. К чему это приводит - известно. Наша бухгалтерия ох как любит копейки считать...

       Закончу я этот раздел пересказом фрагментов статей помещенных на указанном выше сайте (Accounting Software Selection Users Guide: www.excelco.com/chewnsel.htm, How to Choose a System: www.excelco.com/u_pickem.htm) о выборе учетных пакетов.

       Авторы в один голос пишут о том, что рынок учетных программ очень сильно сегментирован и невозможно найти консультанта, который знает его достаточно широко: все консультанты имеют узкую специализацию.

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

       При этом нужно скептически относиться к тому, что говорят другие, - с пакетом работать вам...

       Применительно к "1С" совет о тщательном выборе пакета я бы трансформировал так: тщательно выбирайте франчайзера, который будет ставить вам пакет, убедитесь, что он понимает, что вам нужно, и берется это все настроить. Желательно зафиксировать требования письменно (в виде технического задания), чтобы были основания не платить денег в случае, если вас что-то не устраивает.

       Благо, франчайзеров у "1С" достаточно много - список их по городам можно найти на сайте (www.1c.ru).

    Борис Нуралиев Об ОГРАНИЧЕННОСТИ РЫНКА: Ну, что вы: В России свыше двух миллионов предприятий сдают отчетность в налоговую инспекцию. Из них миллион - наши потенциальные клиенты. Так что есть куда расти.

       Вместо эпилога
       На вопрос о дальнейших направлениях совершенствования продуктов и о новых продуктовых линиях мне отвечать отказались. "Мы никогда не объявляем наших планов заранее, - сказал Борис Нуралиев. - Сделаем - тогда расскажем". Но мнение о будущем компании у него достаточно оптимистичное.



    Борис Нуралиев О НЫНЕШНИХ ТРУДНЫХ ВРЕМЕНАХ: Мне не страшно: Я могу спокойно просидеть и год, и два, ничего не продавая. У меня фонд заработной платы - не более 10-12% от оборота, а так - какие еще затраты? Денег на развитие мне хватает.



    1 (обратно к тексту) - Объем продаж "1С" в 1998 году составил 17 млн. долларов.



  • © ООО "Компьютерра-Онлайн", 1997-2024
    При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.