Как безопасно вернуть конфигурацию 1С на полную поддержку и почему при этом уменьшается размер базы данных?

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

Каждый администратор и программист 1С рано или поздно сталкивается с ситуацией, когда типовая база данных по какой-то причине теряет статус «полной поддержки». При этом реальных изменений в коде или структуре данных может не быть вовсе, однако при каждом обновлении система открывает окно сравнения и объединения, требуя ручного вмешательства. Попытка вернуть базу «на замок» часто вызывает опасения, особенно когда после загрузки типовой конфигурации .cf и выполнения тестирования со сжатием база резко уменьшается в размерах (например, с 5 ГБ до 4 ГБ). Давайте детально разберем природу этого явления, выясним, почему уменьшается база, и рассмотрим безопасный пошаговый алгоритм возврата конфигурации на полную поддержку без потери пользовательских данных.

Почему сравнение конфигураций показывает изменения, если никто ничего не менял?

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

  1. Особенности хранения и редактирования HTML-справки: Справочная информация в системе 1С хранится в формате HTML. Для визуального отображения и редактирования этих текстов конфигуратор использует библиотеки операционной системы (исторически — движок MSHTML/Internet Explorer, в более новых версиях — встроенные компоненты платформы). При изменении версии платформы 1С или обновлении операционной системы внутренний генератор HTML может автоматически изменять служебные теги (например, добавлять <meta name="GENERATOR" content="...">) или переупорядочивать CSS-стили форматирования. Платформа фиксирует эти скрытые бинарные различия как модификацию объекта, хотя визуально текст справки остается идентичным.
  2. Микросдвиги координат в макетах и схемах: При открытии и сохранении табличных документов или графических схем в разных версиях платформы 1С координаты элементов (границы ячеек, положение диаграмм) могут незначительно пересчитываться (буквально на доли пикселя). Платформа расценивает это как пользовательское изменение макета и выводит его в окно сравнения.

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

Почему база данных уменьшается в объеме после возврата на поддержку?

Опасение потерять пользовательские данные при уменьшении размера базы — один из самых частых страхов администраторов. Однако уменьшение объема файла базы данных (особенно файловой базы .1CD) после загрузки чистого файла конфигурации .cf и выполнения сжатия таблиц является абсолютно естественным и безопасным процессом. Рассмотрим причины этого поведения:

  1. Удаление избыточных копий конфигураций: Когда конфигурация находится в режиме «с возможностью изменения» (даже если все объекты заблокированы замочком), СУБД вынуждена хранить внутри служебных таблиц базы данных несколько копий метаданных:
    • Основную конфигурацию (с которой ведется работа в конфигураторе);
    • Конфигурацию базы данных (с которой в данный момент работают пользователи);
    • Конфигурацию поставщика (исходный релиз от разработчика 1С для проведения обновлений).
    Кроме того, в системных таблицах, таких как ConfigSave, могут оставаться временные конфигурации, черновики изменений и кэш предыдущих обновлений. Файл конфигурации современных тяжелых решений (например, 1С:Комплексная автоматизация или 1С:ERP) в распакованном виде занимает в СУБД более 1 гигабайта. При возврате базы на полную поддержку («на замок») потребность в хранении избыточных копий отпадает. Платформа удаляет дублирующиеся конфигурации и очищает системные таблицы, что моментально высвобождает дисковое пространство.
  2. Физическое сжатие таблиц (дефрагментация): Процедура тестирования и исправления (ТиИ) с выбранной опцией «Сжатие таблиц» выполняет физическую дефрагментацию базы данных. Для файловой СУБД 1С это аналог операции VACUUM в SQLite или SHRINK в MS SQL Server. Из файла базы данных физически удаляются «пустоты» и свободные страницы, которые ранее занимала удаленная избыточная конфигурация.
  3. Разделение метаданных и данных пользователей: В архитектуре платформы «1С:Предприятие» файлы конфигурации (описывающие структуру базы) и пользовательские данные (непосредственные записи в справочниках, документах и регистрах) строго разделены на уровне таблиц СУБД. Загрузка файла .cf обновляет исключительно таблицы метаданных (такие как Config). Данная операция физически не способна затронуть таблицы пользовательских данных (например, таблицы с префиксами _Reference или _Document), если структура этих таблиц полностью совпадает.

Как гарантировать, что данные не потерялись?

Чтобы окончательно убедиться в безопасности проведенной процедуры, обратим внимание на механизм реорганизации базы данных. Если загружаемый файл .cf содержит изменения в структуре метаданных (например, в нем отсутствуют какие-то реквизиты, табличные части или целые справочники, которые были созданы в вашей базе ранее), то при применении конфигурации (клавиша F7) платформа обязательно откроет модальное окно «Реорганизация информации».

В этом окне платформа выведет предупреждение со списком удаляемых или изменяемых объектов метаданных. Если такое окно не появилось (или в нем отсутствовали пункты об удалении объектов), это является 100% гарантией того, что структура данных осталась прежней и ни одна запись пользователя не пострадала.

Пошаговый алгоритм безопасного возврата конфигурации на поддержку

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

Шаг 1. Создание резервной копии. Это обязательное и непреложное правило перед любыми административными действиями в конфигураторе 1С. Сделайте копию файла базы данных (для файлового варианта) или бэкап средствами СУБД (для клиент-серверного варианта).

Шаг 2. Получение эталонного файла конфигурации. Откройте базу данных в режиме «Конфигуратор». Перейдите в меню Конфигурация — Поддержка — Настройка поддержки. Нажмите кнопку Сохранить в файл и выгрузите чистый файл конфигурации поставщика (например, под именем vendor.cf). Этот файл гарантированно соответствует текущему релизу вашей базы, но не содержит лишнего мусора и «ложных» изменений.

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

Шаг 4. Загрузка эталонного файла конфигурации. Перейдите в меню Конфигурация — Загрузить конфигурацию из файла... и выберите сохраненный на Шаге 2 файл vendor.cf. Обратите внимание: нужно использовать именно команду «Загрузить», а не «Объединить». Платформа выдаст предупреждение о том, что текущая конфигурация будет полностью заменена. Соглашаемся с этим предупреждением.

Шаг 5. Применение изменений. Нажмите клавишу F7 (или выберите пункт меню Конфигурация — Обновить конфигурацию базы данных). Если конфигурации были идентичны по структуре, обновление пройдет мгновенно без вывода предупреждений о реорганизации. На корневом элементе дерева метаданных и на всех дочерних объектах снова появится значок закрытого желтого замочка.

Шаг 6. Сжатие таблиц базы данных. Для завершения процесса и оптимизации дискового пространства перейдите в меню Администрирование — Тестирование и исправление.... Отметьте маркер Сжатие таблиц базы данных и нажмите кнопку Выполнить. После завершения операции физический размер файла базы данных уменьшится, освободив дисковое пространство.

Для автоматизации некоторых рутинных процессов администраторы часто используют запуск конфигуратора из командной строки. Ниже приведен пример сценария (бат-файла) для загрузки подготовленного файла конфигурации и обновления базы данных в пакетном режиме:


@echo off
echo Выполняется загрузка конфигурации из файла...
"C:\Program Files\1cv8\8.3.22.1709\bin\1cv8.exe" DESIGNER /F "C:\1C_Bases\KA" /N "Администратор" /P "Пароль" /LoadCfg "C:\Temp\vendor.cf" /UpdateDBCfg
echo Процесс успешно завершен.
pause

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

← На главную