ПолеФормы.ОтображениеГиперссылкиЯчейки

Свойства · CellHyperlinkRepresentation

Тип: ОтображениеГиперссылкиЯчейки. Определяет, будет ли отображаться гиперссылка в ячейке таблицы. Значение по умолчанию - Авто.

Полное описание, параметры и ограничения

ПолеФормы.ОтображениеГиперссылкиЯчейки (FormField.CellHyperlinkRepresentation)

ПолеФормы (FormField)

ОтображениеГиперссылкиЯчейки (CellHyperlinkRepresentation)

Доступен, начиная с версии 8.5.1.

Использование:
Чтение и запись.
Описание:
Тип: ОтображениеГиперссылкиЯчейки.
Определяет, будет ли отображаться гиперссылка в ячейке таблицы.
Значение по умолчанию - Авто.
Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Примечание:
Если установлено значение Авто, поведение зависит от интерфейса и может быть переопределено через свойство таблицы ОтображениеГиперссылокЯчеек.
Использование в версии:

Доступен, начиная с версии 8.5.1.

Методическая информация

Практические примеры

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

В собственной таблице включаем современное ОтображениеГиперссылкиЯчейки.Отображать и отдельно меняем ВариантОтображенияГиперссылкиЯчейки. Событие Выбор читает строку из локального реквизита и показывает карточку внутри той же формы.

Где и как запускать

Полный модуль общей управляемой формы УчебныеЯчейкиТаблицы85. Собственный пустой стенд 8.5.1.1343, интерфейс Версия 8.5, тонкий или толстый клиент Windows. Три строки ТаблицаЗначений представлены данными формы; заполнение и связывание события на сервере, выбор и режим ссылки на клиенте.

Подготовка

  1. Создайте отдельную новую пустую учебную базу платформы 8.5.1.1343. Имя конфигурации в корне дерева — УчебнаяКонфигурацияЯчеек85, язык встроенного языка Русский, ОсновнойРежимЗапуска=УправляемоеПриложение, режим совместимости Не использовать.

  2. В свойствах корня конфигурации задайте РежимСовместимостиИнтерфейса=Версия8_5. Это точное имя метаданных и значение нативного перечисления, а не свойство ОсновнойИнтерфейс. У значения Версия8_5 пользовательское переключение режима недоступно. Обновите только свой учебный стенд и запустите тонкий или толстый управляемый клиент Windows.

  3. В Общие → Общие формы создайте управляемую форму УчебныеЯчейкиТаблицы85. Для каждого урока используйте отдельную копию формы или отдельный пустой стенд и только полный модуль выбранного урока. Не объединяйте модули двух уроков.

  4. В форме создайте реквизит Книги с типом ТаблицаЗначений. Под ним создайте колонки Название типа Строка длиной 100, Количество типа Число длиной 6 с точностью 0, Статус типа Строка длиной 50. Эти имена обязательно совпадают с кодом. Таблица не связана со справочниками, документами, регистрами или внешними данными.

  5. Перетащите Книги на форму как таблицу с тремя колонками. Саму таблицу назовите ТаблицаКниг, ПутьКДанным=Книги. Имена её полей-колонок задайте КнигиНазвание, КнигиКоличество, КнигиСтатус; пути соответственно Книги.Название, Книги.Количество, Книги.Статус. Заголовки — Название, Количество, Статус.

  6. Создайте строковый реквизит СостояниеУрока длиной 300 и поле ввода ПолеСостоянияУрока с ПутьКДанным=СостояниеУрока, ТолькоПросмотр=Истина. АвтоматическоеСохранениеДанныхВНастройках формы оставьте НеИспользовать. На форме только локальные несохраняемые учебные данные.

  7. Событие ПриСозданииНаСервере назначьте одноимённой процедуре полного модуля. Сервер создаёт в реквизите формы ровно три строки: Книга/3/Доступно, Тетрадь/4/Проверить, Блокнот/0/Ожидается. Пользователь не должен вводить или загружать строки: таблица переводится в ТолькоПросмотр и МножественныйВыбор=Ложь.

  8. Для запуска создайте общую команду ОткрытьУчебныеЯчейки85 без параметра и включите её в командный интерфейс собственной учебной подсистемы УчебныеЯчейки85. Полный модуль команды:
    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    ОткрытьФорму("ОбщаяФорма.УчебныеЯчейкиТаблицы85");
    КонецПроцедуры
    Разрешите эти собственные метаданные в учебной роли и выполните команду в своём учебном разделе.

  9. Код только читает активный интерфейс через ТекущийВариантИнтерфейсаКлиентскогоПриложения() и отказывается от опыта при другом варианте. Он не изменяет настройки интерфейса текущего сеанса, пользователя или рабочей базы.

  10. Запуск в 1С не выполнялся. Нативная сверка типов, сигнатур, перечислений и контекстов — статическая проверка. Видимые ссылки, наведение, круги и овалы требуют ручного выполнения на указанном стенде с его активной темой и масштабом.

  11. Создайте в форме строковый реквизит КарточкаКниги длиной 300 и поле ПолеКарточкиКниги с ПутьКДанным=КарточкаКниги, ТолькоПросмотр=Истина. Оно выводит только название, количество и статус выбранной строки локальной таблицы.

  12. Создайте команду ПереключитьПоказСсылки, действие — одноимённая клиентская процедура, ИзменяетСохраняемыеДанные=Ложь. Разместите её кнопку с заголовком Переключить показ ссылки. Другие команды этого урока не нужны.

  13. Событие Выбор таблицы вручную не назначайте второму обработчику: ПриСозданииНаСервере устанавливает его через УстановитьДействие("Выбор", "ПоказатьКарточкуПоВыбору"). Колонке Название явно назначается singular ОтображениеГиперссылкиЯчейки.Отображать; plural свойство таблицы ОтображениеГиперссылокЯчеек код не меняет.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если ТекущийВариантИнтерфейсаКлиентскогоПриложения() <> ВариантИнтерфейсаКлиентскогоПриложения.Версия8_5 Тогда
        ВызватьИсключение "Урок требует интерфейс Версия 8.5; настройте свой учебный стенд";
    КонецЕсли;
    ЭтаФорма.Книги.Очистить();
    ДобавитьСвоюКнигу("Книга", 3, "Доступно");
    ДобавитьСвоюКнигу("Тетрадь", 4, "Проверить");
    ДобавитьСвоюКнигу("Блокнот", 0, "Ожидается");
    Элементы.ТаблицаКниг.ТолькоПросмотр = Истина;
    Элементы.ТаблицаКниг.МножественныйВыбор = Ложь;
    Элементы.КнигиНазвание.ОтображениеГиперссылкиЯчейки = ОтображениеГиперссылкиЯчейки.Отображать;
    Элементы.КнигиНазвание.ВариантОтображенияГиперссылкиЯчейки = ВариантОтображенияГиперссылкиЯчейки.Всегда;
    Элементы.ТаблицаКниг.УстановитьДействие("Выбор", "ПоказатьКарточкуПоВыбору");
    ЭтаФорма.КарточкаКниги = "";
    ЭтаФорма.СостояниеУрока = "Ссылка названия: всегда. Выберите название клавишей Enter или двойным щелчком";
КонецПроцедуры

&НаСервере
Процедура ДобавитьСвоюКнигу(Знач Название, Знач Количество, Знач Статус)
    НоваяКнига = ЭтаФорма.Книги.Добавить();
    НоваяКнига.Название = Название;
    НоваяКнига.Количество = Количество;
    НоваяКнига.Статус = Статус;
КонецПроцедуры

&НаКлиенте
Процедура ПереключитьПоказСсылки(Команда)
    ДоПереключения = СигнатураСвоихКниг();
    Если Элементы.КнигиНазвание.ВариантОтображенияГиперссылкиЯчейки = ВариантОтображенияГиперссылкиЯчейки.Всегда Тогда
        Элементы.КнигиНазвание.ВариантОтображенияГиперссылкиЯчейки = ВариантОтображенияГиперссылкиЯчейки.ПриНаведенииНаСтроку;
        ЭтаФорма.СостояниеУрока = "Ссылка названия: при наведении на строку";
    Иначе
        Элементы.КнигиНазвание.ВариантОтображенияГиперссылкиЯчейки = ВариантОтображенияГиперссылкиЯчейки.Всегда;
        ЭтаФорма.СостояниеУрока = "Ссылка названия: всегда";
    КонецЕсли;
    Если СигнатураСвоихКниг() <> ДоПереключения Тогда
        ВызватьИсключение "Переключение вида ссылки изменило локальные данные";
    КонецЕсли;
    ЭтаФорма.СостояниеУрока = ЭтаФорма.СостояниеУрока + ". Значения трёх книг не изменились";
КонецПроцедуры

&НаКлиенте
Процедура ПоказатьКарточкуПоВыбору(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Если Поле <> Элементы.КнигиНазвание Тогда
        Возврат;
    КонецЕсли;
    Если ВыбраннаяСтрока = Неопределено Тогда
        ЭтаФорма.КарточкаКниги = "Нет собственной выбранной строки";
        Возврат;
    КонецЕсли;
    Книга = Элемент.ДанныеСтроки(ВыбраннаяСтрока);
    Если Книга = Неопределено Тогда
        ЭтаФорма.КарточкаКниги = "Данные собственной строки недоступны";
        Возврат;
    КонецЕсли;
    Если ТипЗнч(Книга) <> Тип("ДанныеФормыЭлементКоллекции") Тогда
        ВызватьИсключение "В таблице должны быть собственные строки реквизита Книги";
    КонецЕсли;
    ЭтаФорма.КарточкаКниги = СтрШаблон("%1. Количество: %2. Статус: %3", Книга.Название, Книга.Количество, Книга.Статус);
КонецПроцедуры

&НаКлиенте
Функция СигнатураСвоихКниг()
    Значения = Новый Массив;
    Для Каждого Книга Из ЭтаФорма.Книги Цикл
        Значения.Добавить(СтрШаблон("%1=%2=%3", Книга.Название, Книга.Количество, Книга.Статус));
    КонецЦикла;
    Возврат СтрСоединить(Значения, ";");
КонецФункции

Разбор по шагам

  1. Откройте собственную форму. Сервер проверяет имя стенда и текущий интерфейс Версия8_5, создаёт три локальные строки и делает таблицу доступной только для просмотра.

  2. У колонки КнигиНазвание задаётся ОтображениеГиперссылкиЯчейки=Отображать. Это наличие ссылки. ВариантОтображенияГиперссылкиЯчейки=Всегда отвечает за то, в каком состоянии строки она видна; два перечисления имеют разные имена и назначение.

  3. В начальном состоянии название должно выглядеть как ссылка независимо от положения курсора. Зафиксируйте наблюдение на активной теме своего клиента; статический тест не подтверждает внешний вид.

  4. Нажмите Переключить показ ссылки. Теперь ПриНаведенииНаСтроку: выведите курсор из таблицы, затем наведите на каждую строку. Сравните отображение названия до наведения и на наведённой строке.

  5. Установите активную ячейку Название у Тетрадь и нажмите Enter либо выполните двойной щелчок. Эти действия вызывают событие Выбор по нативному описанию таблицы. Одиночный щелчок по визуальной ссылке проверяйте отдельно: урок не приписывает новому свойству гарантию такого события.

  6. Поле события должно быть именно КнигиНазвание. ВыбраннаяСтрока передаётся в Элемент.ДанныеСтроки без предположения о числовом индексе или типе ключа. После проверки Неопределено и типа строки карточка получает данные Тетрадь/4/Проверить.

  7. Повторите выбор названия Блокнот: карточка должна показать количество 0 и Ожидается. Выбор в колонке Количество или Статус пропускается; предыдущая карточка сохраняется.

  8. Переключите показ обратно на Всегда. В обеих командах сравниваются сигнатуры трёх строк до и после изменения свойства; текст состояния сообщает сохранность значений только после этого сравнения. Закройте свою форму после опыта.

Как проверить результат

  1. При Enter/двойном щелчке на названии Тетрадь: Тетрадь. Количество: 4. Статус: Проверить. Для Блокнот: Блокнот. Количество: 0. Статус: Ожидается. Никакой навигационный URL, документ или другая форма не открываются.

  2. После переключения СостояниеУрока показывает соответствующий режим и фразу Значения трёх книг не изменились. Количество строк и значения Книга/3, Тетрадь/4, Блокнот/0 остаются прежними.

  3. Ручная визуальная проверка различает Всегда и ПриНаведенииНаСтроку на активном интерфейсе Версия 8.5. Если вид не меняется, зафиксируйте результат, тему и режим; успех статических тестов не заменяет эту проверку.

Ожидаемый результат

Наличие гиперссылки колонки и её вид при наведении настроены разными современными свойствами. Выбор проходит документированный маршрут таблица → реальные данные локальной строки → собственная карточка в той же форме.

На что обратить внимание

  1. ВариантОтображенияГиперссылкиЯчейки применяется только в интерфейсе Версия 8.5. Не выдавайте настройку свойства в другом интерфейсе за проверку его видимого эффекта.

  2. ОтображениеГиперссылкиЯчейки — singular свойство поля с enum Авто/НеОтображать/Отображать. ОтображениеГиперссылокЯчеек — plural свойство таблицы с другим enum. Его Авто для обычной локальной таблицы трактуется как НеОтображать; здесь колонка получает явное Отображать.

  3. ГиперссылкаЯчейки не рекомендуется с 8.5.1. Урок использует современное свойство ОтображениеГиперссылкиЯчейки и не смешивает его с историческим булевым флагом.

  4. Нативное описание Выбор гарантирует событие при Enter/двойном щелчке. ВариантОтображенияГиперссылкиЯчейки описывает вид ссылки, не произвольную команду или переход в интернет. Поведение одиночного щелчка требует отдельного ручного наблюдения.

  5. ДанныеСтроки доступен на клиенте, а УстановитьДействие таблицы — на сервере. Идентификатор ВыбраннаяСтрока не равен номеру строки массива; код не передаёт его в Получить(индекс).

  6. СтандартнаяОбработка=Ложь не отменяет уже возникшее действие события; она отключает стандартную обработку, чтобы пример не пытался редактировать локальные данные. Видимый результат и срабатывание UI требуют собственного запуска в 1С.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Добавить понятную подсказку и отключить ссылки ячеек

Кнопка подсказки объясняет происхождение двух собственных строк. Настройка ссылок таблицы действует на колонки с режимом Авто, но не является обработчиком открытия карточки.

Где и как запускать

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. В учебной базе: Файл → Новый → Внешняя обработка. Создайте управляемую форму и назначьте её основной. Дайте обработке имя УчебнаяТаблица.

  2. Не добавляйте вручную реквизит Товары и одноимённые элементы: код создаст их при открытии. Модуль формы для этой задачи должен быть пустым.

  3. В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Сохраните отдельную учебную EPF и откройте через Файл → Открыть.

  4. Данные Книга/Ручка создаются в памяти формы. Справочники, документы и регистры вашей конфигурации не читаются и не записываются.


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    НовыеРеквизиты = Новый Массив;
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Товары", Новый ОписаниеТипов("ТаблицаЗначений")));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Код", Новый ОписаниеТипов("Строка"), "Товары", "Код"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Наименование", Новый ОписаниеТипов("Строка"), "Товары", "Название"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)), "Товары", "Количество"));
    ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
    Данные = Новый ТаблицаЗначений;
    Данные.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)));

    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "A-01";
    СтрокаТовара.Наименование = "Книга";
    СтрокаТовара.Количество = 3;
    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "B-02";
    СтрокаТовара.Наименование = "Ручка";
    СтрокаТовара.Количество = 1;

    ЭтаФорма.ЗначениеВРеквизитФормы(Данные, "Товары");
    Таблица = ЭтаФорма.Элементы.Добавить("ТаблицаТоваров", Тип("ТаблицаФормы"));
    Таблица.ПутьКДанным = "Товары";
    Таблица.Заголовок = "Учебные товары";
    Таблица.Шапка = Истина;
    Таблица.АвтоВводНезаполненного = Ложь;
    Таблица.АвтоВводНовойСтроки = Ложь;
    Для Каждого ИмяКолонки Из СтрРазделить("Код,Наименование,Количество", ",") Цикл
        Колонка = Элементы.Добавить("Товары" + ИмяКолонки, Тип("ПолеФормы"), Таблица);
        Колонка.Вид = ВидПоляФормы.ПолеВвода;
        Колонка.ПутьКДанным = "Товары." + ИмяКолонки;
        Колонка.Заголовок = ИмяКолонки;
    КонецЦикла;
    Таблица.Подсказка = "Книга и ручка созданы в памяти учебной формы";
    Таблица.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка;
    Расширенная = Таблица.РасширеннаяПодсказка;
    Если Расширенная = Неопределено Тогда
        ВызватьИсключение "Не получено описание собственной расширенной подсказки";
    КонецЕсли;
    Расширенная.Заголовок = "Данные не читаются из справочника: A-01 — Книга, 3; B-02 — Ручка, 1. Изменения относятся только к открытой учебной форме.";
    Таблица.ОтображениеГиперссылокЯчеек = ОтображениеГиперссылокЯчеек.НеОтображать;
    Элементы.ТоварыНаименование.ОтображениеГиперссылкиЯчейки = ОтображениеГиперссылкиЯчейки.Авто;
    Сообщить(Таблица.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка);
    Сообщить(Таблица.ОтображениеГиперссылокЯчеек = ОтображениеГиперссылокЯчеек.НеОтображать);
    Сообщить(Элементы.ТоварыНаименование.ОтображениеГиперссылкиЯчейки = ОтображениеГиперссылкиЯчейки.Авто);
    Сообщить(СтрНайти(Расширенная.Заголовок, "Данные не читаются из справочника") = 1);
КонецПроцедуры

Разбор по шагам

  1. Обычная Подсказка содержит короткое объяснение, РасширеннаяПодсказка — отдельное описание декорации.

  2. РасширеннаяПодсказка readonly как ссылка на описание: не присваиваем новый объект таблице. Меняем разрешённый Заголовок существующего описания.

  3. ОтображениеПодсказки=Кнопка выбирает способ показа; внешний вид зависит от интерфейса клиента.

  4. ОтображениеГиперссылокЯчеек и ОтображениеГиперссылкиЯчейки — разные перечисления таблицы и конкретной колонки.

  5. Колонка наименования имеет Авто, поэтому таблица НеОтображать управляет её отображением. Данные остаются строками, не ссылками справочника.

Как проверить результат

  1. Четыре сравнения Истина.

  2. После открытия найдите кнопку подсказки и проверьте текст. Названия книги и ручки не должны превращаться в автоматические ссылки карточек этим кодом.

Ожидаемый результат

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

На что обратить внимание

  1. В другой колонке явный режим вместо Авто может иметь собственное поведение.

  2. Настройка гиперссылочного вида не создаёт код открытия объекта или запрос к справочнику.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.