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

Важно понимать, что подключение 1С к SQL Server принципиально отличается от файлового режима: здесь данные хранятся не в локальных файлах (.1CD), а в полноценной реляционной базе. Это даёт преимущества в скорости, масштабируемости и безопасности, но требует дополнительных знаний по администрированию СУБД. Если вы впервые сталкиваетесь с такой задачей — не переживайте: следуя нашей инструкции, вы сможете настроить соединение даже без глубоких знаний в SQL.

1. Совместимость версий 1С и SQL Server: что нужно знать

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

Версия 1С:Предприятие Поддерживаемые версии SQL Server Примечания
8.3.20 и выше 2019, 2017, 2016, 2014 Рекомендуется SQL Server 2019 для новых проектов
8.3.10–8.3.19 2017, 2016, 2014, 2012 Поддержка SQL Server 2012 прекращена с 2023 года
8.3.6–8.3.9 2014, 2012, 2008 R2 Требуется установка SQL Server Native Client
8.2 и ниже 2008 R2, 2005 Не рекомендуется для новых развёртываний

Обратите внимание: Express-версии SQL Server имеют ограничение на объём базы данных (10 ГБ в SQL Server 2019 Express). Если ваша база 1С превышает этот лимит, потребуется стандартная или enterprise-версия. Также проверьте разрядность систем: 32-битные версии SQL Server не поддерживаются платформой 1С с 8.3.10.

⚠️ Внимание: Если вы используете Linux-версию 1С:Предприятие, то для подключения к SQL Server потребуется ODBC-драйвер от Microsoft. Настройка соединения в этом случае отличается от стандартной схемы для Windows.

2. Подготовка сервера: установка и настройка SQL Server

Перед созданием базы 1С необходимо подготовить сам SQL Server. Вот ключевые шаги:

  • 📥 Установите SQL Server с официального сайта Microsoft. Выберите редакцию, соответствующую вашей версии 1С (см. таблицу выше).
  • 🔧 Настройте смешанный режим аутентификации (SQL Server and Windows Authentication mode). Это позволит использовать как доменные учётные записи, так и локальные логины SQL.
  • 🛡️ Создайте отдельного пользователя для 1С с правами db_owner на будущую базу. Не используйте учётку sa по соображениям безопасности!
  • 📊 Проверьте настройки сортировки (collation). Для русскоязычных баз рекомендуется Cyrillic_General_CI_AS.

После установки запустите SQL Server Configuration Manager и убедитесь, что:

  1. Служба SQL Server (MSSQLSERVER) работает.
  2. Протокол TCP/IP включён (по умолчанию он может быть отключён).
  3. Порт по умолчанию (1433) не заблокирован фаерволом.
📊 Какую версию SQL Server вы используете с 1С?
2019
2017
2016
2014
Другая

3. Создание базы данных для 1С в SQL Server

Базу данных для 1С можно создать двумя способами: через Конфигуратор 1С или вручную в SQL Server Management Studio (SSMS). Рассмотрим оба варианта.

Способ 1: Автоматическое создание через Конфигуратор

Это самый простой метод, подходящий для большинства случаев:

  1. Запустите 1CV8.EXE в режиме конфигуратора.
  2. Выберите Файл → Новая база данных.
  3. Укажите тип Сервер 1С:Предприятия на SQL Server.
  4. Введите параметры подключения:
    • Имя сервера: localhost\SQLEXPRESS (если используете Express-версию) или имя вашего сервера.
    • Имя базы данных: например, Base1C_Trade.
    • Логин и пароль пользователя SQL, созданного ранее.
  5. Нажмите Готово — база будет создана автоматически.
  6. Способ 2: Ручное создание в SSMS

    Этот метод даёт больше контроля над параметрами базы, но требует знаний SQL. Выполните следующий скрипт:

    CREATE DATABASE [Base1C_Trade]
    

    CONTAINMENT = NONE

    ON PRIMARY

    ( NAME = N'Base1C_Trade', FILENAME = N'C:\Data\Base1C_Trade.mdf' , SIZE = 8MB , MAXSIZE = UNLIMITED, FILEGROWTH = 64MB )

    LOG ON

    ( NAME = N'Base1C_Trade_log', FILENAME = N'C:\Data\Base1C_Trade_log.ldf' , SIZE = 8MB , MAXSIZE = 2048GB , FILEGROWTH = 64MB );

    GO

    ALTER DATABASE [Base1C_Trade] SET COMPATIBILITY_LEVEL = 150; -- Для SQL Server 2019

    GO

    После создания базы не забудьте назначить права пользователю 1С:

    USE [Base1C_Trade];
    

    CREATE USER [User1C] FOR LOGIN [User1C];

    ALTER ROLE [db_owner] ADD MEMBER [User1C];

    GO

    Сервер SQL доступен по сети|Порт 1433 открыт|Пользователь 1С имеет права db_owner|Сортировка базы совпадает с настройками 1С|Объём диска достаточен для роста базы-->

    4. Настройка подключения в 1С: пошаговая инструкция

    Теперь, когда база готова, настройте подключение в 1С:Предприятие:

    1. Добавление информационной базы:
      • Запустите 1CV8.EXE.
      • Нажмите ДобавитьДобавление в список существующей информационной базы.
      • Выберите На сервере 1С:Предприятия (если используете кластер серверов) или На этом компьютере или на компьютере в локальной сети.
    2. Указание параметров подключения:
      • Имя сервера: .\SQLEXPRESS (для локального Express) или IP-адрес\имя_экземпляра.
      • Имя базы данных: то, что вы указали при создании (например, Base1C_Trade).
      • Тип аутентификации: SQL Server (если используете логин/пароль) или Windows.
  7. Тестирование соединения:
    • Нажмите Проверить — если всё настроено верно, появится сообщение Тестирование соединения прошло успешно.
    • Если возникает ошибка, проверьте:
      • 🔌 Доступность сервера по сети (ping и telnet на порт 1433).
      • 👤 Правильность логина/пароля.
      • 📋 Права пользователя в SQL Server.

После успешного подключения база появится в списке. Теперь можно запускать её в режиме 1С:Предприятие или Конфигуратор.

💡

Если при подключении возникает ошибка "Не удалось установить соединение с SQL Server", попробуйте в строке подключения явно указать порт: сервер,1433. Это помогает, если на сервере изменён стандартный порт.

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

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

  • 🚫 Ошибка 40 (Could not open a connection to SQL Server):

    Причины:

    • Служба SQL Server не запущена.
    • Порт 1433 заблокирован фаерволом.
    • Неверное имя сервера или экземпляра.

    Решение: проверьте статус службы в services.msc и настройки брандмауэра.

  • 🔒 Ошибка 18456 (Login failed for user):

    Причины:

    • Неверный логин/пароль.
    • Пользователь не имеет прав на базу.
    • Учётная запись отключена.

    Решение: проверьте настройки безопасности в SSMS или сбросьте пароль.

  • 📉 Ошибка 945 (Database cannot be opened due to inaccessible files):

    Причины:

    • Файлы базы (.mdf/.ldf) повреждены или недоступны.
    • Недостаточно прав на папку с базой.

    Решение: проверьте пути к файлам в свойствах базы и права доступа.

⚠️ Внимание: Если после обновления 1С или SQL Server база перестала открываться с ошибкой несовместимости версий, попробуйте изменить уровень совместимости базы в SSMS:
ALTER DATABASE [YourBase] SET COMPATIBILITY_LEVEL = 150; -- Для SQL Server 2019

Уровни совместимости: 150 (2019), 140 (2017), 130 (2016), 120 (2014).

6. Оптимизация производительности SQL-базы 1С

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

  • Индексы:

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

  • 🗃️ Разделение файлов базы:

    Размещайте .mdf (данные) и .ldf (лог) на разных физических дисках. Это уменьшит нагрузку на подсистему ввода-вывода.

  • 🧹 Регулярное обслуживание:

    Настройте задачи по:

    • Перестроению индексов (REORGANIZE или REBUILD).
    • Очистке лога транзакций (BACKUP LOG).
    • Обновлению статистики (UPDATE STATISTICS).

  • 📊 Мониторинг:

    Используйте инструменты SQL Server Profiler или Extended Events для анализа нагрузки. Обращайте внимание на запросы с высоким CPU или Duration.

Для баз 1С объёмом более 50 ГБ рекомендуется:

  • Настроить разбиение таблиц по файлам (filegroups).
  • Использовать сжатие данных (DATA_COMPRESSION = PAGE).
  • Рассмотреть кластеризацию SQL Server для высокой доступности.
Как проверить фрагментацию индексов?

Выполните запрос в SSMS:

SELECT

OBJECT_NAME(ind.OBJECT_ID) AS TableName,

ind.name AS IndexName,

indexstats.avg_fragmentation_in_percent

FROM

sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) indexstats

INNER JOIN

sys.indexes ind ON ind.object_id = indexstats.object_id AND ind.index_id = indexstats.index_id

WHERE

indexstats.avg_fragmentation_in_percent > 30 -- Фрагментация более 30%

ORDER BY

indexstats.avg_fragmentation_in_percent DESC;

Фрагментация более 30% требует перестроения индекса (REBUILD), 10-30% — реорганизации (REORGANIZE).

7. Безопасность: защита данных в SQL-базе 1С

База 1С на SQL Server содержит критически важные данные компании, поэтому вопрос безопасности должен быть приоритетом. Основные меры защиты:

  • 🔐 Шифрование:

    Используйте Transparent Data Encryption (TDE) для шифрования файлов базы. Это защитит данные даже если злоумышленник получит доступ к файлам .mdf/.ldf.

  • 🛡️ Роли и права:

    Следуйте принципу минимальных привилегий:

    • Пользователь 1С должен иметь только db_owner на свою базу, но не на весь сервер.
    • Для отчётности создайте отдельного пользователя с правами db_datareader.

  • 🔄 Резервное копирование:

    Настройте автоматическое резервирование с учётом особенностей 1С:

    • Полная копия (FULL BACKUP) — раз в неделю.
    • Дифференциальная копия (DIFFERENTIAL BACKUP) — ежедневно.
    • Копия лога транзакций (LOG BACKUP) — каждый час (для критичных баз).

  • 🚪 Аудит:

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

Для дополнительной защиты можно использовать:

  • Row-Level Security (RLS) — ограничение доступа к строкам таблиц на уровне SQL.
  • Dynamic Data Masking — маскировка конфиденциальных данных (например, зарплат) для неавторизованных пользователей.
⚠️ Внимание: Если вы используете 1С:Предприятие 8.3.20+ с SQL Server 2019, проверьте настройки Secure Enclaves для работы с зашифрованными данными. Неправильная конфигурация может привести к ошибкам при выполнении запросов.

8. Миграция с файлового режима на SQL Server

Если вы переходите с файлового режима (.1CD) на SQL Server, процесс миграции включает несколько этапов:

  1. Подготовка:
    • Создайте резервную копию файловой базы (.1CD и .1Cv8Log).
    • Проверьте целостность данных через Тестирование и исправление в Конфигураторе.
    • Убедитесь, что на SQL Server достаточно места (файловая база может увеличиться в 1.5–2 раза).
  • Выгрузка/загрузка:
    • В Конфигураторе выберите Администрирование → Выгрузить информационную базу (.dt).
    • Создайте новую базу на SQL Server (см. раздел 3).
    • В Конфигураторе подключитесь к SQL-базе и выберите Администрирование → Загрузить информационную базу.
    • Проверка:
      • Сравните данные в старой и новой базе (например, через отчёты).
      • Проверьте производительность — некоторые запросы могут работать медленнее из-за различий в индексах.

    Обратите внимание на следующие нюансы:

    • 🔄 История изменений: при миграции теряется история транзакций (если не используется 1С:Линк или аналоги).
    • 📅 Даты: в SQL Server используются другие форматы хранения даты/времени, что может повлиять на отчёты.
    • 🔑 Права доступа: настройте права пользователей заново — они не переносятся из файлового режима.
    💡

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

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

    Можно ли подключить 1С к MySQL или PostgreSQL вместо SQL Server?

    Официально платформа 1С:Предприятие поддерживает только Microsoft SQL Server (включая Express) и IBM DB2 (для Linux). Подключение к MySQL или PostgreSQL возможно только через сторонние ODBC-драйверы или внешние обработки, но это не гарантирует стабильной работы и может привести к потере данных. Для критичных систем рекомендуется использовать только сертифицированные СУБД.

    Как перенести базу 1С с одного SQL Server на другой?

    Есть два основных способа:

    1. Через резервную копию:
      • Сделайте FULL BACKUP базы на исходном сервере.
      • Восстановите её на новом сервере (RESTORE DATABASE).
      • Обновите строку подключения в 1С.
  • Через выгрузку/загрузку:
    • Выгрузите базу в файл .dt через Конфигуратор.
    • Создайте новую базу на целевом сервере.
    • Загрузите .dt в новую базу.
  • Первый способ быстрее и сохраняет все настройки SQL, второй — надёжнее для разных версий СУБД.

    Почему 1С медленно работает с SQL Server?

    Причины низкой производительности могут быть разными:

    • 🔍 Отсутствие индексов: проверьте планы выполнения медленных запросов в SSMS.
    • 💾 Дисковая подсистема: SQL Server чувствителен к скорости дисков. Используйте SSD или RAID-массивы.
    • 🧹 Фрагментация данных: регулярно выполняйте REINDEX и UPDATE STATISTICS.
    • 📶 Сетевые задержки: если сервер 1С и SQL Server находятся в разных сетях, проверьте пинг и пропускную способность.
    • 🔄 Блокировки: длительные транзакции в 1С могут блокировать таблицы. Используйте sp_who2 для мониторинга.

    Для диагностики включите журнал производительности 1С (Технологический журнал) и проанализируйте медленные операции.

    Можно ли использовать SQL Server Express для 1С с 50 пользователями?

    SQL Server Express имеет ограничение на объём базы (10 ГБ в версии 2019), но не на количество подключений. Однако для 50 пользователей есть нюансы:

    • Плюсы: бесплатно, подходит для тестирования или небольших компаний.
    • Минусы:
      • Ограничение по размеру базы может быть достигнуто быстро (особенно если используются документы с вложениями).
      • Нет SQL Agent — придётся настраивать резервное копирование вручную.
      • Ограниченные возможности по оптимизации (нет Resource Governor).

    Для 50 пользователей лучше использовать SQL Server Standard, особенно если база активно растёт. Express подойдёт только для временного решения или малых нагрузок.

    Как настроить резервное копирование базы 1С на SQL Server?

    Резервное копирование базы 1С на SQL Server можно настроить несколькими способами:

    1. Через SSMS (ручной способ):
      • ПКМ по базе → Tasks → Back Up.
      • Выберите тип копии (Full, Differential или Transaction Log).
      • Укажите путь для сохранения (желательно на другом диске).
  • Через SQL Agent (автоматический):
    • Создайте Maintenance Plan с расписанием.
    • Добавьте задачу Back Up Database.
    • Настройте уведомления об ошибках.
    • Через 1С (для файлового резерва):
      • Используйте обработку ВыгрузкаЗагрузкаДанныхXML для выборочного резервирования.
      • Настройте регламентное задание в 1С для автоматической выгрузки.

    Рекомендации:

    • Храните копии не менее 7 дней (для FULL) и 1 месяца (для LOG).
    • Тестируйте восстановление из резервных копий не реже чем раз в квартал.
    • Для больших баз используйте сжатие (WITH COMPRESSION).