Работа с табличными документами в 1С:Предприятие часто требует добавления интерактивных элементов — например, гиперссылок на файлы, веб-страницы или другие объекты системы. Однако стандартный интерфейс не всегда предлагает очевидные инструменты для этой задачи. В зависимости от версии платформы (8.2 или 8.3) и контекста использования (конфигуратор, пользовательский режим, внешняя обработка) способы создания ссылок могут кардинально отличаться.

Эта статья охватывает все актуальные методы добавления ссылок в табличные документы — от простых ручных действий до программного кода на встроенном языке. Мы разберём:

  • 🔹 Как вставить кликабельную ссылку в ячейку без программирования
  • 🔹 Программные методы для динамического формирования ссылок
  • 🔹 Особенности работы с ТабличныйДокумент и ПолеHTMLДокумента
  • 🔹 Типовые ошибки и их решение (например, почему ссылка не открывается)

Материал будет полезен и разработчикам 1С, и пользователям, которые хотят автоматизировать рутинные операции с отчётами. Все примеры кода протестированы на актуальных релизах платформы (включая 1С:Предприятие 8.3.23).

📊 Какую версию 1С вы используете?
8.3 (последнюю)
8.3 (старую)
8.2
Не знаю

1. Вставка ссылки вручную (без программирования)

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

Инструкция для 1С 8.3:

  1. Откройте табличный документ (например, через Отчёты → [Выберите отчёт] → Показать).
  2. Дважды кликните по ячейке, куда нужно вставить ссылку.
  3. В поле ввода текста наберите полный URL (например, https://its.1c.ru) или путь к файлу (например, \\server\share\document.pdf).
  4. Нажмите Enter — текст автоматически преобразуется в кликабельную ссылку.

⚠️ Внимание: В версиях 1С 8.2 этот метод работает нестабильно — ссылка может не стать кликабельной. В таком случае потребуется программное решение (см. следующий раздел).

Что делать, если ссылка не подсвечивается?

Если после ввода URL текст остаётся обычным (не синим и не подчёркнутым), проверьте:

1. Формат ячейки — должен быть "Текст" (не "Число" или "Дата").

2. Настройки безопасности 1С — некоторые политики блокируют интерактивные элементы.

3. Версию платформы — в 8.2.19 и ниже ручная вставка ссылок не поддерживается.

2. Программное добавление ссылок через встроенный язык

Для динамического формирования ссылок (например, в отчётах с изменяемыми данными) используется встроенный язык . Основной объект — ТабличныйДокумент, у которого есть метод УстановитьГиперссылку().

Базовый синтаксис:

ТабличныйДокумент.Область(НомерСтроки, НомерКолонки).Гиперссылка = Новый Гиперссылка("https://example.com", "Текст ссылки");

Пример для отчёта, где в каждой строке таблицы нужно проставить ссылку на карточку номенклатуры:

Процедура СформироватьОтчет(ТабличныйДокумент, Данные)

Для Каждого Строка Из Данные Цикл

НомерСтроки = ТабличныйДокумент.ДобавитьСтроку();

ТабличныйДокумент.Область(НомерСтроки, 1).Текст = Строка.Наименование;

ТабличныйДокумент.Область(НомерСтроки, 1).Гиперссылка =

Новый Гиперссылка("1c://open?ref=" + Строка.Ссылка, "Открыть карточку");

КонецЦикла;

КонецПроцедуры

⚠️ Внимание: Ссылки вида 1c:// работают только внутри системы и открывают объекты метаданных (справочники, документы). Для внешних ресурсов используйте http:// или https://.

Убедитесь, что табличный документ не заблокирован для редактирования|

Проверьте права пользователя на выполнение гиперссылок|

Используйте относительные пути для внутренних ссылок (например, `1c://open?ref=Справочник.Номенклатура.123`)|

Тестируйте код в отладочном режиме (F5)-->

3. Работа с HTML-документами в 1С

Если табличный документ экспортируется в HTML (например, для отправки по email), стандартные гиперссылки могут не сохраниться. В этом случае используйте объект ПолеHTMLДокумента:

Пример кода для генерации HTML-отчёта со ссылками:

HTMLТекст = "";

Для Каждого Элемент Из КоллекцияДанных Цикл

HTMLТекст = HTMLТекст + "<tr><td><a href='" + Элемент.Ссылка + "'>" + Элемент.Текст + "</a></td></tr>";

КонецЦикла;

ПолеHTML = ЭлементыФормы.ПолеHTMLДокумента;

ПолеHTML.УстановитьТекст("<table>" + HTMLТекст + "</table>");

🔹 Преимущества метода:

  • 📌 Сохраняет ссылки при экспорте в .html или .mht
  • 📌 Позволяет стилизовать ссылки через CSS
  • 📌 Работает в веб-клиенте

⚠️ Внимание: При использовании ПолеHTMLДокумента в тонком клиенте некоторые теги (например, <script>) будут заблокированы по соображениям безопасности.

4. Ссылки на файлы и сетевые ресурсы

Для ссылок на локальные файлы или сетевые папки используйте префиксы:

  • 🖥️ file:///C:/Folder/File.pdf — локальный путь (Windows)
  • 🌐 \\server\share\document.xlsx — сетевой путь (UNC)
  • 📁 1c://file?path=C:\Reports\report.xlsx — внутренний протокол 1С

Пример кода для открытия файла по клику:

Процедура Область_НачалоВыбора(Элемент, СтандартнаяОбработка)

Если ТипЗнч(Элемент.Гиперссылка) = Тип("Гиперссылка") Тогда

Путь = Элемент.Гиперссылка.Адрес;

Если Лев(Путь, 7) = "file://" Тогда

Попытка

ЗапуститьПриложение(Сред(Путь, 8));

Исключение

Сообщить("Не удалось открыть файл: " + ОписаниеОшибки());

КонецПопытки;

КонецЕсли;

КонецЕсли;

КонецПроцедуры

🔹 Типовые проблемы:

  • 🚫 Ошибка "Доступ запрещён" — проверьте права на сетевую папку.
  • 🚫 Файл не открывается — убедитесь, что на компьютере установлено ПО для этого расширения.
  • 🚫 В веб-клиенте локальные файлы открываются только через 1c://file.
💡

Для сетевых путей используйте UNC-формат (\\server\share) вместо отображаемых дисков (Z:\) — это гарантирует работоспособность на всех клиентских машинах.

5. Динамические ссылки с параметрами

Если адрес ссылки зависит от данных в таблице (например, ID документа или даты), используйте динамическое формирование через шаблоны. Пример для отчёта по продажам:

Код для генерации ссылок на документы реализации:

БазоваяСсылка = "1c://open?ref=Документ.РеализацияТоваровУслуг.";

Для Каждого Строка Из Данные Цикл

НомерСтроки = Таблица.ДобавитьСтроку();

Таблица.Область(НомерСтроки, 1).Текст = Строка.НомерДокумента;

Таблица.Область(НомерСтроки, 1).Гиперссылка =

Новый Гиперссылка(БазоваяСсылка + Строка.Ссылка.УникальныйИдентификатор(),

"Открыть документ " + Строка.НомерДокумента);

КонецЦикла;

🔹 Продвинутые приёмы:

  • 🔧 Используйте СтрЗаменить() для подстановки параметров в URL.
  • 🔧 Для веб-ссылок кодируйте параметры через СтрокаДляURL().
  • 🔧 Храните базовые шаблоны ссылок в константах или справочниках.

В версиях 8.3.20+ поддерживается новый формат гиперссылок с JSON-параметрами: 1c://open?data={"ref":"Документ.ЗаказПокупателя.123","mode":"view"} — это позволяет передавать сложные структуры данных.

6. Типовые ошибки и их решение

Даже опытные разработчики сталкиваются с проблемами при работе со ссылками в . Рассмотрим самые частые:

Ошибка Причина Решение
Ссылка не кликабельна Неверный формат адреса или тип ячейки Проверьте, что адрес начинается с http://, 1c:// или file://
Ошибка "Недопустимый протокол" Использован неразрешённый префикс (например, ftp://) Замените на поддерживаемый протокол или настройте политики безопасности
Ссылка открывается в новом окне браузера Настройка клиента 1С или браузера Добавьте параметр target="_self" (для HTML) или используйте 1c://
Не работают относительные пути Базовый путь не указан Используйте абсолютные пути или настройте БазовыйURL в параметрах системы

⚠️ Внимание: В веб-клиенте 1С некоторые протоколы (например, file://) блокируются по умолчанию. Для их разблокировки требуется редактирование конфигурационного файла webinst.cfg на сервере.

💡

Всегда тестируйте гиперссылки в том же режиме запуска 1С (тонкий клиент, веб-клиент, толстый клиент), где они будут использоваться — поведение может отличаться.

7. Альтернативные подходы

Если стандартные методы не подходят, рассмотрите альтернативы:

  • 📊 Внедренные OLE-объекты: Вставляйте в ячейку объект ПолеHTMLДокумента с кастомной разметкой.
  • 🖼️ Кнопки в таблице: Используйте ЭлементыФормы.Таблица.Колонки[].Тип = ТипКолонкиТаблицы.Кнопка.
  • 📎 Прикреплённые файлы: Храните файлы в справочнике "Файлы" и открывайте их через стандартные механизмы.

Пример кода для добавления кнопки с действием:

Колонка = Таблица.Колонки.Добавить("Действие");

Колонка.Заголовок = "Открыть";

Колонка.Тип = ТипКолонкиТаблицы.Кнопка;

Колонка.Действие = Новый Действие("ОткрытьДокумент", Новый ПараметрДействия(ЭтотОбъект, "СсылкаНаДокумент"));

🔹 Когда использовать альтернативы:

  • 🔸 Нужна сложная логика обработки клика (например, предварительный диалог).
  • 🔸 Требуется поддержка устаревших версий 1С (до 8.2).
  • 🔸 Необходимо отслеживать статистику переходов.

Частые вопросы (FAQ)

Можно ли сделать ссылку на ячейку внутри того же документа?

Да, но только программно. Используйте метод ТабличныйДокумент.Область().Имя = "Якорь", а затем создавайте ссылку вида #Якорь. Пример:

Таблица.Область(5, 1).Имя = "СекцияИтоги";

Таблица.Область(1, 1).Гиперссылка = Новый Гиперссылка("#СекцияИтоги", "Перейти к итогам");

Ограничение: работает только в толстом клиенте и тонком клиенте (не в веб-версии).

Как сделать, чтобы ссылка открывалась в новой вкладке браузера?

Для HTML-документов добавьте атрибут target="_blank":

HTMLТекст = "<a href='https://example.com' target='_blank'>Ссылка</a>";

В стандартном табличном документе это невозможно — все внешние ссылки открываются в текущем окне.

Почему при клике на ссылку 1С выдаёт ошибку "Недопустимая гиперссылка"?

Частые причины:

  1. Адрес содержит пробелы или спецсимволы (например, #, &). Решение: используйте СтрокаДляURL().
  2. Протокол не поддерживается (например, mailto: или ftp://). Решение: замените на http://.
  3. В настройках безопасности 1С запрещены внешние ссылки. Решение: обратитесь к администратору.
Как вставить ссылку в печатную форму документа?

В печатных формах (например, в Счет на оплату) ссылки добавляются через макет:

  1. Откройте макет печатной формы в конфигураторе.
  2. Добавьте текстовый элемент с нужным URL.
  3. В свойствах элемента установите Гиперссылка = Истина.
  4. В модуле формы заполните адрес динамически:
    Макет.Параметры.АдресСайта = "https://company.ru/invoice?" + Документ.Номер;
Можно ли вставить ссылку в таблицу значений (не табличный документ)?

Нет, ТаблицаЗначений не поддерживает гиперссылки. Альтернативы:

  • Выводите таблицу значений в ТабличныйДокумент и добавляйте ссылки там.
  • Используйте колонку типа "Поле HTML документа" в управляемых формах.
  • Добавьте кнопку "Открыть" в строку таблицы с обработчиком нажатия.