Обновление конфигурации 1С:Предприятие на сервере с Microsoft SQL Server — задача, которая требует не только технических навыков, но и понимания специфики работы клиент-серверных баз. Ошибки в этом процессе могут привести к потере данных, неработоспособности системы или конфликтам версий, особенно если речь идёт о многопользовательских конфигурациях типа 1С:ERP или 1С:Управление торговлей. В отличие от файлового варианта, где обновление сводится к замене файлов, SQL-версия требует синхронизации структуры базы данных с новой конфигурацией — и здесь кроются основные подводные камни.

Эта статья поможет избежать типичных ошибок: от подготовки резервной копии до финальной проверки работоспособности. Мы разберём как ручное обновление через Конфигуратор, так и автоматизированные сценарии для крупных инфраструктур. Особое внимание уделим нюансам работы с SQL Server 2019/2022, так как новые версии СУБД вводят изменения в механизмы блокировок и транзакций, критичные для 1С.

1. Подготовка к обновлению: резервное копирование и проверка совместимости

Первый и самый критичный этап — создание полноценной резервной копии базы данных. В отличие от файлового варианта, где достаточно скопировать папку, для SQL-сервера требуется:

  • 📁 Полный бэкап базы данных через SQL Server Management Studio (SSMS) или команду BACKUP DATABASE. Используйте опцию WITH COPY_ONLY, чтобы не нарушать цепочку транзакционных журналов.
  • 🔄 Копия конфигурации (.cf-файл) через Конфигуратор → Администрирование → Выгрузить информационную базу. Это пригодится для отката, если обновление пойдёт не по плану.
  • 📋 Экспорт пользовательских настроек: права доступа, роли, внешние отчёты и обработки. Их потеря может парализовать работу отдела.

Перед обновлением обязательно проверьте совместимость версий:

  • 🔹 Версия 1С:Платформы (например, 8.3.22.1864) должна поддерживать вашу конфигурацию (уточните в файле version.txt дистрибутива).
  • 🔹 Версия SQL Server: для 1С:Предприятие 8.3.20+ рекомендуется SQL Server 2017 и выше. Старые версии (2008 R2) могут не поддерживать новые типы данных.
⚠️ Внимание: Если ваша база использует Full-Text Search или Filestream, убедитесь, что новая версия 1С поддерживает эти функции. Некоторые обновления конфигураций (например, 1С:ЗУП 3.1 → 3.2) требуют ручного переноса полнотекстовых индексов.
📊 Как часто вы обновляете 1С на SQL-сервере?
Раз в квартал
Только при критических исправлениях
По требованию бухгалтерии
Никогда не обновлял сам

2. Выбор метода обновления: ручной vs автоматизированный

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

Метод Плюсы Минусы Рекомендации
Ручное через Конфигуратор Максимальный контроль, возможность отката на любом этапе Долго для больших баз (100+ ГБ), требует остановки работы пользователей Для баз до 50 ГБ или тестовых окружений
Через rac (Расширение конфигурации) Минимальный простой, сохраняет пользовательские доработки Не все обновления поддерживают этот метод, риск конфликтов Для некритичных обновлений (например, ежемесячные релизы 1С:Бухгалтерии)
Автоматизированное (скрипты, 1С:EDT) Подходит для кластеров, минимальное участие администратора Сложная настройка, требует знания PowerShell/T-SQL Для крупных предприятий с дежурными администраторами

Для большинства средних компаний оптимален ручной метод. Он позволяет:

  • 🔍 Проверить логи обновления (1CV8Log\*.lgd) на ошибки.
  • 🛠️ Применить "горячие" исправления (hotfix) отдельно от основного обновления.
  • 📊 Контролировать использование дискового пространства (обновление может временно увеличить размер базы на 20-30%).

Проверить свободное место на диске (минимум 1.5× размер базы)

Остановить фоновые задания (регламентные операции)

Уведомить пользователей о простое

Отключить антивирус (может блокировать временные файлы)

Скачать дистрибутив обновления с официального сайта 1С-->

3. Пошаговая инструкция: ручное обновление через Конфигуратор

Рассмотрим процесс на примере обновления 1С:Управление торговлей 11.5.6.123 → 11.5.7.456 на SQL Server 2019:

  1. Запустите Конфигуратор от имени администратора. Подключитесь к базе в режиме Конфигуратор (обычное приложение).

  2. Откройте меню Администрирование → Поддержка → Обновить конфигурацию. Укажите путь к файлу обновления (.cfu или .zip).

  3. Выберите режим обновления:

    • 🔄 Обновить конфигурацию базы данных — если меняется структура (добавляются новые таблицы, поля).
    • 🔄 Обновить только конфигурацию — если изменения затрагивают только логику (отчёты, обработки).

  • Дождитесь завершения. В логе (1CV8Log\1Cv8.log) ищите строки:

    Обновление конфигурации базы данных завершено успешно.
    

    Время выполнения: 00:15:22

    Если процесс завис на этапе Обновление структуры БД более 30 минут — проверьте блокировки в SQL Server через запрос:

    SELECT * FROM sys.dm_tran_locks;

  • После обновления конфигурации обязательно выполните реструктуризацию базы данных:

    1. Перейдите в Администрирование → Тестирование и исправление.

    2. Отметьте флаги:

      • 🔧 Реструктуризация таблиц информационной базы
      • 🔧 Проверка логической целостности
      • 🔧 Проверка ссылочной целостности

    3. Запустите процесс. Для баз размером >30 ГБ это может занять несколько часов.

    4. Что делать если обновление зависло?

      Если процесс обновления "замирает" на этапе изменения структуры БД:

      1. Проверьте журнал SQL Server Error Log на наличие ошибок типа timeout expired или deadlock.

      2. Увеличьте таймаут команд в 1С: в файле conf.cfg добавьте строку SQLCommandTimeout=3600 (значение в секундах).

      3. Если блокировка вызвана долго выполняющейся транзакцией, найдите её ID через SELECT session_id, command FROM sys.dm_exec_requests; и завершите командой KILL {session_id};.

      ⚠️ Внимание: Если в вашей базе используются распределённые информационные базы (РИБ), сначала обновите центральную базу, а затем — периферийные. Обратный порядок приведёт к ошибкам синхронизации.

      4. Типичные ошибки и их решения

      Даже при тщательной подготовке обновление может завершиться ошибкой. Рассмотрим самые распространённые случаи и способы их устранения:

      Ошибка Причина Решение
      Недостаточно прав для изменения структуры БД Пользователь 1С не имеет роли db_owner в SQL Server Выполните в SSMS:
      ALTER ROLE db_owner ADD MEMBER [ИмяПользователя1С];
      Обнаружены несовместимые изменения конфигурации Попытка применить обновление от другой ветки (например, 8.3.21 для базы 8.3.20) Скачайте правильную версию обновления или выполните поэтапное обновление через промежуточные релизы
      Timeout expired. The timeout period elapsed Долгое выполнение транзакции (типично для баз >100 ГБ) Увеличьте таймаут в conf.cfg или разбейте обновление на части через 1С:EDT
      Ошибка блокировки при изменении таблицы [dbo].[_1S*] Активные пользовательские сессии или фоновые задания Завершите все сессии через KILL или обновляйте в нерабочее время

      Если ошибка не устраняется стандартными методами, изучите расширенный лог SQL Server:

      • 📜 Включите трассировку через DBCC TRACEON(1222, -1) для фиксации блокировок.
      • 🔍 Используйте SQL Server Profiler, чтобы отследить медленные запросы от 1С.
      💡

      Если обновление прервалось на половине, не пытайтесь запустить его заново сразу. Сначала выполните Тестирование и исправление с флагом Восстановление структуры таблиц, затем повторите обновление.

      5. Оптимизация производительности после обновления

      Новые версии 1С часто вводят изменения, которые могут как ускорить, так и замедлить работу системы. После обновления:

      1. Обновите статистику SQL Server:

        EXEC sp_updatestats;

        Это поможет оптимизатору запросов строить более эффективные планы выполнения.

      2. Пересоберите индексы для таблиц с высокой фрагментацией (проверяется через sys.dm_db_index_physical_stats). Скрипт для перестроения:

        ALTER INDEX ALL ON [dbo].[_1SJournal] REBUILD;

      3. Настройте параметры памяти в 1С:

        • В файле conf.cfg добавьте:
          MaxMemoryUsage=8000  ; (в МБ, ~80% от физической RAM сервера)
          

          CacheSize=4000

        • Для SQL Server ограничьте максимальную память через sp_configure 'max server memory', 16384 (пример для 16 ГБ).

      4. Если после обновления пользователи жалуются на "тормоза", проверьте:

        • 📊 Планы выполнения запросов в SQL Server Management Studio. Ищите операции Table Scan или Hash Match — они часто указывают на отсутствие индексов.
        • 🔄 Журнал медленных запросов в 1С: Администрирование → Журнал регистрации → Настройка → Запросы.
        💡

        После обновления до версий 1С 8.3.20+ рекомендуется включить параметр UseExtendedDataTypes=Yes в conf.cfg. Это улучшает работу с большими числами и датами, но требует SQL Server 2016 или новее.

        6. Автоматизация обновлений для крупных инфраструктур

        Если в вашей компании десятки баз 1С, ручное обновление становится неэффективным. В этом случае поможет автоматизация:

        Способ 1: PowerShell-скрипты

        Пример скрипта для обновления конфигурации и реструктуризации:

        $v8Path = "C:\Program Files\1cv8\8.3.22.1864\bin\1cv8.exe"
        

        $baseName = "TradeBase"

        $updateFile = "C:\Updates\ut11_5_7_456.cfu"

        $adminLogin = "Администратор"

        $adminPwd = "password"

        & $v8Path DESIGNER /S "sqlserver\$baseName" /N $adminLogin /P $adminPwd /UpdateCfg "$updateFile" /Out "C:\Logs\update_$baseName.log"

        & $v8Path DESIGNER /S "sqlserver\$baseName" /N $adminLogin /P $adminPwd /TestAndFixIB -Reconstruct

        Способ 2: 1С:EDT (Enterprise Development Tools)

        1С:EDT позволяет:

        • 🔄 Сравнивать и объединять конфигурации.
        • 📦 Создавать пакеты обновлений для распределённых баз.
        • 🤖 Автоматизировать тестирование после обновления.

        Способ 3: Инструменты сторонних разработчиков

        Продукты вроде 1С:Апгрейд или Vanessa-ADD предоставляют:

        • 📅 Планировщик обновлений по расписанию.
        • 📊 Отчёты о результатах обновления (успех/неудача).
        • 🔄 Возможность отката к предыдущей версии.
      ⚠️ Внимание: При автоматизации обновлений настройте уведомления о сбоях через email или Telegram-bot. Например, в PowerShell добавьте блок:
      if ($LASTEXITCODE -ne 0) {
      

      Send-MailMessage -To "admin@company.ru" -Subject "Ошибка обновления 1С" -Body "База $baseName не обновлена!"

      }

      7. Проверка работоспособности и откат при необходимости

      После обновления выполните комплексную проверку:

      1. Тестовые сценарии:

        • 📝 Проведите типичные операции: создание документа, формирование отчёта, печать.
        • 🔍 Проверьте работу интеграций (например, обмен с 1С:Розница или Битрикс24).

    5. Мониторинг производительности:

      • 📈 Сравните время выполнения ключевых отчётов до и после обновления.
      • 🖥️ Проверьте загрузку CPU/RAM на сервере SQL через Performance Monitor.

  • Проверка целостности данных:

    DBCC CHECKDB([ИмяБазы]) WITH NO_INFOMSGS;

  • Если обнаружены критические ошибки, выполните откат:

    1. Восстановите базу из бэкапа через SSMS:

      RESTORE DATABASE [TradeBase] FROM DISK = 'C:\Backups\TradeBase.bak'
      

      WITH REPLACE, RECOVERY;

    2. Если бэкап недоступен, используйте Восстановление из файла (.dt) через Конфигуратор.

    💡

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

    FAQ: Частые вопросы по обновлению 1С на SQL

    Можно ли обновлять 1С на SQL-сервере без остановки работы пользователей?

    Технически возможно, но крайне не рекомендуется. Даже если использовать режим Обновить только конфигурацию, активные пользовательские сессии могут заблокировать таблицы, что приведёт к сбою. Исключение — обновление через распределённые информационные базы (РИБ), где изменения применяются постепенно.

    Для минимального простоя:

    1. Обновите тестовую копию базы и проверьте её.
    2. Перенесите пользователей на тестовую базу на время обновления основной.
    3. Используйте SQL Server Always On для переключения на резервный сервер.
    Как узнать, какая версия SQL Server совместима с моей 1С?

    Официальные требования публикуются в документации к платформе 1С. Актуальные данные на 2026 год:

    Версия 1С:Платформы Минимальная версия SQL Server Рекомендуемая версия
    8.3.18–8.3.19 2008 R2 SP3 2016
    8.3.20–8.3.21 2012 SP4 2017
    8.3.22+ 2016 SP2 2019/2022

    Для конфигураций типа 1С:ERP или 1С:Комплексная автоматизация рекомендуется использовать SQL Server Enterprise Edition из-за поддержки Partitioning и Compression.

    Что делать, если после обновления 1С перестала видеть базу на SQL-сервере?

    Проблема обычно связана с:

    1. Изменением протокола аутентификации: проверьте, что в SQL Server Configuration Manager включён TCP/IP и Named Pipes.
    2. Несовпадением версий клиента и сервера: обновите Native Client на сервере 1С до версии, соответствующей SQL Server.
    3. Блокировкой порта 1433 брандмауэром или антивирусом.
    4. Для диагностики используйте утилиту SQLCMD:

      sqlcmd -S sqlserver\instance -U sa -P password -Q "SELECT @@VERSION"

      Если подключение проходит, но 1С не видит базу — проверьте права пользователя в SQL Server (должны быть роли public и 1Сv8).

    Сколько времени занимает обновление большой базы (100+ ГБ)?

    Время зависит от:

    • 🖥️ Характеристик сервера: для базы 100 ГБ на SSD и 32 ГБ RAM обновление займёт 1–3 часа. На HDD и 16 ГБ RAM — до 6–8 часов.
    • 🔧 Типа обновления:
      • Обновление только конфигурации: 20–40 минут.
      • Обновление с изменением структуры БД: 1–4 часа + время на реструктуризацию.
    • 📡 Скорости дисковой подсистемы: для SQL Server критичен параметр IOPS (минимум 500 для баз >50 ГБ).
    • Для ускорения:

      • 🔹 Разбейте базу на файлы данных (.ndf) и разместите их на разных дисках.
      • 🔹 Временно отключите антивирусное сканирование файлов .mdf/.ldf.
      • 🔹 Используйте параметр /UC (обновление конфигурации без проверки зависимостей) для тестовых баз.
    Нужно ли обновлять платформу 1С перед обновлением конфигурации?

    Да, обновление платформы должно предшествовать обновлению конфигурации. Порядок действий:

    1. Обновите 1С:Платформу на сервере и клиентских машинах.
    2. Перезапустите службу 1С:Предприятие 8.3 (ragent).
    3. Обновите конфигурацию базы данных.

    Исключение: если новая конфигурация требует более свежую платформу, чем установлена, обновление конфигурации будет заблокировано с ошибкой:

    Несоответствие версий платформы. Требуется версия не ниже 8.3.22.1864

    В этом случае сначала обновите платформу.