есть обработка, в которой программно создаются поля надписи (гиперссылка) на элемент справочника. также установлено действие на нажатие. при стандартной обработке открывается основная форма справочника. как переопределить процедуру нажатие, чтобы открыть ДРУГУЮ форму объекта(не основную).

```1c
    &НаКлиенте
    Процедура НажатиеГипСсыль(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ПараметрыФормы = Новый Структура("Ключ", Элемент);
    ОткрытьФорму(
    "Справочник.РегламентыИИнструкции.Форма.ФормаПросмотраЭлемента", // имя формы
    ПараметрыФормы // параметры для формы
    );
    КонецПроцедуры
```
---
Т.е у вас просто поля ввода на форме.

```1c
    Процедура НажатиеГипСсыль(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ПараметрыФормы = Новый Структура("Ключ", Элемент);
    ОткрытьФорму(
    "Справочник.РегламентыИИнструкции.Форма.ФормаПросмотраЭлемента", // имя формы
    ПараметрыФормы // параметры для формы
    );
    КонецПроцедуры
```

тут в Элемент.Имя = "ссыль1"; Так же называется и реквизит формы, который создан программно.

Значит вот сюда

```1c
    ПараметрыФормы = Новый Структура("Ключ", Элемент);
```

Пишем

```1c
    ПараметрыФормы = Новый Структура("Ключ", ЭтотОбъект[Элемент.Имя]);
```

всё
---
а как программно создаются гиперссылки ? т.е. Ты фактически перебираешь элементы нужно справочника что бы создать нужное количество кнопок ?
---
При формировании поля надписи можно установить для нее тип "ФорматированнаяСтрока" (соответственно заполнить ее правильно) и потом обрабатывать событие "ОбработкаНавигационнойСсылки".
---
ОткрытьФорму(
        "Справочник.РегламентыИИнструкции.Форма.ФормаПросмотраЭлемента", // имя формы

может здесь и менять?
---
может. но я же не знаю какая из ссылок нажимается. ведь эта процедура для всех ссылок
---
по наименованию найти же можно
---
не соображу никак.
не выспался.
---
Давай попробую помочь по удаленке. Я спал 2 часа :)
---
в принципе я не соображу как получить ссылку по Элемент

(7) Давай попробую помочь по удаленке. .
все порты заблокированы.
никак.
сами мучаемся.
---
ГипСсыль вот так вроде называется твоя кнопка
---
у меня не кнопка, а куча гиперссылок, которые создаются программно. и у всех(программно) установлено событие нажатие(одно на всех)
---
```1c
    "Справочник.РегламентыИИнструкции.Форма.ФормаПросмотраЭлемента", // имя формы
```

тогда тут указывай свою форму
---
это она и есть. она открывается. как создание нового. а мне нужно открыть существующий, гиперссылка которого нажимается. т.е. мне нужно узнать ссылку справочника
---
Через остановку тогда делай
---
уже три дня по 3 часа сплю
---
```1c
    Если Элемент.Имя = "ИмяЭлемента_ПриНажатииКоторогоДолжнаОткрыватьсяДругаяФорма" Тогда
    СтандартнаяОбработка = Ложь;
    ПараметрыФормы = Новый Структура("Ключ", Элемент);
    ОткрытьФорму(
    "Справочник.РегламентыИИнструкции.Форма.ФормаПросмотраЭлемента", // имя формы
    ПараметрыФормы // параметры для формы
    );
    КонецЕсли
```
---
не не не, Элемент тут ПолеФормы
---
в смысле - табличное поле? И гиперссылки в строках табличного поля?
---
Не заставляйте нас гадать варианты вашей реализации. Сделайте скриншоты, приведите отрывок кода, который генерирует гиперссылки. На крайний случай выложите ее, если только не считаете, что в ней есть что-то, что вам жалко давать нам. (коды доступа запуска ракет, пароли или алгоритм, который мы не в силах повторить самостоятельно).
Опишите:
Хочу тыкнуть в эту программную гиперссыль, чтоб открылось это значение.
Хочу тыкать вот сюда, чтоб ничего не открывалось.
Так получите ответ намного быстрее.
---
Сообщение было скрыто модератором.
---
```1c
    &НаСервере
    Функция СоздатьЭлементФормы(ЭлементРодитель,ИмяЭлемента,ПутьКДанным,Вид,ТолькоПросмотр)

    ЭлементФормы = Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ЭлементРодитель);
    ЭлементФормы.ПутьКДанным = ПутьКДанным;
    ЭлементФормы.Вид = Вид;
    ЭлементФормы.ТолькоПросмотр = ТолькоПросмотр;
    ЭлементФормы.Гиперссылка = Истина;
    ЭлементФормы.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
    ЭлементФормы.УстановитьДействие("Нажатие","НажатиеГипСсыль");
    КонецФункции

    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | РегламентыИИнструкции.Ссылка КАК Ссылка,
    | РегламентыИИнструкции.Наименование КАК Наименование
    |ИЗ
    | Справочник.РегламентыИИнструкции КАК РегламентыИИнструкции
    |ГДЕ
    | РегламентыИИнструкции.ПометкаУдаления = ЛОЖЬ";

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    n = 1;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    имя = Строка("ссыль"+n);

    // Добавляем реквизиты
    ДобавляемыеРеквизиты = Новый Массив;
    Реквизит = Новый РеквизитФормы(имя,
    Новый ОписаниеТипов("СправочникСсылка.РегламентыИИнструкции")
    ,
    ,
    ВыборкаДетальныеЗаписи.Наименование,
    Ложь);

    ДобавляемыеРеквизиты.Добавить(Реквизит);
    ИзменитьРеквизиты(ДобавляемыеРеквизиты);

    // Добавляем элементы форм СоздатьЭлементФормы(ЭлементРодитель,ИмяЭлемента,ПутьКДанным,Вид,ТолькоПросмотр)
    СоздатьЭлементФормы(Этаформа,
    имя,
    имя,
    ВидПоляФормы.ПолеНадписи,
    Ложь);

    // Устанавливаем значение реквизиту формы
    ЭтаФорма[имя] = ВыборкаДетальныеЗаписи.Ссылка;

    n =n + 1 ;
    КонецЦикла;

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

    &НаКлиенте
    Процедура НажатиеГипСсыль(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ПараметрыФормы = Новый Структура("Ключ", Элемент);
    ОткрытьФорму(
    "Справочник.РегламентыИИнструкции.Форма.ФормаПросмотраЭлемента", // имя формы
    ПараметрыФормы // параметры для формы
    );
    КонецПроцедуры
```
---
Т.е у вас просто поля ввода на форме.

```1c
    Процедура НажатиеГипСсыль(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ПараметрыФормы = Новый Структура("Ключ", Элемент);
    ОткрытьФорму(
    "Справочник.РегламентыИИнструкции.Форма.ФормаПросмотраЭлемента", // имя формы
    ПараметрыФормы // параметры для формы
    );
    КонецПроцедуры
```

тут в Элемент.Имя = "ссыль1"; Так же называется и реквизит формы, который создан программно.

Значит вот сюда

```1c
    ПараметрыФормы = Новый Структура("Ключ", Элемент);
```

Пишем

```1c
    ПараметрыФормы = Новый Структура("Ключ", ЭтотОбъект[Элемент.Имя]);
```

всё
---
Спасибо. помогло