Как правильно обновлять 1С
Конец квартала, полугодия, года, особенно перед внедрением важных нововведений всегда остро встает вопрос обновления 1С. А вот тут не все так просто и легко наломать очередных дров или заложить очередную тайм-бомбу.
1С выпускает обновления достаточно часто, практически каждый месяц и в каждом из них пишет с какого релиза поддерживаются обновления на текущий. Таким образом, если вы давно не обновляли 1С, то вам нужно построить цепочку таких «ключевых» релизов и обновляться по ней.
А это может быть долго, дорого, неудобно, причин всегда находится много, включая то, что надо было еще вчера и вообще у вас полчаса времени.
И тут появляется «народный умелец», который говорит, что все это фигня и он быстро и недорого обновит базу из последнего CF и будет все тоже самое, даже лучше. Он сто раз так делал.
И обновляет, и уходит в закат. А дальше события могут развиваться образом самым увлекательным и непредсказуемым.
Поэтому разберем почему так делать нельзя. Фирма 1С ведь не со зла и не от вредности ставит ограничения по релизам, с которых можно выполнить обновление.
Каждая информационная база содержит данные пользователя или просто данные и объекты конфигурации – метаданные и эти метаданные могут меняться от релиза к релизу.
Допустим в обновлении А добавлен какой-то новый реквизит и при первом запуске обработчик обновления его заполняет по какому-либо алгоритму.
В обновлении Б он начинает участвовать в каких-то механизмах. И разработчики предполагают, что он у вас есть и заполнен. Поэтому и ограничивают предыдущие версии конфигураций на те, где этот обработчик выполнялся и заполнял реквизит.
А что будет если мы сразу накатим конфигурацию Б (из CF-файла, который представляет полный файл конфигурации), без промежуточных обновлений.
Реквизит у нас в базе появится, но он будет пустой, так как обработчик обновления, его заполняющий в релизе Б отсутствует. И вот тут мы уже приехали.
С этим можно жить долго и незаметно, но в какой-то момент это обязательно выстрелит. Причем не явно, а просто программа начнет работать или считать неправильно, формировать странные отчеты, работать не так, как описано, хотя все настройки сделаны верно.
А все почему? Да потому что ожидает увидеть где-то определенное значение, но не видит его. И хорошо, если пустое значение там допустимо. Ну просто будет не попадать куда-то то, что попадать должно.
А если нет? То у нас могут сломаться целые направления учета, когда бухгалтер будет смотреть и не понимать почему программа делает неправильные проводки, хотя все заполнено правильно.
И вылазят такие грабли чаще всего на узких и сложных направлениях учета и чаще всего в отчетный период, когда времени на вдумчивый анализ нет и надо что-то решать здесь и сейчас.
Поэтому в ход идут всякие обработки, которые на скорую руку делают «как надо», т.е. лечат симптомы, не устраняя саму болезнь. А база постепенно превращается в чудовище Франкенштейна, где что-то тронуть страшно, а вдруг все «поплывет».
А кто виноват? Ну конечно же 1С, ведь это все знают, он косая, кривая и никогда нормально не работает.
В общем – не делайте так, всегда соблюдайте цепочку релизов.
Post #5322
2.85K