Как проверить корректность обновления 1С и выявить пропуск промежуточных релизов

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При обслуживании систем на платформе «1С:Предприятие 8.3» часто возникает ситуация, когда подрядчик или штатный специалист обновляет конфигурацию не последовательно, а «прыжком», устанавливая сразу финальный релиз из цепочки обновлений. Рассмотрим подробнее, чем это грозит, как технически реализуется такой переход и, самое главное, как проверить, не пострадала ли структура данных и все ли необходимые процедуры трансформации информации были выполнены.

Механизмы обновления: почему возможен «прыжок»

Разберем ситуацию с технической стороны. В конфигураторе 1С существует несколько способов изменения версии конфигурации:

  1. Автоматическое обновление (через поиск доступных обновлений): Система сама скачивает файлы .cfu и последовательно их применяет. Пропустить релизы здесь практически невозможно, если они отмечены вендором как обязательные.
  2. Обновление через файл .cfu: Выбор конкретного файла обновления. Если версия базы не совпадает с версией, для которой предназначен .cfu, конфигуратор выдаст предупреждение «Файл не содержит доступных обновлений».
  3. Загрузка конфигурации из файла .cf (полная конфигурация): Самый агрессивный метод. Позволяет заменить текущую конфигурацию любой другой, полностью игнорируя цепочку обновлений.
  4. Сравнение и объединение с файлом .cf: Позволяет накатить изменения из любого релиза, сохраняя доработки. Именно этот способ часто используют для «прыжков».

Проанализируем риски. Основная опасность заключается не в самой замене кода, а в пропуске обработчиков обновления. Это специальные процедуры на языке 1С, которые пересчитывают остатки, переносят данные из удаленных реквизитов в новые или создают необходимые записи в регистрах сведений. Если вы «прыгнули» с версии 3.0.60 на 3.0.100, минуя промежуточные этапы в режиме «1С:Предприятие», данные могут остаться в старой структуре, что приведет к ошибкам в отчетах или невозможности проведения документов.

Способ 1. Анализ Журнала регистрации

Первым делом проверим историю действий в системе. Рассмотрим, как найти следы обновления в Журнале регистрации. Нам необходимо установить отбор по событиям, связанным с изменением конфигурации и запуском системы в режиме обновления.

Выполним следующие шаги:

  1. Перейдем в раздел Администрирование — Обслуживание — Журнал регистрации.
  2. Установим отбор по событию Конфигурация.Обновление конфигурации базы данных.
  3. Посмотрим на количество записей. Если между старым релизом и новым зафиксировано только одно такое событие, значит, промежуточного обновления конфигурации БД не проводилось.
  4. Дополнительно проверим событие Информационная база.Обновление версии. В комментарии к этому событию БСП (Библиотека стандартных подсистем) обычно пишет, с какого релиза на какой осуществляется переход.

Если в журнале мы видим запись вида «Обновление версии с 3.1.10.5 на 3.1.14.33», это прямое подтверждение того, что система попыталась выполнить все обработчики за один раз, пропустив запуск промежуточных версий.

Способ 2. Проверка выполненных обработчиков в регистрах БСП

Современные типовые конфигурации (БП 3.0, ЗУП 3.1, ERP) используют механизмы БСП для управления обновлением. Вся информация о том, какие процедуры были запущены и успешно завершены, хранится в информационной базе. Разберем, где именно ее искать.

Проанализируем содержимое регистра сведений ОбработчикиОбновления. Это можно сделать через меню «Функции для технического специалиста» (или «Все функции»):

  1. Найдем регистр сведений ОбработчикиОбновления.
  2. В нем содержится список всех процедур обновления, их статус (Выполнена, Ошибка) и версия релиза, к которому они относятся.
  3. Если в списке присутствуют процедуры для промежуточных релизов (например, 3.1.12), и они имеют статус «Выполнена», значит, система смогла запустить их последовательно при первом запуске после «прыжка».

Важный момент: 1С проектирует обработчики так, чтобы они могли выполняться цепочкой. Однако, если разрыв между релизами составляет несколько лет, код старых обработчиков может быть физически удален из общего модуля ОбновлениеИнформационнойБазы в свежем релизе. В этом случае данные не обновятся, а в регистре может появиться информация о невозможности выполнения.

Способ 3. Проверка конфигурации поставщика

Выясним, в каком состоянии находится поддержка конфигурации. При некорректном обновлении через «Сравнение и объединение» часто забывают обновить конфигурацию поставщика.

Посмотрим на статус в окне «Настройка поддержки» (Конфигурация — Поддержка — Настройка поддержки):

Чтобы исправить эту ситуацию, необходимо «подтянуть» конфигурацию поставщика. Для этого выполним процедуру Конфигурация — Поддержка — Обновить конфигурацию, выбрав полный .cf файл текущего релиза (3.1.14.33). В окне сравнения и объединения важно снять все галочки, чтобы не затереть возможные доработки в основной конфигурации, но нажать «Выполнить». Система обновит именно конфигурацию поставщика.

Способ 4. Принудительный запуск обновления через командную строку

Если есть сомнения, что все процедуры завершились корректно, можно инициировать процесс проверки еще раз. Рассмотрим использование специального ключа запуска.

Создадим ярлык для запуска 1С или воспользуемся командной строкой, добавив параметр:


"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "ПутьКБазе" /C ЗапуститьОбновлениеИнформационнойБазы

Параметр /C ЗапуститьОбновлениеИнформационнойБазы заставляет систему при старте запустить проверку всех обработчиков обновления, зарегистрированных в БСП. Если система обнаружит невыполненные процедуры, она попытается их запустить в монопольном режиме. Это безопасный способ убедиться, что логическая структура данных соответствует текущей версии кода.

Способ 5. Проверка через результаты обновления в пользовательском интерфейсе

В большинстве современных конфигураций отчет о ходе обновления доступен непосредственно пользователю. Рассмотрим, как его найти:

  1. Перейдем в раздел Администрирование — Обслуживание.
  2. Раскроем блок Обновление программы.
  3. Нажмем на гиперссылку Результаты обновления и дополнительная обработка данных.

В открывшемся окне мы увидим список всех выполненных этапов. Если там висят предупреждения о невыполненных процедурах или ошибках в дополнительных обработчиках, это верный признак того, что «прыжок» прошел неудачно. Проанализируем колонку «Статус»: процедуры, помеченные красным значком, требуют ручного вмешательства или повторного запуска.

Выводы и рекомендации

Подведем итог. Само по себе обновление «через релизы» (используя .cf) технически допустимо и часто экономит время программиста. Однако оно требует обязательного соблюдения трех условий:

  1. Запуск в режиме «Предприятие»: После применения изменений в конфигураторе необходимо обязательно запустить базу и дождаться окончания всех процедур обновления.
  2. Актуализация поддержки: Конфигурация поставщика должна соответствовать текущему релизу.
  3. Контроль узловых релизов: Некоторые релизы 1С помечает как «обязательные для перехода» (например, из-за смены версии БСП или реструктуризации таблиц). Прыгать через такие релизы без запуска базы в режиме «Предприятие» крайне опасно.

Если вы обнаружили, что подрядчик обновил систему «прыжком» и конфигурация поставщика не актуальна — обязательно проведите процедуру восстановления поддержки и запустите проверку обработчиков, как описано выше. Это минимизирует риски потери данных в долгосрочной перспективе.

← На главную