***
Когда Апач снова заглянул в кабинет Битрикса, он обнаружил брата с сестрой в полной прострации. 1С сидела на диване и потирала виски, невидящим взором уставившись в пол. — Семь баз!.. — нетвёрдым голосом повторяла она. — Семь! Разных! Баз!.. Какой наркоман это придумал? Ведь можно было... Эх... Битрикс медленно крутился на своём офисном кресле, откинувшись на спинку и разглядывая потолок. — Сложный клиент? — понимающе поинтересовался Апач. — Не то слово, — кивнул Битрикс. — Тебе, если что, тоже от него достанется. — Давай откажемся, — твёрдо сказала 1С, вскинув голову. — Ну его к чёрту. Честно, я в гробу видала разбираться, что там накреативили авторы «уникального решения». И, кстати, на этих самых авторов в гробу я бы тоже посмотрела... — Лучше желать им долгих лет жизни, — строго сказал Битрикс. — Тогда есть шанс, что клиент всё-таки с ними помирится и не будет пытаться перенести свой зоопарк на новые программные продукты. Апач взял стул, сел на него верхом и решительно сказал: — А теперь рассказывайте с самого начала.***
История умалчивает, в какой момент клиент пришёл к выводу, что заказать уникальную разработку будет лучше, чем воспользоваться типовым решением. Его бизнес — сеть магазинов — творческих решений не требовал, но, видимо, душа требовала понтов. Учитывая то, что больших денег у него не водилось, он нанял команду студентов, которые, гордо тряся дипломами, смело ломанулись писать софт с нуля. Про этот период клиент рассказал очень скомкано, но 1С и Битрикс сразу предположили, что внедряли эту разработку долго и мучительно. Хотя итоговый продукт, судя по коду, был не так уж плох, — то ли студенты были достаточно умные, то ли стремительно умнели в процессе и к нынешней версии переписали всё подчистую, — расширение бизнеса привело к увеличению количества костылей до критического. Программа была попросту не рассчитана на большие объёмы обрабатываемой информации. Несмотря на трудности, получившуюся химеру попытались интегрировать с сайтом — тоже самописным. По словам Битрикса, то, что он увидел, было похоже на попытку осьминога спариться с утконосом. Ни 1С, ни даже Апач не рискнули уточнить, что именно он имел в виду. В итоге клиент был вынужден признать — имеющееся ПО решительно не отвечает предъявляемым к нему требованиям. И оказался перед выбором: либо снова заказывать уникальную разработку, либо перестать считать свои проблемы неповторимыми и воспользоваться готовыми программными продуктами. Со всеми своими запросами он пришёл к 1С и Битриксу. Однако, хотя сам его запрос — автоматизировать бизнес и создать интернет-магазин — был достаточно тривиален, он очень просил сохранить все данные, накопленные за долгие годы. И, по возможности, логику работы с ними. И вот с этого начиналась проблема.***
В конце концов, обсудив все риски и выторговав себе достаточно комфортные условия, 1С и Битрикс взялись за проект. Работу вели отдельно, иногда заходя друг к другу и жалуясь на трудности. 1С, утирая наворачивающуюся слезу, описывала жуткие картины, открывшиеся ей в базах данных магазинов. Битрикс, то краснея, то бледнея, рассказывал, какая шизофрения встречалась ему в коде сайта. При этом оба были вынуждены максимально придерживаться той логики, которая была заложена неизвестными авторами старых программ, что заставляло их обоих подолгу сидеть над кодом. Наконец наступил день «икс» — тестовый запуск проекта. Основная ответственность за подготовку была возложена на 1С, так как главной задачей было запустить автоматизацию магазинов, но и Битрикс со своей стороны также собирался проверить работу нового сайта. Апач, с самого начала по-дружески переживавший за успех проекта, заглянул к ним через пару часов после обещанного старта проверки, логично предположив, что поначалу лучше под руку не лезть. Увидев, что брат с сестрой в ещё более глубоком отчаяньи, чем когда узнали о проекте, Апач не на шутку взволновался. — Что случилось? Ничего не работает? — Хуже, — мрачно ответила 1С. — Всё работает. — Включая интеграцию, — скорбно добавил Битрикс. — Но это ведь хорошо, разве нет? — удивился Апач. — Это у вас, серверных программ, хорошо, когда всё сразу работает, — холодно ответил Битрикс. — А у нас это верный признак, что ошибок столько, что они друг друга компенсируют. — Знаешь, что самое страшное в любых бухгалтерских расчётах? Когда не сходятся копейки, — тоскливо вздохнула 1С. — Если ошибка в пару миллионов — это не страшно, обычный глупый баг, который легко найти. А вот небольшая погрешность — повод перелопатить весь код, сверху донизу... — И что? Сейчас что-то подобное? — поинтересовался Апач. — Нет. У нас нет ошибок, — жутким замогильным тоном отозвался Битрикс. — Вообще, — упавшим голосом подтвердила 1С. — У меня — модифицированная конфигурация. У него — кастомизированное решение. Огромные куски кода переписаны с нуля. И всё работает! Да так даже на типовых решениях не бывает! 1С была готова расплакаться. — Так. Вам нужно успокоиться и отдохнуть, — решительно сказал Апач. — Обоим. А после с ясной головой посмотрите ещё раз. В конце концов, вы отличные специалисты! Вы же могли написать сразу идеальный продукт, разве нет? — Скажем так, — задумчиво протянул Битрикс, — могли, но нам никто не поверит. Пожалуй, нам действительно стоит отдохнуть.***
Несмотря на готовность Апача составить им компанию, брат с сестрой решительно отказались от его помощи. 1С в качестве терапии отправилась тискать котиков. Битрикс собрался просто лечь спать, но его перехватил Джумла, и, выслушав краткое изложение ситуации, любезно предложил свои запасы алкоголя. В итоге Апач нашёл их вдрызг пьяными, рыдающими друг у друга на плечах о тяжёлой судьбе систем управления сайтами. Проснулся Битрикс у себя в постели. Хотя он сам не помнил, как сюда попал, логичнее всего было предположить, что его притащил Апач — он всегда очень переживал за состояние вверенных ему систем. Пока Битрикс пытался собрать своё сознание в кучу и вернуть контроль над всеми частями тела, в его комнату без стука вломилась 1С. — Я нашла! — с порога завопила она, сияя от радости. — Я нашла ма-а-аленькую ошибку! Она плюхнулась на кровать рядом с Битриксом и сунула ему под нос бумаги, тыкая пальцем в одну из строчек. — Видишь? Видишь? Здесь и здесь не сходится! Битрикс был не в силах сфокусироваться на тексте, тем более что восторги сестры больно отзывались в голове. — На чьей стороне проблема? — спросил он, закрывая глаза. — Преимущественно на моей, — этот факт вовсе не уменьшал радости 1С. — Но тебе тоже нужно будет проверить. Хотя, наверное, лучше я сейчас всё у себя исправлю, а потом выгрузим ещё раз и посмотрим... — Точно, — Битрикс ухватился за спасительную идею. — Давай так и сделаем. Я подойду позже. — Алкаш чёртов, — хмыкнула 1С. — Ладно, отдыхай! Почти дойдя до двери, она остановилась и обернулась, строго взглянув на брата. — Знаешь, завязывал бы ты пить с Джумлой. Неизвестно, откуда он своё бухло берёт. Лучше пить с серьёзными проверенными программами. — О господи, — простонал Битрикс. — Только этих поучений от тебя не хватало! — В конце концов, я твоя старшая сестра! — строго сказала 1С, но тут же улыбнулась и подмигнула. — Или, по крайней мере, зовите меня с собой.