Почему не стоит отвергать 1С как класс.

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



Вместо вступления.

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

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

Для единой терминологии (что бы бухгалтер понял программиста).

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

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

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

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

Стандартизация, это то, чего не хватает разработчикам, например, на VB или Delphi Что подразумевается под термином "стандартизована"? В первую очередь то, что программисту, ведущему разработку на 1С никогда не придет в голову обЪяснять, например, бухгалтеру, как устроены базы данных. Он попросту изолирован от них. Он будет говорить с этим бухгалтером на вполне понятном им обоим языке, используя термины типа "документ", "счет" или "реквизит", а не "таблица" или "поле". Эта, на первый взгляд, несущественная деталь, на самом деле является самой важной для оперативной системы, т.к. она позволяет максимально быстро найти взаимопонимание между программистами и теми для кого они делают свою работу. И, соответственно, позволяет очень быстро согласовать постановку задачи.

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

Еще один нюанс, связанный с взаимопониманием и с языком на котором программисты общаются с менеджерами и бухгалтерами. Очень часто у окружающих, складывается впечатление, что программист - это волшебник, который может сделать ВСЕ, причем ему это ничего не стоит (он ведь волшебник). К чему это приводит? К тому, что рано или поздно, пользователи перестают ставить задачи на содержательном уровне, а все общение сводится к "хочу, не знаю как". В результате программисту приходится становиться и бухгалтером и специалистом по складскому учету и менеджером по кадрам: Такая ситуация типична! Приводит она к тому, что к программистам зачастую предЪявляются высочайшие требования, но адекватно его работу не оценивают. Корень этой проблемы кроется в том, что у окружающих действительно складывается впечатление о том, что все делается легко и ничего не стоит. А происходит это из-за того, что программист не может "показать" свою работу, выразить ее количественно. Ведь любой менеджер может сказать: "Я продал N товаров", бухгалтер может сказать: "Я перевел N денег, и работаю с M клиентов".

При чем тут 1С, спросите Вы. А вот при чем: сам способ разработки в 1С позволяет программисту наглядно показать то, КАК ОН РАБОТАЕТ.

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


љљљЖурнал = СоздатьОбЪект("Документ");
љљљЖурнал.ВыбратьДокументы(:);
љљљПока Журнал.ПолучитьДокументы()=1 цикл
љљљљљљ Документ = Журнал.ТекущийДокумент();
љљљљљљ Сумма = Документ.Сумма;
љљљљљљ // Тут нужен расчет.
љљљКонецЦикла;

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

Интересно, что произошло дальше? А дальше, программист и коммерческий директор, на бумаге дописали алгоритм типа:


љљљПроцент = Документ.Клиент.Процент;
љљљБазоваяСумма = Сумма * Процент;
љљљЗарплата = Зарплата + БазоваяСумма * 0.2;

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

Потому, что это стандарт (уменьшение затрат на обучение).

1С - это стандарт системы учета "де-факто", по своей распространенности в России, я ставлю его в один ряд с MS Office.

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

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

Даже если ваша конфигурация 1С в корне отличается от всего, что человек видел до сих пор, у него не будет шока и он будет достаточно уверенно входить в курс дела, в знакомом ему интерфейсе и опираясь на известные ему термины. Запомните: пользователь видит и оценивает программу только со стороны интерфейса!

Потому, что программирование дешевле (уменьшение затрат на сопровождение).

Есть такой термин "Стоимость владения". Я не буду вдаваться в его описание, т.к. на эту тему сломано довольно много копий в среде специалистов по ИТ, и это займет много времени. В общих словах - это сумма ресурсов (времени, денег, специалистов), которую нужно будет платить регулярно, в случае, если вы чем то владеете.

Проще всего, проиллюстрировать стоимость владения на примере автомобиля: Если вы владеете ВАЗ 2103, то вы знаете, что Вам придется в течение года, точно потратить N у.е., т.к. нужно будет точно поменять колодки и масло, и пройти техосмотр. Если же Вы владеете автомобилем BMW, то Вы знаете, что в течении года, Вам придется потратить уже M у.е., т.к. точно так же нужно будет заменить колодки, масло и пройти техосмотр. M и N в данном примере, и есть стоимость владения, в данном случае, владения автомобилем. Понятно, что M > N , поэтому, приобретая автомобиль, Вы будете опираться не только на его стоимость, но и на стоимость владения им. Понятно, что BMW лучше, но даже при одинаковой стоимости покупки (в жизни всякое бывает), многие, все же выберут "копейку".

Самое интересное, что стоимость владения имеют не только автомобили, а практически все, чем можно владеть в той или иной степени. Причем природа стоимости владения такова, что как правило, она тем выше, чем более сложно устройство и менее распространено то, чем Вы владеете.

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

Для иллюстрации приведу один пример.

Однажды получилось так, что мне нужно было срочно обеспечить серию отчетности, не сложной по своей сути, но требующей значительного времени, а все люди были заняты, и отвлекать их от текущей работы было нельзя. Выход был найден крайне простой: по ФИДО был найден программист 1С, который за несколько дней сделал, то, что было необходимо, стоило это порядка 1500 руб. И дело тут даже не в дешевизне, дело в том, что если бы мне нужен был бы некто, кто смог бы сделать то же самое, предположим на Delphi, то сначала, на этого бедного программиста пришлось бы потратить уйму времени для того, что бы обЪяснить ему структуру данных, либо завалить горой технической документации (которой, как правило нет). И стоило бы это, скорее всего дороже.

И в завершении еще одно лирическое отступление.

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

То, что Вы разберетесь в том, как поставить Oracle Server и заставить его работать, я не сомневаюсь, но в том, что у руководителя этой Компании возникнут значительный проблемы и затраты из-за того, что его системный администратор будет тратить огромное количество времени на постижение администрирования Oracle - я так же не сомневаюсь.

Документация Oracle состоит из нескольких книжек, самая толстая из них - это DBA Guide, которая почти целиком посвящена науке под названием "Tuning Oracle Server". Следует отметить, что специалистов, которые могут полноценно использовать Oracle сервер в России единицы, а на западе, это одни из самых высокооплачиваемых специалистов в области ИТ. Что касается MS SQL Server, то при всей своей "плохости", он вполне способен "тянуть" на себе данные национального масштаба, требуя несравненно (в десятки раз) меньших затрат на администрирование.

Потому, что можно развивать (увеличение скорости разработки).

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

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

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

Потому, что половина работы уже сделана.

Я не буду повторять все то, что написано в предыдущем разделе, но скажу только одно: При использовании 1С, действительно не боит голова о логической целостности и структуре данных, а это очень много значит!

И еще одна капля масла в огонь. Я думаю, что те, кто пытался самостоятельно разработать нечто, преднозначенное для обнена данными, те, кто проводил бессонные ночи над решением головоломки "почему туда ушло, а тут удалилось?", "почему же, все таки склад не идет?", поймут меня. 1С имеет в своем составе ГОТОВЫЙ, РАБОТАЮЩИЙ и ПРОВЕРЕННЫЙ ВРЕМЕНЕМ механизм обмена данными. Причем, опираясь на свой довольно обширный опыт, могу сказать, что механизм этот оказался одним из наиболее эффективных. Кроме того, для тех, кому это интересно, скажу, что он так же поддается развитию.



Комментарии

7
  • Хранитель_врат
    Очень хорошая статья. Примем как инструмент маркетинга.
  • Хранитель_врат
    Поставил бы даже 10! Полностью согласен, за исключением мелочи - при покупке ВАЗ 2103 мне придется менять не только колодки и масло, но и до фига всего другого. Так что сумма N может быть гораздо боьше суммы M.