— А у вас семёрка или восьмёрка? (Подразумевается версия платформы 1С.)
— А что это такое?
— Эмм… В заголовке окна программы что написано?
— Где?
— В самом верху экрана есть тоненькая полосочка. На ней написаны буковки. Что у вас написано?
— Секунду… SyncMaster!
1с
Странно написанная жёлтая фигня
Работал я в частной фирмочке менеджером, сисадмином, сетевиком, примусоспасателем и даже грузчиком. 120 кг живого веса и пять лет мелкого админства использовались по максимуму. Был у меня напарник — прогер, 50 кг весу. Смотрелись вместе мы весьма забавно.
Поступает заказ: поставить сервер, на котором будет крутится жёлтое отродье. Денег не жалеем в разумных пределах. Прикинув мощности (около 20 машин) и скудные щедрости газетки, для которой это и делалось, остановили выбор на мощной, пусть и не серверной машинке с четырёхголовым мутантом, 8 ГБ озы и парой SATA-винтов по 500 ГБ с рейд-контроллером (набордовые обычно не славятся надёжностью). Всё лицензионное донельзя. Собираем, ставим, тестим — зверь, а не комп! Везём заказчику, наливаем 1С, подключаем клиентов, проверяем с разных машин — всё тихо и бодро жужжит. Радостно отваливаем отдыхать и пить пиво.
Радость закончилась одновременно с приходом утреннего похмелья:
— Срочно приезжайте, ничего не работает!
— Что не работает-то?
— Все! Точнее, всё работает, но очень медленно. Так жить нельзя!
Мы в недоумении: вчера же тестировали, всё летало. Приезжаем к заказчикам — действительно, больше пяти пользователей подключаются — и элементарные операции растягиваются на пять минут.
Мы тоже кулхацкеры, мы тоже, блин, думать умеем. Ставим вторую сетевуху, настраиваем маршрутизатор (откуда 16-портовый гигабитный зверь у них, не помнит даже бухгалтерия), подключаем, офигеваем: загрузка сети — 17%, четырёх ядер — по 15%, памяти — 28%. Виснет, как и прежде. Возвращаю всё назад, звоню жёлтым умникам, объясняю, что хочу. Советуют переставить 1С, ОС, дрова и руки. Объясняю, что всё уже проделали, кроме рук, ибо жалко гробить творение Мастера. Обещают прислать мальчика.
На следующий день приезжает обещанный мальчик. Весь день чешет репу, пляшет с каким-то подобием кодерского бубна, офигевает вместе с нами, уезжает — всё висит, как и прежде. Продолжаются эти танцы вокруг сервера с гуглением по ночам трое суток. Дирекция газетки звереет, мы тоже, на мальчика вообще смотреть страшно.
Когда все уже истощили идеи и рабочую неделю, во время распивания тяпничного пива звонит мальчик и с истерическим хихиканьем изрекает:
— А попробуйте поставить туда видеокарту хорошую!
У нас глаза по старому русскому рублю, но «хи-хи» мальчика настораживает. Мчусь с пивом к знакомым поставщикам, правдой, неправдой и пивом уговариваю выдать мне недешёвую 8800GT. Созваниваюсь с газетой — там как раз собираются выходить в субботу добивать работу в базе, набравшуюся из-за тормозов. Отлично!
Утром едем туда, втыкаем видюху, наливаем дрова, поднимаем базу, даём бухам отмашку. И тут происходит неожиданное: всё летает, любая команда отрабатывается за секунду, отчёт формируется за дюжину секунд, а не минут. Бухи оргазмируют, мы фигеем.
Открываю удаленный доступ, еду пить пиво и думать. Дома захожу удалённо, начинаю проверять статистику загрузки монстра: 15%/15%/15%/15% проц, 27% память, 23% сеть… Стоп! 15% проц! Уже несколько часов! Открываю утилю видюхи и падаю под стол с истерическим хохотом. Загрузка проца 8800-й — 78%!
Оказывается, странно написанная жёлтая фигня не умела корректно работать с четырёхголовыми мутантами — использовала-то все четыре ядрышка, но почему-то только на 15% мощности. Увидев же могучую 8800 с заветной CUDA, 1С набросилась на неё со всем остервенением. Гугление на эту тему не дало ничего, а саппорт развёл руками и спросил: «Работает же, чё вам не нравится?»
С желтошкурыми думать не надо. Медитировать, общаться с высшими материями, — что угодно, но только не думать.
Баг в летнюю ночь
Последний день мая. Пишу код, допиливаю отчёт. Исправил — сохранил — перезапустил — ввёл период выполнения отчёта — нажал «Сформировать» — любуешься результатами. Дату в жёлтой программе можно вводить быстрым способом: пишешь день, и умная программа сама подставляет текущий месяц и год при окончании редактирования формы или смене фокуса. В поле ДатаНачала я ввожу «1»; в поле ДатаОкончания — «30».
Дописываю последние изменения, запускаю отчёт в последний раз, устанавливаю период и… смотрю на совсем другие данные! Ещё пару минут назад отчёт показывал актуальное финансовое состояние расчётных счетов, а сейчас за каждый день периода — одно и то же значение. Завтра сдавать отчёт; багу нужно срочно исправлять. С упорством, достойным истинных могикан, лезу в код, правлю, меняю, режу и кромсаю подозрительные участки — результат тот же. В отчаяньи гляжу на время — второй час ночи… Стоп, второй час!
С осторожностью, с которой хирург извлекает пулю, открываю отчёт и ввожу период с 01.05 по 30.05. Пуля извлечена, пациент жить будет. А вот мне, пожалуй, пора ложиться спать. Лето 2011-го подкралось неожиданно, но я этому очень даже рад. Друзья, с праздником лета вас!
Дёрнула нас лёгкая
Подрабатываю в небольшой конторе по обслуживанию компов, сетей и прочей «бытовой техники». Решили одни клиенты проапгрейдить ПК, исполняющий роль сервера терминалов для доступа к 1С. На серверное железо денег не было, поэтому просто собрали мощный компьютер из общедоступных комплектующих. В выходной день накатили на него Win2K, подняли терминалы, скопировали базы. Летает, все довольны.
В понедельник звонок: всё висит. Едем разбираться. Опытным путем выясняем, что при попытке подключиться к расшаренной папке с базой 1С, минуя терминал, новый сервер зависает наглухо. Проверили настройки — всё окей. ПО лицензионное по самое не балуйся. Звоним в поддержку жёлтой программы. Там предлагают переустановить 1С и попробовать снова. Не помогает.
Гуглим проблему, находим десяток постов за 2005–2007 годы, где наперебой советуют поставить PCI-сетевуху вместо интегрированной и обновить дрова на неё до наисвежайшей версии. Но мы же «крутые специалисты», поэтому не следуем совету, а начинаем думать. На старом сервере с интегрированной сетью всё работало, значит, и здесь проблем быть не должно: дрова новейшие. Да и вообще, интегрированная в современные материнки сетевуха ничем не отличается от PCI-аналога! Так что совет явно устарел, и мы пойдём другим путём.
Временно заимствуем в бухгалтерии компьютер, втыкаем в него винт из старых запасов, поднимаем на нём точно такой же сервер, включаем его вместо виснущего — работает. Напоминаю, мы «крутые специалисты», поэтому опять думаем. Причина глюков явно в новом сервере. Меняем материнскую плату — та же фигня. Значит, что-то где-то криво встало из софта. Принимаем волевое решение переустановить сервер с нуля.
И тут дёрнула нас нелёгкая (вернее, лёгкая) всё-таки воткнуть PCI-сетевуху. Форумы не соврали. Проинспектировав железо на трёх серверах: старом, новом и временном из бухгалтерского компа, выяснили, что 1С глючит только на встроенной сетевухе Realtek (Marvell и Intel проблем не создавали).
Шесть часов потрачено на совершенно ненужные телодвижения, а проблема была бы решена за 15 минут, если бы мы не думали, а просто сделали, как написано на форумах. В общем, с тех пор я уверен: решение большинства проблем с 1С находится эмпирическим, а не логическим путём, и если чужое решение кажется нелогичным, думать не надо — нужно тупо сделать так, как советуют.
Битвы на жёлтом правовом поле
Хозяйничаю в фирмочке IT-аутсорсинга. Поскольку штат небольшой, зачастую приходится что-то делать самому. В свободное от работы время я поигрываю в World of Tanks.
Сегодня снился сон. Нет, не так: СОН! По правовому полю РФ цвета наиболее распространённой бухгалтерской проги ездят танки. Правовое поле дыряво и коряво, проехать можно не везде. Танки эти, они же бухгалтерские базы, обстреливают друг друга проводками. Чем правильнее проводки в базе, тем лучше базы воюют с соперниками. И ко мне всё приезжают и приезжают бухгалтера с битыми базами и торчащими во все стороны корявыми проводками с просьбой базы починить и проводки поправить…
Бухгалтер — не приговор
Принесли новые книжки по 1С на работе. Читаю и рыдаю.
Соглашение по мыши
Предполагается, что ввод команд пользователь программы осуществляет в основном мышью. По умолчанию левая кнопка мыши является главной, поэтому пишется без слова «левая». Правая кнопка используется редко и со словом «правая».
«Указать» означает, что курсор мыши надо установить так, чтобы его кончик попал на тот элемент, на который необходимо указать на экране.
«Щёлкнуть» означает, что необходимо нажать и сразу отпустить кнопку мыши, не двигая мышь.
«Выделить» — установить курсор в реквизите (или строке) и щёлкнуть мышью.
«Двойной щелчок» — два раза подряд кратковременно нажать и отпустить кнопку мыши.
«Выбрать» — установить стрелку мыши на тот элемент, который необходимо выбрать, а затем щёлкнуть мышью, либо нажать клавишу Enter.
«Ввести команду» — это поочерёдно указать и щёлкнуть, или, что одно и то же, поочерёдно выделить записанные в команде элементы.
Левый кривой я
Работаю с 1С. Задание: написать нестандартную ведомость по зарплате. Переписал из компоновки в стандартный отчёт, сидим с расчётчицей тестим. У гендира зарплата не высвечивается: получил он деньги 31-го, а период выбран до 00:00:00 этого числа. Рассказываю расчётчице: бывают, дескать, левые кривые программеры, которые так вот делают. Открываю перед ней исходник — а там в комментариях в заголовке моё имя.
Стыдно, но весело.
1С:Толерантность
Я работаю руководителем технического подразделения в немаленькой компании. Звонок от девочки из бухгалтерии, занимающейся счетами. Слышу очередное: «У тебя в акте неправильно посчитана итоговая сумма, у меня из-за этого не проводится счёт-фактура». Сам я по роду деятельности принадлежу больше к айтишникам и телекомщикам, чем к финансистам и бухгалтерам, однако сразу ругаться не спешу. За восемь лет довольно плотного взаимодействия с замечательными сотрудницами замечательного финансового подразделения я твёрдо уяснил, что неправы далеко не всегда они: треть глюков на них, треть — на нас, треть — на том, через что мы взаимодействуем и на чём работаем. Именно по этой причине, несмотря на железобетонную уверенность в том, что сумма посчитана правильно (триста раз перепроверенная формула в вылизанном Excel-файле, человеческий фактор в процессе формирования сумм исключён почти начисто), девочка никуда не посылается, а открывается этот самый файл и начинается совместный методичный пересчёт сумм, промежуточных и итоговых. Подвергается сомнению даже общеизвестный закон о том, что от перемены мест слагаемых сумма не меняется. Как ни странно, всё оказывается в порядке, но жёлтая программа итоговую сумму рисует всё равно на 91 копейку меньше расчётной. В теории, наверное, на сумме более 2 млн такая погрешность могла бы набежать — но не в честно же купленном коммерческом продукте и не при выполнении же рутинной процедуры формирования финансового документа, которая должна быть отлажена вдоль и поперёк? Уж точно не на фоне того, что творение вечнопоминаемого Билли и бухгалтерский калькулятор за 300 рублей выдают один и тот же результат, сходящийся до копейки. Итоговый результат — запрос на вмешательство спеца сопровождения (хорошо, если смогут решить проблему быстро и удалённо). Вообще говоря, можно было сразу так и сделать — глюк был налицо. Но мы всё-таки проверили и перепроверили — а вдруг?
Выдох. Наливается кофе, возникает мысль покурить. Мобилка радостно сообщает о приходе SMS, уведомляющей об изменении баланса. Вдумчиво посмотрев на сумму пополнения картсчёта, изрекаю тихое: «Не понял». Идёт вызов уже другой девочке из бухгалтерии, отвечающей за зарплату. Дело в том, что раз 20 в год из 24 возможных (12 месяцев, аванс + расчёт) я довольно точно представляю, какую сумму я должен получить на карточку. Табель на всех сотрудников своего подразделения, включая и себя, формирую тоже я, и там всё правильно. Из тех же восьми лет общения на тему некорректных начислений с сотрудницами того же подразделения сформировался уже немаленький опыт анализа подобных ситуаций, поэтому бухгалтерше вопрос задается уже чётко: «Где оплата ещё одного отработанного дня?» Опять идём «от печки»: поднимается и проверяется табель, высчитываются дни и часы в месяце, дни и часы отработанные, доплаты, вычеты… Резюме по итогам 25 минут разбора: из-за того, что мой отпуск пришёлся на праздничный день и в связи с этим на этот же день увеличился, программина другим модулем недосчитывает мне один отработанный день. Опять же на рутинной процедуре, которая должна быть отлажена уже чёрт знает когда и чёрт знает сколько раз. Опять летит запрос на вмешательство сопровождающего специалиста…
Итог: за один только день потрачено полчаса моего рабочего времени на разбор проблемы один и столько же — на разбор проблемы два. Прибавьте полчаса первой девочки из бухгалтерии и столько же — второй. Энная сумма ушла на переговоры по межгороду. И это примеры только одного дня из процессов, затронувших только меня. А сколько всего глюков такого рода и с какой частотой обрушивается на девочек, на работу которых мы порой так снисходительно смотрим сверху вниз? Сколько времени они потом должны пересиживать на работе и сколько раз приходить в офис в выходные, чтобы уложиться в срок? Какие ещё советы должны давать на курсах о том, когда и кого звать в ситуации, когда что-то не получается сделать?
Терпимее, коллеги, а также просто граждане, дамы и господа. Терпимее. Везде есть непроходимые идиоты, бездельники, откровенные лентяи, желающие сделать свою работу чужими руками. И везде есть те, кто хочет сделать работу в своей зоне ответственности качественно и в срок. Не стоит маркировать всех профессией и должностью — ох, не стоит.
А пошло оно всё
Русская CMS от жёлтой фирмы. Инструкция:
Чтобы выпуск рассылки, для которого отмечена опция «Отправлять автоматически в указанное время», был отправлен в указанный день и время, он должен быть сохранён с помощью кнопки «Отправить».
Логичное решение, правда?