Работа с табличными документами в 1С:Предприятие часто требует добавления интерактивных элементов — например, гиперссылок на файлы, веб-страницы или другие объекты системы. Однако стандартный интерфейс не всегда предлагает очевидные инструменты для этой задачи. В зависимости от версии платформы (8.2 или 8.3) и контекста использования (конфигуратор, пользовательский режим, внешняя обработка) способы создания ссылок могут кардинально отличаться.
Эта статья охватывает все актуальные методы добавления ссылок в табличные документы 1С — от простых ручных действий до программного кода на встроенном языке. Мы разберём:
- 🔹 Как вставить кликабельную ссылку в ячейку без программирования
- 🔹 Программные методы для динамического формирования ссылок
- 🔹 Особенности работы с
ТабличныйДокументиПолеHTMLДокумента - 🔹 Типовые ошибки и их решение (например, почему ссылка не открывается)
Материал будет полезен и разработчикам 1С, и пользователям, которые хотят автоматизировать рутинные операции с отчётами. Все примеры кода протестированы на актуальных релизах платформы (включая 1С:Предприятие 8.3.23).
1. Вставка ссылки вручную (без программирования)
Если вам нужно добавить одну-две ссылки в готовый табличный документ (например, в отчёт или печатную форму), можно обойтись без кода. Этот метод работает в пользовательском режиме и не требует прав администратора.
Инструкция для 1С 8.3:
- Откройте табличный документ (например, через
Отчёты → [Выберите отчёт] → Показать). - Дважды кликните по ячейке, куда нужно вставить ссылку.
- В поле ввода текста наберите полный URL (например,
https://its.1c.ru) или путь к файлу (например,\\server\share\document.pdf). - Нажмите
Enter— текст автоматически преобразуется в кликабельную ссылку.
⚠️ Внимание: В версиях 1С 8.2 этот метод работает нестабильно — ссылка может не стать кликабельной. В таком случае потребуется программное решение (см. следующий раздел).
Что делать, если ссылка не подсвечивается?
Если после ввода URL текст остаётся обычным (не синим и не подчёркнутым), проверьте:
1. Формат ячейки — должен быть "Текст" (не "Число" или "Дата").
2. Настройки безопасности 1С — некоторые политики блокируют интерактивные элементы.
3. Версию платформы — в 8.2.19 и ниже ручная вставка ссылок не поддерживается.
2. Программное добавление ссылок через встроенный язык
Для динамического формирования ссылок (например, в отчётах с изменяемыми данными) используется встроенный язык 1С. Основной объект — ТабличныйДокумент, у которого есть метод УстановитьГиперссылку().
Базовый синтаксис:
ТабличныйДокумент.Область(НомерСтроки, НомерКолонки).Гиперссылка = Новый Гиперссылка("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
- 📌 Работает в веб-клиенте 1С
⚠️ Внимание: При использовании Поле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. Типовые ошибки и их решение
Даже опытные разработчики сталкиваются с проблемами при работе со ссылками в 1С. Рассмотрим самые частые:
| Ошибка | Причина | Решение |
|---|---|---|
| Ссылка не кликабельна | Неверный формат адреса или тип ячейки | Проверьте, что адрес начинается с 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С выдаёт ошибку "Недопустимая гиперссылка"?
Частые причины:
- Адрес содержит пробелы или спецсимволы (например,
#,&). Решение: используйтеСтрокаДляURL(). - Протокол не поддерживается (например,
mailto:илиftp://). Решение: замените наhttp://. - В настройках безопасности 1С запрещены внешние ссылки. Решение: обратитесь к администратору.
Как вставить ссылку в печатную форму документа?
В печатных формах (например, в Счет на оплату) ссылки добавляются через макет:
- Откройте макет печатной формы в конфигураторе.
- Добавьте текстовый элемент с нужным URL.
- В свойствах элемента установите
Гиперссылка = Истина. - В модуле формы заполните адрес динамически:
Макет.Параметры.АдресСайта = "https://company.ru/invoice?" + Документ.Номер;
Можно ли вставить ссылку в таблицу значений (не табличный документ)?
Нет, ТаблицаЗначений не поддерживает гиперссылки. Альтернативы:
- Выводите таблицу значений в
ТабличныйДокументи добавляйте ссылки там. - Используйте колонку типа "Поле HTML документа" в управляемых формах.
- Добавьте кнопку "Открыть" в строку таблицы с обработчиком нажатия.