как переопределить процедуру нажатие, чтобы открыть ДРУГУЮ форму объекта

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

&НаКлиенте
Процедура НажатиеГипСсыль(Элемент, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
        ПараметрыФормы = Новый Структура("Ключ", Элемент);
        ОткрытьФорму(
        "Справочник.РегламентыИИнструкции.Форма.ФормаПросмотраЭлемента", // имя формы
        ПараметрыФормы // параметры для формы
    );
КонецПроцедуры
Показать
По теме из базы знаний
Найденные решения
22. dandykry 9 21.06.18 10:14 Сейчас в теме
(21) Т.е у вас просто поля ввода на форме.

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


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

Значит вот сюда
  ПараметрыФормы = Новый Структура("Ключ", Элемент);

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


всё
aleks-lit; ranis888; Skromnyi; +3 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
16. vadim1011985 99 21.06.18 09:21 Сейчас в теме
(1) а как программно создаются гиперссылки ? т.е. Ты фактически перебираешь элементы нужно справочника что бы создать нужное количество кнопок ?
19. Skromnyi 12 21.06.18 09:40 Сейчас в теме
(1) При формировании поля надписи можно установить для нее тип "ФорматированнаяСтрока" (соответственно заполнить ее правильно) и потом обрабатывать событие "ОбработкаНавигационнойСсылки".
2. ranis888 101 21.06.18 08:13 Сейчас в теме
ОткрытьФорму(
"Справочник.РегламентыИИнструкции.Форма.ФормаПросмотраЭлемента", // имя формы


может здесь и менять?
3. aleks-lit 21.06.18 08:19 Сейчас в теме
может. но я же не знаю какая из ссылок нажимается. ведь эта процедура для всех ссылок
4. ranis888 101 21.06.18 08:22 Сейчас в теме
(3) по наименованию найти же можно
5. aleks-lit 21.06.18 08:24 Сейчас в теме
(4)не соображу никак.
не выспался.
7. ranis888 101 21.06.18 08:24 Сейчас в теме
(5) Давай попробую помочь по удаленке. Я спал 2 часа :)
8. aleks-lit 21.06.18 08:33 Сейчас в теме
(7) в принципе я не соображу как получить ссылку по Элемент

(7)
Давай попробую помочь по удаленке.
.
все порты заблокированы.
никак.
сами мучаемся.
9. ranis888 101 21.06.18 08:34 Сейчас в теме
(8)ГипСсыль вот так вроде называется твоя кнопка
10. aleks-lit 21.06.18 08:38 Сейчас в теме
(9)у меня не кнопка, а куча гиперссылок, которые создаются программно. и у всех(программно) установлено событие нажатие(одно на всех)
11. ranis888 101 21.06.18 08:39 Сейчас в теме
(10)
"Справочник.РегламентыИИнструкции.Форма.ФормаПросмотраЭлемента", // имя формы


тогда тут указывай свою форму
12. aleks-lit 21.06.18 08:45 Сейчас в теме
(11)это она и есть. она открывается. как создание нового. а мне нужно открыть существующий, гиперссылка которого нажимается. т.е. мне нужно узнать ссылку справочника
17. ranis888 101 21.06.18 09:24 Сейчас в теме
(12) Через остановку тогда делай
6. aleks-lit 21.06.18 08:24 Сейчас в теме
уже три дня по 3 часа сплю
13. ipoloskov 162 21.06.18 08:53 Сейчас в теме
Если Элемент.Имя = "ИмяЭлемента_ПриНажатииКоторогоДолжнаОткрыватьсяДругаяФорма" Тогда
        СтандартнаяОбработка = Ложь;
        ПараметрыФормы = Новый Структура("Ключ", Элемент);
        ОткрытьФорму(
        "Справочник.РегламентыИИнструкции.Форма.ФормаПросмотраЭлемента", // имя формы
        ПараметрыФормы // параметры для формы
    );
КонецЕсли
15. aleks-lit 21.06.18 09:04 Сейчас в теме
(13)
не не не, Элемент тут ПолеФормы
18. ipoloskov 162 21.06.18 09:28 Сейчас в теме
(15) в смысле - табличное поле? И гиперссылки в строках табличного поля?
20. dandykry 9 21.06.18 09:44 Сейчас в теме
(15) Не заставляйте нас гадать варианты вашей реализации. Сделайте скриншоты, приведите отрывок кода, который генерирует гиперссылки. На крайний случай выложите ее, если только не считаете, что в ней есть что-то, что вам жалко давать нам. (коды доступа запуска ракет, пароли или алгоритм, который мы не в силах повторить самостоятельно).
Опишите:
Хочу тыкнуть в эту программную гиперссыль, чтоб открылось это значение.
Хочу тыкать вот сюда, чтоб ничего не открывалось.
Так получите ответ намного быстрее.
Skromnyi; +1 Ответить
14. пользователь 21.06.18 08:54
Сообщение было скрыто модератором.
...
21. aleks-lit 21.06.18 10:04 Сейчас в теме
&НаСервере
Функция СоздатьЭлементФормы(ЭлементРодитель,ИмяЭлемента,ПутьКДанным,Вид,ТолькоПросмотр)
	
	ЭлементФормы = Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ЭлементРодитель);
	ЭлементФормы.ПутьКДанным = ПутьКДанным; 
	ЭлементФормы.Вид         = Вид;
	ЭлементФормы.ТолькоПросмотр = ТолькоПросмотр;
	ЭлементФормы.Гиперссылка = Истина;
	ЭлементФормы.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
	ЭлементФормы.УстановитьДействие("Нажатие","НажатиеГипСсыль");
КонецФункции
 
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	РегламентыИИнструкции.Ссылка КАК Ссылка,
	|	РегламентыИИнструкции.Наименование КАК Наименование
	|ИЗ
	|	Справочник.РегламентыИИнструкции КАК РегламентыИИнструкции
	|ГДЕ
	|	РегламентыИИнструкции.ПометкаУдаления = ЛОЖЬ";
	
	РезультатЗапроса = Запрос.Выполнить();
		
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	n = 1;
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
				имя = Строка("ссыль"+n);
		
		// Добавляем реквизиты
		ДобавляемыеРеквизиты = Новый Массив;
		Реквизит = Новый РеквизитФормы(имя,	
		Новый ОписаниеТипов("СправочникСсылка.РегламентыИИнструкции")
		,
		,
		ВыборкаДетальныеЗаписи.Наименование,
		Ложь);
		
		ДобавляемыеРеквизиты.Добавить(Реквизит);
		ИзменитьРеквизиты(ДобавляемыеРеквизиты);
		
		// Добавляем элементы форм СоздатьЭлементФормы(ЭлементРодитель,ИмяЭлемента,ПутьКДанным,Вид,ТолькоПросмотр)
		СоздатьЭлементФормы(Этаформа,
				имя, 
				имя,
				ВидПоляФормы.ПолеНадписи,
				Ложь);
		
		// Устанавливаем значение реквизиту формы
		ЭтаФорма[имя] = ВыборкаДетальныеЗаписи.Ссылка;

				n =n + 1   ;
	КонецЦикла;
	
	КонецПроцедуры

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

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


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

Значит вот сюда
  ПараметрыФормы = Новый Структура("Ключ", Элемент);

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


всё
aleks-lit; ranis888; Skromnyi; +3 Ответить
23. aleks-lit 21.06.18 18:05 Сейчас в теме
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)