90 мегабайт вежливости
Иногда 1С обвиняют во всём, кроме того единственного, в чём она действительно виновата — в чрезмерной добросовестности. Она честно пыталась обработать файл размером с десяток фотографий. Просто никто не додумался спросить, зачем счёту логотип такого веса.
В этой истории
Клиент обратился к нам с проблемой, которая к тому моменту успела обрасти собственной историей, парой ложных теорий и заметным раздражением у всех участников.
База 1С работала. Документы открывались, отчёты формировались, никто не жаловался на скорость — обычная бухгалтерская рутина без претензий. За одним исключением: стоило кому-то попытаться сформировать счёт, программа замирала с видом человека, которому только что сообщили очень плохую новость и который пока не знает, как на неё реагировать.
К делу подключили программистов 1С. Они посмотрели на конфигурацию, не нашли ничего криминального и пожали плечами в сторону системных администраторов. Администраторы посмотрели на сеть, на железо, на нагрузку — и с чистой совестью пожали плечами в обратную сторону. Оба лагеря были по-своему правы: если зависает программа, естественно подозревать программу; если с программой всё чисто, естественно подозревать всё остальное. Просто на пересечении этих двух здравых логик образовалась дыра, в которую благополучно провалилась сама проблема.
Через какое-то время клиент оказался в ситуации, знакомой куда шире, чем хотелось бы: специалистов достаточно, зон ответственности достаточно, а простого ответа на простой вопрос — нет ни у кого. Каждый честно отвечал за свой участок. Никто не отвечал за целое.
Нас попросили посмотреть со стороны — то есть без предварительной уверенности в том, кто виноват.
Мы не стали спрашивать «в чём причина». Мы спросили — что именно происходит в тот момент, когда всё ломается. База работает. Счёт открывается. Программа спотыкается ровно на печатной форме — и нигде больше.
Дальше было делом техники выяснить, что 1С в этот момент пытается вставить в документ логотип компании. Логотип как логотип, ничем не примечательный на вид. Кроме одной детали: файл весил порядка 80–90 мегабайт — размер, более уместный для рекламного баннера на стадионе, чем для угла бухгалтерского бланка.
Каждый раз, формируя счёт, программа послушно бралась обработать эту картину маслом. Со стороны это выглядело как зависание. По сути — было терпением.
Логотип уменьшили до размеров, приличных документу, а не билборду. Счета начали формироваться так, будто никакой драмы никогда не было.
Никакого сложного исправления в этой истории нет. Никто не переписывал конфигурацию и не перекладывал сервер с места на место. Сложным оказалось единственное — перестать искать причину по разные стороны баррикад «1С / не 1С» и посмотреть на проблему как на одну проблему, а не на два независимых расследования.
Иногда причина крупной поломки оказывается совсем небольшой.
В этот раз она просто весила 90 мегабайт.