Аркадий Петрович Скворцов был программистом 1С от бога. Ну, или, по крайней мере, от какого-то очень настойчивого и методичного божества, отвечавшего за складской учёт и расчёт заработной платы в средней полосе России. Его пальцы порхали по клавиатуре с той же виртуозностью, с какой иные маэстро дирижировали оркестром. «Конфигуратор», «Отладчик», «Предприятие» – эти слова были для него слаще симфоний Моцарта.
Жизнь Аркадия текла размеренно, как хорошо отлаженный регламентный обмен данными: утром – кофе и проверка ночных обновлений, днём – бесконечные «допиливания» типовых конфигураций под нужды особо буйных клиентов, вечером – чай и форум «Миста.ру».
Всё изменилось в тот самый вторник, когда ему принесли на отладку базу данных небольшого НИИ «Квант-Сервис». НИИ занималось чем-то туманным, связанным с «когерентными полями» и «стабильностью пространственно-временного континуума». В бухгалтерии у них, как водится, не сходился НДС, а на складе пропадали пробирки с «экзотической материей».
«Обычное дело», – подумал Аркадий, открывая конфигуратор. Но уже через час он понял, что дело необычное. Структура метаданных была стандартной – «Справочники», «Документы», «Регистры». Но названия… «Справочник.ЭлементарныеЧастицы», «Документ.КвантовыйСкачок», «РегистрНакопления.ЭнтропияВселенной».
– Шуточки у них тут, – хмыкнул Аркадий, но продолжил копаться.
Проблема с НДС оказалась банальной ошибкой в запросе. А вот пропажа пробирок… Он открыл модуль документа «ПеремещениеМатерии». Код был написан на привычном языке 1С, но строки выглядели… странно.
Процедура ПереместитьОбъект(Источник, Приемник, Объект) Экспорт
Если Источник.Измерение <> Приемник.Измерение Тогда
ВызватьИсключение("Невозможно перемещение между разными измерениями без преобразования!");
КонецЕсли;
// Уменьшаем вероятность нахождения объекта в Источнике
Источник.ВероятностьНахождения[Объект] = 0;
// Увеличиваем вероятность нахождения объекта в Приемнике
Приемник.ВероятностьНахождения[Объект] = 1;
// Фиксация коллапса волновой функции
ЗафиксироватьРеальность(Приемник, Объект);
КонецПроцедуры
Аркадий присвистнул. «Затейники! – подумал он. – Ролевая игра у них тут, что ли?» Он поставил точку останова на строке ЗафиксироватьРеальность(Приемник, Объект);
и запустил отладку по сценарию пропажи пробирки.
Когда отладчик остановился, Аркадий машинально нажал F10 (шагнуть через). В тот же миг его собственная кружка с недопитым кофе, стоявшая на краю стола, исчезла. Аркадий замер. Он посмотрел на место, где только что была кружка. Пусто. Он посмотрел на экран. Отладчик перешёл на следующую строку.
Сердце Аркадия заколотилось. Он осторожно нажал Shift+F10 (шагнуть до возврата из процедуры). Кружка с кофе мягко материализовалась обратно на стол, расплескав пару капель.
– Мама… – прошептал Аркадий.
Он провел следующие несколько часов в священном ужасе и безудержном любопытстве. Оказалось, что вся база данных НИИ «Квант-Сервис» была не просто учётом. Это был интерфейс управления… ну, если не всей Вселенной, то по крайней мере, её солидным локальным сегментом.
Справочник «ФизическиеКонстанты» позволял менять скорость света (Аркадий благоразумно не стал трогать), гравитационную постоянную (тоже воздержался) и даже «КоэффициентСкучностиБытия» (этот он чуть-чуть убавил – мир вокруг как будто стал чуточку ярче).
Документ «ИзменениеАгрегатногоСостояния» позволял превратить воду в пар одним кликом, а документ «КоррекцияСобытийногоПотока» – отменять мелкие неприятности. Правда, отмена крупных событий требовала неимоверного количества «КвантовЭнергииДействия», которых на балансе НИИ было не так уж много.
Аркадий понял, почему пропадали пробирки. Какой-то лаборант, видимо, баловался с функцией перемещения, пытаясь телепортировать их из хранилища прямо на рабочий стол, но забывал указать правильные координаты Z-оси, и пробирки улетали в подпространство или, хуже того, в соседний кабинет, к главбуху.
Он быстро поправил код, добавив проверку на корректность координат и автоматический возврат объекта в исходную точку при ошибке. Проблема с пропажами была решена. Про НДС он уже и забыл.
Вечером, возвращаясь домой, Аркадий чувствовал себя… иначе. Мир вокруг перестал быть просто набором объектов и явлений. Теперь он видел его как гигантскую, невероятно сложную, но всё же управляемую систему. Он знал, что где-то там, в глубинах мироздания, тикают циклы, выполняются процедуры, и иногда, очень редко, система выдаёт «Не удалось провести документ "ЗарождениеЖизни_00000А546" по причине: Недостаточно свободной энтропии!»
Следующие несколько недель Аркадий тайно «администрировал» небольшой кусочек реальности. Он не злоупотреблял. Так, по мелочи. Сделал так, чтобы утренний кофе всегда был идеальной температуры. Устранил несколько особенно назойливых пробок на дорогах (просто чуть-чуть изменив параметр «СтремлениеКАгрегации» для автомобилей в определённом секторе). Однажды он даже попытался «откатить» неудачное свидание своей соседки Лены, изменив пару записей в регистре «ЭмоциональныеСостоянияСубъектов», но это привело к тому, что Лена влюбилась в его кота Мурзика, и Аркадий решил больше не лезть в дела сердечные.
Он понял, что эта «конфигурация Вселенной» была невероятно древней и писалась явно не одним «разработчиком». В ней были куски кода, написанные на совершенно непостижимых парадигмах, были странные «костыли», оставленные кем-то в спешке миллиарды лет назад, и были изящные, гениальные алгоритмы, от которых захватывало дух.
Однажды начальник НИИ, седовласый профессор с безумным блеском в глазах, вызвал Аркадия.
– Аркадий Петрович, – сказал он, нервно теребя бороду. – Мы заметили… некоторые улучшения. Система стала стабильнее. Пробирки больше не пропадают. Даже… даже коэффициент скучности бытия, кажется, немного снизился. Это ваша работа?
Аркадий скромно потупил взор.
– Ну, я немного оптимизировал запросы, поправил пару процедур… Стандартная работа.
Профессор посмотрел на него долгим, пронзительным взглядом.
– Мы хотели бы предложить вам постоянную должность. Главного архитектора нашей… системы. С неограниченным доступом.
Аркадий улыбнулся.
– Пожалуй, я соглашусь. Только давайте сначала разберёмся с этим НДС. А то не сходится, понимаете ли. Это нарушает гармонию.
И Аркадий Петрович Скворцов, программист 1С, продолжил свою работу. Он по-прежнему «допиливал» конфигурации, исправлял ошибки и следил за тем, чтобы всё сходилось. Только теперь масштабы его деятельности немного изменились. И если однажды вы заметите, что солнце светит чуточку ярче, а кофе на удивление вкусен – возможно, это просто Аркадий Петрович проводит плановое обновление конфигурации Вселенной. Версия 8.3.27.Мироздание. Осторожно, после обновления может потребоваться перезагрузка реальности.