Разработка и Конфигурация · 11 мин
Как сделать ссылки в 1С: полное руководство
Разбираем, как сделать ссылки в 1С: навигационная ссылка на объект, внешняя e1c-ссылка, гиперссылка в форме и в тексте, примеры кода и типичные ошибки.
В 1С слово «ссылка» означает несколько разных вещей: уникальный внутренний идентификатор объекта базы, навигационную ссылку вида e1cib/data/..., которую можно передать коллеге, внешнюю ссылку e1c:// для запуска программы из браузера или письма, а также гиперссылку в тексте документа или на форме. Каждый тип создаётся по-разному, и путаница между ними — главная причина ошибок «объект не найден» и неработающих переходов.
Понимание механизма ссылок нужно и обычным пользователям, и разработчикам. Пользователю это даёт возможность быстро отправить коллеге точный адрес документа вместо длинных объяснений «открой реализацию от 15 числа, контрагент такой-то». Разработчику — строить уведомления, интеграции и удобные интерфейсы с переходами между объектами.
Ниже разобраны все практические сценарии: получение навигационной ссылки через интерфейс и кодом, создание внешних ссылок для запуска извне, вставка гиперссылок в тексты и формы, а также проверка корректности ссылок и типичные ошибки.
Какие виды ссылок существуют в 1С
Прежде чем делать ссылку, определите, какая именно нужна. Внутренняя ссылка — это значение типа «СправочникСсылка», «ДокументСсылка» и т.п., которое живёт только внутри кода и базы данных. Её нельзя отправить коллеге в мессенджер, но именно она используется в запросах, реквизитах и алгоритмах.
Навигационная ссылка — текстовое представление объекта вида e1cib/data/Документ.РеализацияТоваровУслуг?ref=.... Она работает внутри конкретной информационной базы: по ней можно перейти в командной строке 1С, вставить в письмо или уведомление, и любой пользователь этой же базы откроет тот же объект.
Внешняя ссылка начинается с e1c:// и дополнительно содержит адрес сервера или путь к файловой базе. Она позволяет запустить толстый или тонкий клиент из браузера, письма или другой программы и сразу открыть нужный объект. Именно такие ссылки формируют системы уведомлений и корпоративные порталы.
Сравнение видов ссылок
Только внутри кода и базы. Нельзя передать текстом, но обязательна в запросах и реквизитах
Передаётся текстом, работает внутри одной информационной базы у всех её пользователей
Запускает клиент 1С извне: из браузера, письма, другой программы. Требует правильного адреса сервера или пути к базе
Как получить ссылку на объект через интерфейс
Самый простой способ, доступный без прав разработчика, — стандартная команда «Получить ссылку». Откройте нужный документ, элемент справочника или запись регистра, нажмите кнопку «Ещё» в командной панели формы и выберите пункт «Получить ссылку». В появившемся окне будет показана навигационная ссылка, которую можно скопировать кнопкой или вручную.
Скопированную ссылку можно вставить в письмо, задачу или сообщение. Коллега, работающий в той же базе, откроет её через меню «Файл → Открыть ссылку» либо вставит в командную строку. В некоторых конфигурациях ссылку можно просто вставить в поле поиска по строке.
Учтите ограничение: навигационная ссылка привязана к конкретной базе. Если базу выгрузили и развернули в другом месте, ссылка продолжит работать, поскольку внутренний идентификатор объекта сохраняется. Но если объект удалили и создали заново «такой же», старая ссылка станет битой — идентификатор у нового объекта будет другим.
- 1Откройте нужный документ или элемент справочника
- 2Нажмите «Ещё» в командной панели формы
- 3Выберите «Получить ссылку»
- 4Скопируйте ссылку из появившегося окна
- 5Передайте её коллеге или сохраните в заметках
Как получить навигационную ссылку в коде
Разработчику для формирования ссылки программно служит функция ПолучитьНавигационнуюСсылку(). Ей передают ссылку на объект, а при необходимости — имя реквизита или индекс строки табличной части, чтобы ссылка вела на конкретное поле.
НавСсылка = ПолучитьНавигационнуюСсылку(ДокументОбъект.Ссылка);
// Результат: e1cib/data/Документ.РеализацияТоваровУслуг?ref=a1b2...
Обратный переход выполняет функция ЗначениеИзСтрокиВнутр() — но напрямую с навигационной ссылкой она не работает. Практичный способ восстановить объект из навигационной ссылки — разобрать строку, извлечь имя типа и уникальный идентификатор, затем получить ссылку через менеджер объекта:
Ид = Новый УникальныйИдентификатор(СтрокаИд);
СсылкаНаОбъект = Документы.РеализацияТоваровУслуг.ПолучитьСсылку(Ид);
Для уведомлений пользователей внутри системы удобнее метод ПоказатьОповещениеПользователя(), где третьим параметром передаётся навигационная ссылка: пользователь кликает по оповещению и сразу открывает объект, без ручного копирования.
Как сделать внешнюю ссылку e1c:// для запуска из браузера
Внешняя ссылка собирается по шаблону: e1c://server/ИмяСервера/ИмяБазы/e1cib/data/... для клиент-серверного варианта или e1c://file/ПутьКБазе/e1cib/data/... для файлового. После служебной части подставляется та самая навигационная ссылка на объект.
Проще всего получить готовую внешнюю ссылку в веб-клиенте: откройте объект в браузере и скопируйте адрес из адресной строки — там уже будет полный путь. Для тонкого клиента адрес сервера и имя базы можно посмотреть в списке информационных баз в стартовом окне 1С (кнопка «Настройка» показывает параметры подключения).
Чтобы ссылка открывалась по клику, протокол e1c должен быть зарегистрирован в операционной системе — это происходит автоматически при установке платформы 1С. Если по клику ничего не происходит, обычно платформа установлена некорректно или установщик запускался без прав администратора.
Как вставить гиперссылку в текст и на форму
В форматированном документе (например, в поле комментария с форматированием или в печатной форме-HTML) гиперссылки вставляются стандартным способом: выделите текст и используйте команду вставки гиперссылки, указав либо веб-адрес, либо навигационную ссылку на объект 1С. При клике по такой ссылке внутри 1С откроется соответствующий объект.
На управляемой форме гиперссылку делают через элемент «Декорация» с видом «Надпись» и свойством «Гиперссылка», установленным в «Истина». В обработчике нажатия программно определяют, что открыть: форму объекта через ОткрытьЗначение(Ссылка) или внешний ресурс через ПерейтиПоНавигационнойСсылке("https://...").
В табличном документе (макетах, отчётах) у ячейки есть свойство «Гиперссылка», а также можно заполнить параметр расшифровки — тогда клик по ячейке отчёта откроет связанный документ. Для СКД расшифровка настраивается через поля расшифровки и обработчик ОбработкаРасшифровки.
Для ссылок на внешние сайты из форм 1С используйте ПерейтиПоНавигационнойСсылке() вместо ЗапуститьПриложение() с адресом: первый способ безопаснее, не требует прав на запуск программ и корректно работает в веб-клиенте.
Проверка корректности и битые ссылки
Битая ссылка возникает, когда объект удалили физически, а ссылки на него остались — в реквизитах других объектов или в сохранённых навигационных ссылках. В коде признак битой ссылки — значение вида «Объект не найден» при обращении к реквизитам. Программная проверка выполняется через Ссылка.ПолучитьОбъект(): если метод вернул Неопределено, объекта в базе нет.
Для массовой проверки базы используйте штатное тестирование и исправление (конфигуратор, меню «Администрирование → Тестирование и исправление») с включённой проверкой ссылочной целостности. Перед запуском обязательно сделайте резервную копию: режим может удалять или очищать объекты с нарушенными ссылками.
Проверить навигационную ссылку из письма просто: вставьте её в командную строку 1С (или через «Файл → Открыть ссылку»). Если объект существует и у вас есть права — откроется его форма. Ошибка «Недостаточно прав» означает, что ссылка рабочая, но доступ ограничен; ошибка «Объект не найден» — что объект удалён или ссылка из другой базы.
Как проверить результат
Открывается форма нужного объекта
Сообщение «объект не найден» или ошибка прав
Запускается клиент 1С и открывается объект
Браузер не знает протокол — платформа не зарегистрирована в ОС
Возвращается объект, доступны реквизиты
Возвращается Неопределено — объект удалён
Типичные ошибки при работе со ссылками
Самая частая ошибка — попытка использовать навигационную ссылку как значение типа «ссылка» в коде. Строка «e1cib/data/...» не является ссылкой на объект: её нельзя присвоить реквизиту типа «ДокументСсылка». Сначала строку нужно разобрать и получить реальную ссылку через менеджер объекта.
Вторая распространённая проблема — ссылки, собранные вручную с жёстко прописанным адресом сервера. При переезде базы на другой сервер или смене имени базы все такие ссылки в письмах и уведомлениях перестают работать. Формируйте внешние ссылки программно, беря параметры подключения из строки соединения информационной базы.
Третья группа ошибок связана с уникальными идентификаторами: разработчики сохраняют GUID объекта в сторонних системах, а затем объект пересоздают обработкой или обменом — идентификатор меняется, и внешние ссылки ломаются. Для интеграций надёжнее использовать естественные ключи (номер и дату документа, код справочника) или гарантировать неизменность GUID при обменах.
Что важно запомнить
Навигационную ссылку получают через «Ещё → Получить ссылку» или функцию ПолучитьНавигационнуюСсылку(), внешнюю e1c:// собирают из адреса базы и навигационной части. Перед массовой чисткой битых ссылок делайте резервную копию, а объекты записывайте до формирования ссылки.
Частые вопросы о ссылках в 1С
Можно ли отправить ссылку на документ 1С коллеге по почте?
Да, если коллега работает в той же информационной базе. Скопируйте навигационную ссылку через «Ещё → Получить ссылку» и вставьте в письмо. Получатель откроет её через «Файл → Открыть ссылку» в своей 1С. Для автоматического запуска по клику соберите внешнюю ссылку вида e1c://.
Почему ссылка из письма не открывается по клику?
Чаще всего протокол e1c не зарегистрирован в операционной системе — переустановите платформу 1С с правами администратора. Также проверьте, что ссылка полная: начинается с e1c:// и содержит адрес сервера или путь к файловой базе, а не только часть e1cib/data/.
Сохранится ли ссылка после переноса базы на другой сервер?
Навигационная часть (e1cib/data/...) сохранится, если база перенесена выгрузкой-загрузкой: уникальные идентификаторы объектов не меняются. А вот адрес сервера во внешних ссылках e1c:// придётся обновить — старые ссылки с прежним адресом работать перестанут.
Как в коде проверить, что ссылка не битая?
Вызовите метод ПолучитьОбъект() у ссылки: если он вернул Неопределено, объект физически отсутствует в базе. Для массовой диагностики используйте тестирование и исправление в конфигураторе с проверкой ссылочной целостности, предварительно сделав резервную копию.
Чем навигационная ссылка отличается от уникального идентификатора?
Уникальный идентификатор (GUID) — это 16-байтовый идентификатор объекта внутри базы. Навигационная ссылка — текстовая строка, в которой GUID закодирован вместе с типом объекта. Из навигационной ссылки можно извлечь GUID и получить ссылку на объект программно.
Можно ли сделать ссылку на конкретную строку табличной части?
Да. Функция ПолучитьНавигационнуюСсылку() принимает дополнительные параметры — имя реквизита и индекс строки табличной части. При переходе по такой ссылке форма откроется с позиционированием на указанном поле или строке.