Определяем версию SQL Server, PostgreSQL и Oracle под 1С
Содержание
Версию СУБД узнают на стороне самой базы данных, а не внутри 1С. Самый быстрый способ — выполнить один SQL-запрос: SELECT @@VERSION для Microsoft SQL Server, SELECT version(); для PostgreSQL и SELECT * FROM v$version; для Oracle. В ответ придёт полная строка с номером выпуска, редакцией и разрядностью.
Сама платформа 1С версию СУБД не показывает — в консоли кластера видно только её тип и адрес сервера. Поэтому порядок такой: сначала определяем, какая СУБД обслуживает базу (или что база файловая и внешней СУБД нет), а потом подключаемся к этой СУБД и спрашиваем версию её родными средствами.
Чтобы не листать статью, вот короткая шпаргалка — по одному запросу на каждую СУБД:
| СУБД | Запрос | Что покажет |
|---|---|---|
| MS SQL Server | SELECT @@VERSION | Выпуск, редакцию, ОС и разрядность |
| MS SQL Server | SELECT SERVERPROPERTY('ProductVersion') | Только номер версии |
| PostgreSQL | SELECT version(); | Полную строку сборки |
| PostgreSQL | SHOW server_version; | Голый номер версии |
| Oracle | SELECT * FROM v$version; | Выпуск и номер ядра |
Дальше — подробности по каждому серверу, способ посмотреть тип СУБД глазами администратора 1С и таблица совместимости платформы с конкретным выпуском сервера.
С чего начать: клиент-серверная база или файловая
Внешняя СУБД есть только у клиент-серверных баз. Если база файловая, данные лежат в одном файле 1Cv8.1CD, встроенный движок работает внутри платформы, и никакого MS SQL или PostgreSQL за ней нет — вопрос о версии СУБД для такой базы не стоит.
Отличить одно от другого просто по строке подключения. В окне запуска 1С выделите базу и посмотрите на её свойства: у файловой указан путь к каталогу, у клиент-серверной — имя кластера серверов и имя информационной базы на сервере.
Если базу открывают через веб-клиент или тонкий клиент по адресу вида Srvr="сервер";Ref="имя_базы", это клиент-серверный вариант, и версию ищем на сервере СУБД.
Тип самой СУБД (MS SQL, PostgreSQL, Oracle, IBM DB2) задаётся при создании базы в кластере и виден в консоли администрирования — об этом раздел ниже. Зная тип, выбираете нужный запрос.
Как проверить версию Microsoft SQL Server
Для MS SQL Server есть три рабочих пути: графический, запросом и из командной строки.
Через SQL Server Management Studio (SSMS). Подключитесь к экземпляру. Номер версии показывается прямо в обозревателе объектов — в скобках рядом с именем сервера. Для подробностей нажмите на сервер правой кнопкой → Свойства (Properties): на вкладке General перечислены версия, редакция и операционная система.
Запросом T-SQL. Откройте новое окно запроса и выполните:
SELECT @@VERSION;
Ответ — одна длинная строка со всем сразу. Если нужны отдельные поля, удобнее так:
SELECT
SERVERPROPERTY('ProductVersion') AS Версия,
SERVERPROPERTY('ProductLevel') AS Уровень,
SERVERPROPERTY('Edition') AS Редакция;
ProductVersion вернёт номер вида 15.0.2000.5, ProductLevel — уровень обновлений (RTM, SP1, CU20), Edition — редакцию (Standard, Enterprise, Express).
Из командной строки. Если SSMS не установлена, подойдёт утилита sqlcmd:
sqlcmd -S localhost -E -Q "SELECT @@VERSION"
Ключ -E включает проверку подлинности Windows; вместо localhost подставьте имя или имя\экземпляр.
Имя экземпляра берётся из той же карточки базы в консоли кластера (поле Сервер баз данных). Если SQL Server поставлен именованным экземпляром, в поле будет запись вида сервер\SQLEXPRESS — её и используйте при подключении.
Ещё один источник — журнал ошибок SQL Server (файл ERRORLOG в каталоге Log экземпляра). В самой первой строке при старте службы сервер записывает свою полную версию и редакцию. Это выручает, когда к серверу нет доступа через SSMS, но есть доступ к файлам.
Номер в начале строки расшифровывается по семейству выпусков:
| Номер версии | Выпуск SQL Server |
|---|---|
| 13.x | SQL Server 2016 |
| 14.x | SQL Server 2017 |
| 15.x | SQL Server 2019 |
| 16.x | SQL Server 2022 |
Для 1С почти всегда важна не только версия, но и редакция: Express имеет ограничение на размер базы, и при росте данных это становится причиной сбоев.
Как определить версию PostgreSQL для базы 1С
У PostgreSQL версию тоже проще всего спросить запросом. Подключитесь к серверу любым клиентом (psql, pgAdmin, DBeaver) и выполните:
SELECT version();
Придёт строка вида PostgreSQL 15.4 ... compiled by .... Если нужен только номер без лишнего текста:
SHOW server_version;
Эта команда вернёт голый номер, например 15.4. А SHOW server_version_num; даст его же числом (150004) — так удобнее сравнивать версии в скриптах.
Из консоли сервера. На самой машине с PostgreSQL номер версии показывают исполняемые файлы:
psql --version
postgres --version
psql --version печатает версию клиентской утилиты, а не сервера. На одной машине они обычно совпадают, но если подключаетесь к удалённому серверу, доверяйте запросу SELECT version();, а не локальному psql.
Если доступа к серверу запросом нет, но есть доступ к файлам, мажорную версию подскажет файл PG_VERSION в каталоге данных кластера (data): в нём лежит одно число — номер основной версии, например 15. Полный номер с минорной частью этот файл не хранит, но для сверки совместимости мажорной версии чаще всего достаточно.
Для 1С подходит не любой PostgreSQL, а специальная сборка с патчами под 1С. Это ключевой момент: обычный «ванильный» PostgreSQL с базой 1С стабильно не работает
. В строке из SELECT version(); у правильной сборки обычно есть пометка, что она собрана для 1С, — если такой пометки нет, сборку стоит заменить на адаптированную.
Диагностика версии Oracle Database
С Oracle работают те же, кто его администрирует, поэтому способов несколько, и все — через словарь данных.
Классический запрос:
SELECT * FROM v$version;
В выводе будет строка Oracle Database ... с номером (например 19c) и разрядностью. Если нужны компоненты по отдельности:
SELECT * FROM product_component_version;
Эта таблица показывает версию ядра и установленных компонентов построчно. Короткий номер экземпляра даёт:
SELECT version FROM v$instance;
В выпусках 18c и новее у представления v$instance есть столбец version_full — в нём полный номер вместе с уровнем обновлений (release update):
SELECT version_full FROM v$instance;
Из командной строки. Клиент sqlplus печатает свою версию при запуске с ключом:
sqlplus -version
А версию сервера он показывает в баннере сразу после подключения к базе. Для запросов к v$version и v$instance нужны права на просмотр словаря — обычно у администратора базы они есть, обычному пользователю их выдают отдельно.
Где 1С показывает тип и сервер СУБД
Сама платформа номер версии СУБД не хранит, но подсказывает, куда смотреть: показывает тип сервера и его адрес. Этого достаточно, чтобы выбрать правильный запрос из разделов выше.
Откройте оснастку Администрирование серверов 1С Предприятия (консоль кластера). Разверните узел кластера → Информационные базы → выделите нужную базу → правой кнопкой Свойства. В карточке базы увидите:
- 🗄️ Тип СУБД —
MS SQL Server,PostgreSQL,Oracle DatabaseилиIBM DB2. - 🖥️ Сервер баз данных — имя или адрес машины с СУБД.
- 📁 База данных — имя базы внутри этой СУБД.
Зная тип и адрес, подключайтесь к указанному серверу и выполняйте соответствующий запрос.
Те же сведения можно получить утилитой администрирования rac (консольный аналог оснастки). Точные подкоманды и ключи смотрите в справке rac help и rac infobase --help — синтаксис зависит от версии платформы.
Если консоль кластера не открывается или к серверу СУБД нет прямого доступа, попросите системного администратора — у него есть и права на СУБД, и доступ к машине, где она стоит.
Когда версия нужна для диагностики: журнал и ошибки
Отдельно версия СУБД в журнале регистрации 1С не записывается — журнал фиксирует действия пользователей и ошибки приложения, а не параметры сервера баз данных.
Но при сбоях на стороне СУБД полезен технологический журнал платформы (logcfg.xml): события DBMSSQL и EXCP сохраняют текст ошибки от сервера, и в нём нередко видна версия и строка подключения. Это помогает, когда база «падает» и нужно понять, с какой именно СУБД говорит платформа.
Версия СУБД чаще всего требуется в трёх ситуациях:
- 🔄 Перед обновлением платформы 1С — свериться с системными требованиями нового релиза.
- 🧩 При миграции базы на другой сервер — чтобы на приёмнике стояла совместимая или более новая версия.
- 🛠️ При разборе ошибок вида «ошибка СУБД» — часть проблем решается установкой свежего пакета обновлений (CU, service pack).
Разрядность и издание: что важно, кроме номера
Один номер версии ещё не описывает сервер целиком. Для совместимости с 1С и для производительности смотрят на два дополнительных параметра.
Разрядность. Современные серверы 1С и СУБД — 64-разрядные. Разрядность SQL Server видна в той же строке @@VERSION (пометка (X64)), у PostgreSQL — в выводе SELECT version(); (x86_64). Ставить 32-разрядную СУБД под рабочую базу 1С не стоит — она упирается в потолок памяти задолго до реальной нагрузки.
Издание и уровень обновлений. У SQL Server издание (Edition) и уровень (ProductLevel) порой важнее мажорного номера: редакция Express ограничивает размер базы, а установка свежего накопительного обновления (CU) закрывает известные ошибки, из-за которых база 1С может работать нестабильно. Поэтому при разборе проблем фиксируйте не только «SQL Server 2019», но и редакцию с уровнем обновлений.
Для PostgreSQL аналог издания — происхождение сборки: обычная она или патченная под 1С. Это проверяется по строке версии и решает, будет ли база вообще работать.
Совместимость платформы 1С и версии СУБД
Платформа 1С работает не с любым выпуском сервера, а с проверенным диапазоном версий. Точный список для конкретного релиза всегда указан в его системных требованиях — ориентироваться нужно на них, потому что диапазон меняется от релиза к релизу.
Общая картина для актуальных релизов платформы 8.3 выглядит так:
| СУБД | Что учитывать |
|---|---|
| Microsoft SQL Server | Поддерживаются современные выпуски (2016 и новее); редакция Express — с ограничением размера базы |
| PostgreSQL | Только специальная сборка, адаптированная под 1С; обычный дистрибутив не подходит |
| Oracle Database | Поддерживается; требуется согласованная с платформой версия клиента и сервера |
| IBM DB2 | Поддерживается ограниченно; применяется редко |
Правило сравнения простое: версия СУБД должна быть не ниже минимальной из системных требований вашего релиза платформы. Формулировки «старше/новее» путают — сравнивайте по номеру.
Если планируете ставить новую версию СУБД, а старую базу переносить на неё, проверьте совместимость в обе стороны: и платформа должна поддерживать новую СУБД, и выбранный выпуск СУБД не должен быть снят с поддержки своим производителем.
Частые вопросы
Показывает ли сама 1С версию СУБД где-нибудь в интерфейсе?
У файловой базы какая версия СУБД?
1Cv8.1CD. Вопрос о версии MS SQL или PostgreSQL для неё не возникает.Чем версия отличается от редакции в SQL Server?
Express, Standard, Enterprise). Для 1С важны обе: Express ограничивает размер базы, и на большой базе это становится проблемой.Почему мой PostgreSQL не работает с 1С, хотя версия свежая?
SELECT version(); — у правильной сборки есть соответствующая пометка.Нужны ли особые права, чтобы узнать версию?
v$version и v$instance нужны права на системные представления — их выдаёт администратор.