Обновление типовой конфигурации «1С:Торговля и Склад 7.7» (ТиС) — задача привычная, но когда речь идет о разрыве более чем в 10 лет (например, переход с релиза 7.70.941 от 2006 года на 7.70.997 от 2018 года), возникают серьезные риски. В данной статье мы подробно разберем, можно ли обновляться «прыжком», какие подводные камни ожидают технического специалиста и как обеспечить сохранность данных в процессе масштабной трансформации базы данных.
Рассмотрим основной вопрос: допустимо ли обновлять ТиС сразу через пятьдесят и более релизов? Технически платформа 1С 7.7 позволяет заменить файл конфигурации 1Cv7.md на актуальный. Однако конфигурация — это не только структура таблиц, но и данные, которые должны пройти через процедуры конвертации. Проанализируем ситуацию: если мы просто заменим метаданные, при первом запуске системы в режиме «Предприятие» сработает процедура «Обновление информационной базы».
Проблема заключается в том, что программный код в обработке Upd_IB.ert (или встроенный в модуль конфигурации код обновления) часто содержит проверки текущего релиза. Рассмотрим примерную логику, которая заложена в такие механизмы:
Если НомерТекущегоРелиза < "950" Тогда
// Выполнить пересчет остатков по НДС
ВыполнитьКонвертациюНДС();
КонецЕсли;
Если НомерТекущегоРелиза < "965" Тогда
// Обработать изменения в справочнике единиц измерения
КорректировкаЕдиницИзмерения();
КонецЕсли;
Разберем риск: в очень свежих релизах разработчики 1С иногда удаляют блоки кода, отвечающие за поддержку «древних» переходов, чтобы не перегружать конфигурацию лишним кодом. Если вы перепрыгиваете с 941 на 997, существует вероятность, что часть цепочки трансформации данных будет пропущена, так как алгоритм может быть рассчитан на обновление с версии не ниже 960.
Выясним причину, по которой эксперты не рекомендуют обновляться в один этап. Несмотря на то, что ТиС менее чувствительна к пропускам, чем «1С:Бухгалтерия 7.7», в ее истории были критические точки. Одной из таких точек является переход на релизы 954–955.
Именно в этот период (конец 2000-х годов) происходила существенная переработка механизмов учета НДС. Были введены новые регистры, такие как НДСПредъявленный и НДСПродажи. Если пропустить этот этап, старые данные могут не распределиться по новым регистрам корректно. Посмотрим на алгоритм действий: при последовательном обновлении система сначала создаст новые структуры, а затем специальными обработками перенесет в них остатки. При «прыжке» через 50 релизов этот механизм может отработать со сбоями.
Проанализируем еще один важный аспект — валютный учет. В районе 950-х релизов менялись механизмы хранения кратности валют и обработки курсовых разниц. В ТиС управленческий учет часто ведется в валюте (USD или EUR), и любые искажения в справочнике Валюты приведут к «поплывшим» остаткам в отчетах. После обновления крайне важно зайти в историю курсов и убедиться, что кратность (поле Кратность) соответствует историческим данным. При некорректном переходе кратность может установиться в «1» для периодов, где она должна была быть «100» или «1000», что исказит все рублевые эквиваленты в документах прошлых лет.
Рассмотрим наиболее надежную тактику обновления при большом временном разрыве. Мы разделим процесс на три этапа, чтобы минимизировать риски потери данных.
Этап 1: Подготовка и первый прыжок
Этап 2: Контроль промежуточного состояния
Разберем, что именно нужно проверить перед следующим шагом. Проанализируем отчеты по НДС (Книгу покупок и Книгу продаж) за прошлые периоды. Если данные совпадают с теми, что были в 941 релизе, значит, конвертация прошла успешно. Также проверим справочник ЕдиницыИзмерения и Штрихкоды, так как в середине 2010-х годов менялась логика их связи с номенклатурой.
Этап 3: Финальное обновление
Посмотрим подробнее на работу штатной обработки обновления. В типовой поставке ТиС файл Upd_IB.ert находится в каталоге ExtForms. Если после обновления в режиме «Предприятие» окно обновления не появилось автоматически, следует запустить эту обработку вручную через «Файл» — «Открыть».
Внутри этой обработки содержатся важные функции, которые мы можем проанализировать в Конфигураторе. Например, поиск функции глОбновитьРелиз() поможет понять, какие именно действия планирует выполнить система. Если вы видите, что в коде присутствуют блоки для релизов ниже вашего (т.е. ниже 941), значит, прямое обновление до этого релиза заложено разработчиками. Если же минимальный проверяемый релиз в коде — 960, то промежуточная остановка обязательна.
Подведем итоги нашего исследования. Хотя «1С:Торговля и Склад 7.7» считается «живучей» системой, обновление с 2006 на 2018 год — это критическая операция.
Основные правила:
Соблюдение этой последовательности гарантирует, что учетные данные за двенадцатилетний период останутся целостными, а отчетность будет формироваться корректно в соответствии с актуальными требованиями законодательства, заложенными в последнем релизе.