Подключение информационной базы 1С 8.3 к рабочему месту и к серверу СУБД

· 10 мин

Содержание

Чтобы подключить базу данных 1С, откройте окно запуска, нажмите Добавить, выберите Добавление в список существующей информационной базы и укажите путь к каталогу с файлом 1Cv8.1CD (файловый вариант) или имя сервера 1С и имя базы в кластере (клиент-серверный вариант). Всё остальное — подготовка, чтобы этот шаг сработал с первого раза.

Частое заблуждение — искать в Windows источник данных ODBC и создавать DSN «для 1С». Платформе 1С:Предприятие 8.3 DSN не нужен вообще. К MS SQL и PostgreSQL обращается не рабочее место пользователя, а сервер 1С, и параметры СУБД задаются один раз при регистрации базы в кластере.

Файл или сервер: какой вариант работы выбрать

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

ВариантГде лежат данныеЧто нужноКогда подходит
📁 ФайловыйОдин файл 1Cv8.1CD в каталогеТолько клиент 1С1–5 пользователей, одна организация, небольшой объём
🖥️ Клиент-серверныйТаблицы в MS SQL или PostgreSQLСервер 1С + СУБД + лицензия на серверМного пользователей, тяжёлые закрытия месяца, обмены по расписанию

Ориентиры, на которые стоит смотреть при выборе:

  • 👥 Число одновременных пользователей. В файловой базе запись блокирует таблицы целиком, и при росте числа сеансов пользователи начинают ждать друг друга.
  • 📦 Размер файла. Базе в несколько гигабайт, которая лежит в сетевой папке, тяжело на любой сети.
  • ⏱️ Регламентные задания. В файловом варианте они выполняются только в открытом сеансе клиента. На сервере 1С они идут сами, без пользователя.
  • 💰 Лицензии. Для клиент-серверного варианта нужна отдельная лицензия на сервер 1С, а для MS SQL — ещё и лицензия Microsoft. PostgreSQL бесплатен.

Перейти с файлового варианта на серверный можно в любой момент: выгрузите базу в .dt через Конфигуратор (Администрирование → Выгрузить информационную базу), создайте пустую базу на сервере и загрузите туда файл.

Как подключить файловую базу данных 1С

Файловая база — это каталог, внутри которого лежит 1Cv8.1CD. Подключить её — значит показать окну запуска этот каталог.

Шаги на рабочем месте

  1. Запустите 1С:Предприятие. Откроется окно со списком баз.
  2. Нажмите Добавить.
  3. Выберите Добавление в список существующей информационной базы → Далее.
  4. Задайте наименование, как оно будет видно в списке, например «Бухгалтерия ООО Север».
  5. В поле каталога укажите путь к папке с базой: локальный D:\Bases\BP_Sever или сетевой \\FS01\Bases\BP_Sever.
  6. На следующем шаге выберите вариант аутентификации и режим запуска, нажмите Готово.

Указывайте папку, а не сам файл 1Cv8.1CD. Если выбрать файл, платформа не примет путь.

Сетевая папка: права и путь

Для работы по сети нужна общая папка, и у каждого пользователя на неё должны быть права на чтение и запись. Без записи 1С не сможет создать служебные файлы блокировки и сеанс не откроется.

  • 🔐 Права выдавайте и на общий ресурс, и на файловую систему (вкладка «Безопасность»).
  • 🧭 Используйте UNC-путь \\Сервер\Папка, а не подключённый диск Z:. Буква диска у разных пользователей может отличаться, а UNC одинаков для всех.
  • 🚫 Не кладите базу в папку, которую синхронизируют облачные клиенты (Яндекс Диск, OneDrive и подобные). Синхронизация открытого файла портит базу.

Строка соединения

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

File="\\FS01\Bases\BP_Sever";

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

Подготовка СУБД: MS SQL Server и PostgreSQL

В клиент-серверном варианте база данных 1С живёт в СУБД. Сервер 1С подключается к ней сам, поэтому СУБД настраивают с расчётом на него, а не на пользователей.

MS SQL Server

  1. При установке включите смешанный режим аутентификации (SQL Server и Windows). 1С подключается под учётной записью SQL Server с логином и паролем.
  2. Создайте логин для 1С. Чтобы сервер 1С мог сам создать базу, логину нужна серверная роль dbcreator. Если базу создаёт администратор СУБД заранее, достаточно роли db_owner в этой базе.
  3. Если экземпляр именованный, адрес сервера СУБД пишется как SQL01\INST1, а на сервере должна работать служба SQL Server Browser. Для экземпляра по умолчанию достаточно имени SQL01.
  4. Откройте в брандмауэре порт 1433 (или порт именованного экземпляра), если сервер 1С и SQL стоят на разных машинах.

PostgreSQL

  1. Ставьте сборку PostgreSQL, подготовленную для 1С: от фирмы 1С или Postgres Pro. «Ванильная» сборка без патчей с 1С работать не будет — платформа требует специфичных расширений.
  2. Кластер PostgreSQL инициализируйте с русской локалью, например ru_RU.UTF-8 на Linux.
  3. Задайте пароль пользователю postgres или создайте отдельную роль с правом создавать базы.
  4. Если сервер 1С стоит на другой машине, разрешите подключения: параметр listen_addresses в postgresql.conf и строка для адреса сервера 1С в pg_hba.conf. Порт по умолчанию 5432.
# pg_hba.conf — пускаем сервер 1С из подсети 10.0.5.0/24
host    all    all    10.0.5.0/24    scram-sha-256

После правки pg_hba.conf перечитайте конфигурацию (SELECT pg_reload_conf(); или перезапуск службы). Перезапуск службы обрывает все текущие сеансы — делайте его, когда в базах никто не работает .

Регистрация базы в кластере серверов 1С

Когда СУБД готова, базу нужно завести в кластере. Есть два пути, результат одинаковый.

Способ 1. Из окна запуска

Самый быстрый вариант, если база новая или вы переносите её из .dt.

  1. В окне запуска: Добавить → Создание новой информационной базы.
  2. Выберите пустую базу или базу из шаблона, затем тип расположения На сервере 1С:Предприятия.
  3. Заполните параметры (таблица ниже) и отметьте Создать базу данных в случае ее отсутствия.
  4. Нажмите Далее и Готово. Сервер 1С создаст базу в СУБД и зарегистрирует её в кластере.

Способ 2. Через консоль администрирования

Консоль «Администрирование серверов 1С Предприятия» удобна, когда базы заводит администратор, а пользователи потом только добавляют их в список.

  1. Откройте консоль, разверните Центральные серверы 1С:Предприятия → ваш сервер → Кластеры → кластер.
  2. На узле Информационные базы вызовите контекстное меню → Создать → Информационная база.
  3. Заполните те же поля, что и в окне запуска.

Из командной строки то же делает утилита rac с командой rac infobase create. Набор параметров зависит от версии платформы, смотрите его в rac help infobase.

Что вписать в поля

ПолеПримерПояснение
Имя информационной базыbp_severИмя базы в кластере, по нему пользователи подключаются
Сервер баз данныхSQL01\INST1 или pg01Адрес СУБД с точки зрения сервера 1С
Тип СУБДMSSQLServer / PostgreSQL
База данныхbp_severИмя базы в самой СУБД, удобно делать таким же
Пользователь и пароль сервера БДusr1cЛогин СУБД из предыдущего раздела
Смещение дат2000 для MS SQL, 0 для PostgreSQLДля MS SQL нужно смещение 2000, иначе даты до 1753 года не помещаются в тип SQL
Разрешить выдачу лицензий сервером 1СДаИначе клиент будет искать лицензию у себя
Установить блокировку регламентных заданийПо ситуацииСтавьте для копии рабочей базы, чтобы она не начала обмены и рассылки

Смещение дат задаётся только при создании базы. Поменять его потом нельзя — только пересоздать базу и загрузить .dt.

Подключение пользователя к базе на сервере

На каждом рабочем месте:

  1. Добавить → Добавление в список существующей информационной базы.
  2. Тип расположения — На сервере 1С:Предприятия.
  3. Кластер серверов 1С:Предприятия — имя сервера, например APP1C. Если агент работает на нестандартном порту, указывают APP1C:2541.
  4. Имя информационной базы в кластере — bp_sever.

Строка соединения при этом получится такая:

Srvr="APP1C";Ref="bp_sever";

Порты, которые должны быть открыты

Клиент сначала обращается к агенту сервера, затем к менеджеру кластера и рабочим процессам.

  • 🔌 1540 — агент сервера (ragent).
  • 🔌 1541 — менеджер кластера (rmngr).
  • 🔌 1560–1591 — диапазон рабочих процессов по умолчанию; задаётся в свойствах рабочего сервера.

Если брандмауэр пропускает только 1540 и 1541, база в списке будет видна, а войти в неё не получится — сеанс оборвётся на подключении к рабочему процессу.

Ошибки подключения и как их разобрать

Большинство отказов при подключении базы данных 1С укладывается в несколько сценариев. Сначала поймите, на каком звене обрыв: клиент → сервер 1С или сервер 1С → СУБД.

Диагностика: выберите симптом

Ещё две ситуации, которые не видны по тексту ошибки:

  • 🧩 Сервер 1С запущен от учётной записи без доступа к СУБД. При Windows-аутентификации к MS SQL ходит не пользователь, а служба 1С. Её учётная запись (по умолчанию USR1CV8) и должна иметь права в SQL.
  • 🕸️ Имя сервера не разрешается с сервера 1С. Клиент видит APP1C, а рабочий процесс сообщает клиенту своё имя, которое снаружи не резолвится. Помогает запись в DNS или в файле hosts на рабочих местах.

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

Скорость работы после подключения

База подключилась, но открывается по минуте — значит, узкое место в окружении, а не в конфигурации.

Файловая база

  • 💽 Держите файл на SSD. Файловая 1С делает много мелких чтений и записей, на HDD это заметно.
  • 🌐 Не работайте с файлом через медленную сеть. По Wi-Fi или через VPN каждое обращение к 1Cv8.1CD идёт через сеть. Для удалённых сотрудников лучше терминальный доступ (RDP) или публикация базы на веб-сервере.
  • 🛡️ Исключите каталог базы из проверки антивирусом на файловом сервере и на рабочих местах. Антивирус, проверяющий файл при каждом обращении, тормозит любую операцию.

Клиент-серверная база

  • 📍 Сервер 1С и СУБД — рядом. На одной машине или в одной быстрой локальной сети. Задержка между ними умножается на количество запросов.
  • 🧠 Ограничьте память MS SQL параметром max server memory, чтобы СУБД не забрала всю оперативную память у рабочих процессов 1С на той же машине.
  • 🔧 Настройте PostgreSQL под нагрузку. Значения shared_buffers, work_mem, effective_cache_size по умолчанию рассчитаны на минимальное железо. Подбирайте их под объём памяти сервера.
  • 🗂️ Исключите из антивируса каталог кластера (srvinfo) и каталоги с файлами данных СУБД.
  • 📊 Обслуживайте базу. В MS SQL — регулярные планы обслуживания: обновление статистики и перестроение индексов. В PostgreSQL — работающий autovacuum и периодический ANALYZE.

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

Список баз для всех сотрудников сразу

Если пользователей двадцать, добавлять базу на каждом месте вручную долго. Список баз хранится в файле ibases.v8i в профиле пользователя (%APPDATA%\1C\1CEStart\ibases.v8i). Его можно подготовить один раз и раздать.

Удобнее — общий список. В файле 1CEStart.cfg (в том же каталоге профиля или в %ALLUSERSPROFILE%\1C\1CEStart\) добавьте строку со ссылкой на файл, который лежит в сетевой папке:

CommonInfoBases=\\FS01\1C\common.v8i

Базы из common.v8i появятся в окне запуска у всех, кому прописана эта строка. Меняете файл в одном месте — список обновляется у всех.

Фрагмент файла списка для базы на сервере выглядит так:

[Бухгалтерия ООО Север]
Connect=Srvr="APP1C";Ref="bp_sever";

Частые вопросы

Нужно ли создавать источник данных ODBC, чтобы 1С увидела SQL?
Нет. Платформа 8.3 подключается к MS SQL и PostgreSQL через сервер 1С своими средствами. DSN в Windows для этого не используется.
Можно ли подключить файловую базу по интернету?
Напрямую через сетевую папку — нет, это медленно и опасно для целостности файла. Используйте терминальный доступ или публикацию базы на веб-сервере (IIS или Apache) и подключение через тип расположения «На веб-сервере».
Можно ли открыть базу из MS SQL Server Management Studio и править таблицы?
Технически таблицы видны, но имена у них служебные, а прямая правка в обход платформы ломает целостность данных. Работайте с данными только через 1С.
Как узнать, где физически лежит база из списка?
Выделите базу в окне запуска: внизу окна видна строка соединения. File= означает каталог с файловой базой, Srvr= и Ref= — сервер 1С и имя базы в кластере.
Чем отличается имя базы в кластере от имени базы в СУБД?
Первое пользователи вводят при подключении, второе видит только сервер 1С при обращении к СУБД. Их удобно делать одинаковыми, но это не обязательно.