Адрес информационной базы 1С 8.3: строки подключения, URL веб-клиента и навигационные ссылки
Содержание
Ссылка на базу 1С 8.3 бывает трёх видов. Для браузера это обычный URL вида http://srv-web/buh/. Для тонкого и толстого клиента — строка подключения: File="D:\Bases\Buh"; для файловой базы, Srvr="srv1c";Ref="buh"; для серверной, ws="http://srv-web/buh"; для базы, опубликованной на веб-сервере. А на конкретный документ или справочник внутри базы указывает навигационная ссылка e1cib/data/....
Все эти форматы связаны между собой. Опубликованная база отдаёт веб-клиент по своему алиасу, тонкий клиент ходит по тому же адресу через ws=, а навигационную ссылку можно приклеить к адресу базы и отправить коллеге в мессенджер.
Адрес базы для веб-клиента: что пишут в браузере
Веб-клиент работает только с базой, опубликованной на веб-сервере (Apache или IIS). Адрес складывается из трёх частей:
http://srv-web/buh/ru_RU/
│ │ │
│ │ └─ язык интерфейса (необязательно)
│ └─ алиас публикации, имя виртуального каталога
└─ имя или IP веб-сервера, при нестандартном порте — srv-web:8080
Примеры рабочих адресов:
| Ситуация | Адрес |
|---|---|
| Публикация во внутренней сети | http://srv-web/buh/ |
| Порт веб-сервера не 80 | http://192.168.1.20:8080/zup/ |
| Доступ из интернета с сертификатом | https://1c.firma.ru/ut11/ |
| Явный язык интерфейса | http://srv-web/buh/ru_RU/ |
Сегмент ru_RU платформа подставляет сама после входа. Набирать его вручную не обязательно.
Параметры запуска в адресе
После знака ? можно передать параметры запуска, как в командной строке. Чаще всего используют:
- 👤
N— имя пользователя; - 🔑
P— пароль; - 🧩
C— строка параметра запуска (её читает конфигурация черезПараметрЗапуска); - 🌐
L— код языка интерфейса.
Пример: http://srv-web/buh/ru_RU/?N=Кассир&P=12345. Кириллица в адресе допустима, браузер сам её закодирует.
Пароль в адресной строке оседает в истории браузера и в журналах веб-сервера. Для общего ярлыка на рабочем столе так делать можно разве что в учебной базе. В рабочей лучше настроить аутентификацию ОС или вводить пароль в окне входа.
Строка подключения в списке баз тонкого и толстого клиента
Окно запуска 1С хранит список баз в файле ibases.v8i (обычно в %APPDATA%\1C\1CEStart\). Каждая база там — секция с параметром Connect, это и есть «ссылка» для клиента. Её же видно внизу окна запуска, если выделить базу в списке.
Три варианта строки
| Тип базы | Строка подключения | Что указывают |
|---|---|---|
| Файловая | File="D:\Bases\Buh"; | путь к каталогу, где лежит 1Cv8.1CD |
| Файловая в сетевой папке | File="\\fs01\Bases\Buh"; | UNC-путь, а не буква подключённого диска |
| Клиент-серверная | Srvr="srv1c";Ref="buh"; | имя сервера 1С и имя базы в кластере |
| Сервер с нестандартным портом | Srvr="srv1c:2541";Ref="buh"; | порт менеджера кластера |
| Через веб-сервер | ws="http://srv-web/buh"; | URL публикации |
Фрагмент ibases.v8i выглядит так:
[Бухгалтерия (рабочая)]
Connect=Srvr="srv1c";Ref="buh_2024";
ID=6f1c2a0e-3b5d-4c11-9e2a-1b7d9c0a4e33
Folder=/
App=Auto
💡 В Ref пишется имя базы в кластере, а не имя базы на SQL-сервере. Они часто совпадают, но не обязаны. Точное имя видно в консоли администрирования серверов 1С.
Та же база из командной строки
Ярлык с прямым запуском базы, минуя окно выбора, собирают из исполняемого файла и ключей:
rem Файловая база, тонкий клиент
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh"
rem Серверная база, пользователь задан
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8c.exe" ENTERPRISE /S"srv1c\buh" /N"Иванов" /P"пароль"
rem База через веб-сервер
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /WS"http://srv-web/buh"
Ключ /F соответствует File=, /S — паре Srvr= и Ref= (через обратную косую черту), /WS — параметру ws=. Номер версии в пути bin подставьте свой.
Вместо отдельных ключей можно передать всю строку целиком ключом /IBConnectionString. Кавычки внутри значения тогда удваиваются: /IBConnectionString"Srvr=""srv1c"";Ref=""buh"";".
Где ошибаются в строке подключения
| Что написали | Что не так | Как правильно |
|---|---|---|
File="Z:\Buh"; | буква диска подключена только у одного пользователя, у остальных база «пропадает» | File="\\fs01\Bases\Buh"; |
File="D:\Bases\Buh\1Cv8.1CD"; | указан файл, а не каталог | File="D:\Bases\Buh"; |
Srvr="srv1c";Ref="Бухгалтерия"; | в Ref взято имя из списка баз, а не имя в кластере | имя из консоли кластера, например buh |
Srvr="192.168.1.10";Ref="buh"; | клиент не может разрешить имя сервера, которое кластер сообщает о себе | добавить имя сервера в DNS или в файл hosts |
ws="http://srv-web/buh/ru_RU/"; | в адрес попал сегмент языка | ws="http://srv-web/buh"; |
Последний пункт про IP встречается чаще, чем кажется. Кластер возвращает клиенту имя рабочего сервера, под которым он зарегистрирован. Если это имя не разрешается с компьютера пользователя, подключение по IP проходит первый шаг и обрывается на втором.
Строка для COM-соединения и внешних программ
Внешняя программа (Excel, скрипт, другая база 1С) подключается к базе через COM-объект V83.COMConnector. Строка подключения та же, что у клиента, но в неё добавляют пользователя и пароль:
Srvr="srv1c";Ref="buh";Usr="Обмен";Pwd="secret";
File="D:\Bases\Buh";Usr="Обмен";Pwd="secret";
Пример из другой базы 1С (код выполняется на стороне, где зарегистрирован COM-коннектор):
Коннектор = Новый COMОбъект("V83.COMConnector");
СтрокаПодключения = "Srvr=""srv1c"";Ref=""buh"";Usr=""Обмен"";Pwd=""secret"";";
База = Коннектор.Connect(СтрокаПодключения);
Что проверить, если Connect не проходит:
- 🧱 разрядность: 64-битный процесс видит только 64-битный
comcntr.dll, 32-битный — только 32-битный; - 🔢 версия: коннектор должен быть той же версии платформы, что и сервер 1С;
- 📝 регистрация:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\comcntr.dll"от имени администратора; - 👤 пользователь
Usrсуществует в базе, и у него есть право на внешнее соединение.
COM-соединение занимает лицензию, как обычный сеанс. Скрипт, который открывает соединение в цикле и не закрывает его, быстро съедает все клиентские лицензии.
Навигационные ссылки на объекты внутри базы
Навигационная ссылка указывает не на базу, а на конкретное место в ней: элемент справочника, документ, список, отчёт. Её формат:
e1cib/<вид>/<объект метаданных>[?ref=<идентификатор>]
Основные виды:
| Вид | Пример | Что откроет |
|---|---|---|
data | e1cib/data/Справочник.Контрагенты?ref=8a2b0050568b3c0811e9a1f2c3d4e5f6 | карточку конкретного контрагента |
list | e1cib/list/Документ.РеализацияТоваровУслуг | список документов реализации |
app | e1cib/app/Отчет.ОборотноСальдоваяВедомость | форму отчёта или обработки |
navigationpoint | e1cib/navigationpoint/... | раздел или пункт панели навигации |
Длинная последовательность после ref= — внутренний идентификатор объекта. Он не совпадает с кодом или номером документа и вручную не набирается.
Как получить и открыть ссылку
- Откройте нужный документ или элемент справочника.
- В заголовке формы нажмите значок цепочки «Получить ссылку». Ссылка скопируется, её можно вставить в письмо или чат.
- Получатель открывает свою программу 1С и в главном меню выбирает «Перейти по ссылке», затем вставляет текст.
Если базы у отправителя и получателя разные, ссылка не сработает: в другой базе объекта с таким идентификатором нет.
Полная ссылка вместе с адресом базы
Навигационную ссылку можно склеить с адресом базы через #. Тогда она откроет и базу, и объект одним кликом:
http://srv-web/buh/#e1cib/data/Документ.СчетНаОплатуПокупателю?ref=...
e1c://server/srv1c/buh#e1cib/list/Справочник.Номенклатура
Первый вариант открывает объект в веб-клиенте. Второй вызывает установленный тонкий клиент через протокол e1c://, который регистрирует программа установки платформы.
Ссылка в коде
В конфигурации работают три функции глобального контекста:
// Строка вида e1cib/data/Документ...?ref=...
НавСсылка = ПолучитьНавигационнуюСсылку(ДокументСсылка);
// Адрес самой базы: e1c://server/... или http://.../buh
АдресБазы = ПолучитьНавигационнуюСсылкуИнформационнойБазы();
// На клиенте: открыть место по ссылке
ПерейтиПоНавигационнойСсылке(НавСсылка);
Склейка АдресБазы + "#" + НавСсылка даёт полную ссылку для письма-уведомления: менеджер получает задачу и открывает документ сразу из почты.
Ссылки в отчётах на СКД
В отчётах на системе компоновки данных ссылки работают через расшифровку. Если поле отчёта ссылочного типа (контрагент, документ, номенклатура), двойной щелчок по ячейке откроет объект. Ничего настраивать для этого не нужно.
Сложнее, когда в отчёт нужно вывести ссылку текстом, например для выгрузки в Excel и отправки за пределы 1С. Запрос СКД сам навигационную ссылку не строит. Решения два:
- 🧮 вычисляемое поле, в выражении которого вызывается экспортная функция серверного общего модуля, возвращающая
ПолучитьНавигационнуюСсылку(Ссылка); - 🛠 обработка результата в модуле отчёта: пройти по готовой таблице и дописать ссылки в колонку.
Свою реакцию на щелчок (открыть не объект, а другой отчёт с отбором) делают в обработчике ОбработкаРасшифровки формы отчёта. Стандартное действие отключают параметром СтандартнаяОбработка = Ложь.
💡 Пользователю без прав на объект расшифровка покажет сообщение о нарушении прав. Это не сбой отчёта, а работа ролей.
Гиперссылки в формах и тексте документов
Внутри интерфейса ссылки выводятся несколькими способами.
Декорация-надпись. У надписи на форме есть свойство «Гиперссылка». Текст становится кликабельным, а щелчок обрабатывается в событии Нажатие.
Форматированная строка. Пятый параметр конструктора — ссылка. Её можно поставить в надпись или в поле формы:
Текст = Новый ФорматированнаяСтрока("Открыть счёт", , , , НавСсылка);
Элементы.НадписьСчет.Заголовок = Текст;
Щелчок по такой строке вызывает событие ОбработкаНавигационнойСсылки. Если в нём не выставить СтандартнаяОбработка = Ложь, платформа сама перейдёт по адресу: откроет объект для e1cib/... или браузер для http://....
Поле форматированного документа и HTML. В них ссылки ведут себя как в веб-странице. Обычный URL открывается в браузере, а ссылка e1cib/... — внутри программы.
Комментарии и обсуждения. В типовых конфигурациях пользователи вставляют ссылку, полученную через значок цепочки, в текст обсуждения или задачи. Получатель открывает объект, не ища его в списке.
Публикация на веб-сервере и алиас базы
Алиас — то самое имя после адреса сервера в URL (buh в http://srv-web/buh/). Его задают при публикации, и от него зависят и адрес веб-клиента, и строка ws= для тонкого клиента.
Публикация из Конфигуратора
- Запустите Конфигуратор от имени администратора Windows на машине с веб-сервером.
- Откройте
Администрирование → Публикация на веб-сервере. - В поле «Имя» введите алиас латиницей, без пробелов:
buh,zup_filial. - Выберите веб-сервер (Apache нужной версии или IIS) и каталог публикации.
- Отметьте, что публиковать: тонкий и веб-клиент, веб-сервисы, HTTP-сервисы, OData.
- Нажмите «Опубликовать» и перезапустите службу веб-сервера, если программа предложит.
Перезапуск Apache или IIS обрывает все сеансы, открытые через веб-клиент и ws=. Делайте это вне рабочего времени или после предупреждения пользователей.
Что лежит в каталоге публикации
В каталоге появляется файл default.vrd. В нём записано, к какой базе ведёт алиас:
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/buh"
ib="Srvr="srv1c";Ref="buh";">
</point>
Атрибут base — алиас, ib — обычная строка подключения, только кавычки заменены на ". Чтобы перенаправить публикацию на другую базу, достаточно поправить ib и перезапустить веб-сервер
.
Публикация без Конфигуратора
На сервере без графической оболочки публикуют утилитой webinst из каталога bin платформы:
webinst -publish -apache24 -wsdir buh -dir "C:\Apache24\htdocs\buh" -connstr "Srvr=srv1c;Ref=buh;" -confpath "C:\Apache24\conf\httpd.conf"
Для IIS вместо -apache24 указывают -iis, а -confpath не нужен.
Адреса сервисов той же публикации
На одном алиасе живёт не только веб-клиент:
| Сервис | Адрес |
|---|---|
| Веб-клиент | http://srv-web/buh/ |
| OData-интерфейс | http://srv-web/buh/odata/standard.odata/ |
| HTTP-сервис | http://srv-web/buh/hs/<корневой URL сервиса>/... |
| Веб-сервис (SOAP) | http://srv-web/buh/ws/<имя>.1cws?wsdl |
Ошибка 404 на /odata/ или /hs/ при работающем веб-клиенте почти всегда значит одно: при публикации не отметили соответствующий флажок.
Частые вопросы
Можно ли открыть файловую базу 1С по ссылке в браузере?
D:\Bases\Buh напрямую: нужен Apache или IIS, который отдаст веб-клиент по адресу вида http://srv-web/buh/.Почему навигационная ссылка от коллеги открывает «объект не найден»?
ref= уникален для конкретной базы. Второй вариант — объект удалили или у вас нет прав на его просмотр.Чем отличается Ref от имени базы на SQL-сервере?
Ref — имя информационной базы в кластере 1С, его видно в консоли администрирования. Имя базы данных на СУБД задаётся отдельно в свойствах информационной базы и может быть любым.Можно ли сделать алиас на кириллице?
ws=.Где посмотреть строку подключения, если база уже в списке?
ibases.v8i.