Обработка расшифровка

1. user1345957 04.04.20 00:52 Сейчас в теме
При активизации ячейки необходимо чтобы открывалась заданная форма. Как это сделать в событии Обработка расшифровки?
Разжуйте пожалуйста. Макет и форма с табличным документом есть.
По теме из базы знаний
Найденные решения
17. karamazoff 123 04.04.20 12:33 Сейчас в теме
(16)тогда вот ваш код

&НаКлиенте
Процедура Реквизит1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)
СтандартнаяОбработка = Ложь;

Если Расшифровка = "НадоОткрытьФорму" Тогда
ОткрытьФорму("ОбщаяФорма.Чекпоинт1");
КонецЕсли;

КонецПроцедуры
user1345957; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. karamazoff 123 04.04.20 09:09 Сейчас в теме
при активизации вряд ли, расшифровка делается по двойному клику, а как обработать подскажет ИТС

Обработка расшифровки
После того, как расшифровка заполнена, следует позаботиться об ее обработке.

Если табличный документ открыт в отдельном окне, никаких действий по обработке расшифровки выполнить нельзя. В этом случае расшифровка будет работать в соответствии со своим поведением по умолчанию – то есть, будет открыто значение расшифровки. Для ссылочных типов будет открыта основная форма объекта, для других типов будет отображена строка, представляющая значение расшифровки.

Если табличный документ отображается в поле табличного документа, возможно переопределение поведения расшифровки. Для этого нужно создать обработчик события ОбработкаРасшифровки поля табличного документа. Это событие будет вызываться при каждой попытке пользователя вызвать расшифровку. В обработчик события будет передано поле табличного документа, для которого вызвана расшифровка, значение расшифровки и флаг стандартной обработки расшифровки. Если стандартная обработка расшифровки не нужна, следует присвоить флагу СтандартнаяОбработка значение "Ложь".

Пример:

Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонецПроцедуры
В тексте обработчика события можно выполнить любые действия по обработке расшифровки. Например, запустить на исполнение некоторый отчет, передав ему в качестве параметра значение расшифровки.
3. user1345957 04.04.20 10:32 Сейчас в теме
(2) Так у меня как раз и есть поле табличного документа с событием обработка расшифровка. 1 или 2 клика срабатывать будет мне не важно.
В макете у меня есть рисунок с заполненым Параметр Расшифровка.
Мне нужно чтобы при нажатии на рисунок открывалась бы заданная мною форма.
4. karamazoff 123 04.04.20 10:51 Сейчас в теме
(3)ну и сделайте как в примере, внутрь процедуры добавьте
Если Расшифровка = МояРасшифровка тогда
открытьФорму...
КонецЕсли;
5. user1345957 04.04.20 11:01 Сейчас в теме
(4) что будет в расшифровка, а что в моя расшифровка ?
насколько я знаю расшифровка это числовой параметр.

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



{ОбщаяФорма.ИнтерактивнаяКартаМарафона.Форма(8,21)}: Переменная не определена (ПунктИ1)
Если Расшифровка = <<?>>ПунктИ1 Тогда (Проверка: Сервер)
{ОбщаяФорма.ИнтерактивнаяКартаМарафона.Форма(9,3)}: Процедура или функция с указанным именем не определена (ОткрытьФорму)
<<?>>ОткрытьФорму("ОбщаяФорма.Чекпоинт1"); (Проверка: Сервер)
7. karamazoff 123 04.04.20 11:16 Сейчас в теме
(5)Надо делать НаКлиенте, а не на сервере
8. user1345957 04.04.20 11:20 Сейчас в теме
(7) я поставил точку останова, но не могу данных посмотреть, так как сразу выкидывает меня с ошибкой.
Ошибка инициализации модуля: ОбщаяФорма.ИнтерактивнаяКартаМарафона.Форма
по причине:
{ОбщаяФорма.ИнтерактивнаяКартаМарафона.Форма(8,21)}: Переменная не определена (ПунктИ1)
Если Расшифровка = <<?>>ПунктИ1 Тогда
В моём примере ПунктИ1 это то что заполнено в параметре расшифровки у рисунка.
9. karamazoff 123 04.04.20 11:22 Сейчас в теме
(8)закомментируйте пока условие, чтобы можно было посмотреть
10. user1345957 04.04.20 11:31 Сейчас в теме
(9) точка останова не активируется.

&НаКлиенте
Процедура Реквизит1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)
	СтандартнаяОбработка = Ложь;
    
	//Задумывается взаимосвязь через условие: если нажата ячейка с параметром ПунктИ1
	//ОткрытьФорму("");//то откроется форма с небольшой поясняющей информацией. Для каждого пункта своя форма, заданного размера и в ней содержания.
	//Если Расшифровка = ПунктИ1 Тогда
	//	ОткрытьФорму("ОбщаяФорма.Чекпоинт1");
	//КонецЕсли;
			
КонецПроцедуры
Показать
11. karamazoff 123 04.04.20 11:35 Сейчас в теме
(10)да уж... надо эту процедуру вписать в Свойство поля табличного документа
и поставить точку на строку СтандартнаяОбработка = ложь
Прикрепленные файлы:
user1345957; +1 Ответить
12. user1345957 04.04.20 11:41 Сейчас в теме
(11) Так она там и есть, поэтому я поставил в другое место точку останова. Проверил Расшифровка и ПунктИ1 по отдельности, в значение выходит: Переменная не определена.
Прикрепленные файлы:
13. karamazoff 123 04.04.20 11:56 Сейчас в теме
(12)жесть! У вас же в профиле программист 1С...
по порядку:
у вас есть Макет, в Макете есть Ячейка, в свойствах ячейки в поле ПараметрРасшифровки должно быть указано имя параметра , например "РасшДляЭтойЯчейки", при заполнении макета вы в коде должны указать
Область.Параметры.РасшДляЭтойЯчейки = "НадоОткрытьФорму";
тогда при клике по этой ячейке
Процедура Реквизит1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)
в параметре расшифровки вернет "НадоОткрытьФорму"
Попробуйте так сделать и добиться чтобы Процедура передавала в Расшифровка то, что вы задали в коде.
user1345957; +1 Ответить
14. user1345957 04.04.20 12:07 Сейчас в теме
(13)
НадоОткрытьФорму


А условие надо будет переделать ? Если Расшифровка = ПунктИ1
Вроде я нашёл проблему..
Прикрепленные файлы:
15. karamazoff 123 04.04.20 12:12 Сейчас в теме
(14)непонятно что такое ПунктИ1, это явно не реквизит, если это текстовый параметр, то можно написать
Если Расшифровка = "тоЧтоВПунктИ1"
Суть проста, добиться чтобы в процедуру передавалась не пустая Расшифровка, уникальная для данной ячейки макета, т.е. для других ячеек Расшифровка либо неопределена, либо имеет другие значения, и сравнивать.

Покажите ваш макет и процедуру его заполнения
16. user1345957 04.04.20 12:31 Сейчас в теме
(15) Вот мой макет.
А процедура заполнения где ?
Это всё что связано с макетом.

&НаСервере
Функция ПриОткрытииНаСервере()
ТабДок = Новый ТабличныйДокумент;
Макет = Документы.ДокументДляИнтерактивнойКарты.ПолучитьМакет("МакетИнтерактивнойКарты");
Область1 = Макет.ПолучитьОбласть("Область1");

Область1.Параметры.ПунктИ1 = "НадоОткрытьФорму";

Реквизит1.Вывести(Область1); //Это позволит вывести Табличный документ на форме. ИмяТвоегоРеквизитаФормы.Вывести(ИмяПеременнойТабличныйДокумент);
ТабДок.Вывести(Область1); //Это откроет новое окно. Пригодится, если необходима печать.
ТабДок.ОтображатьЗаголовки = Ложь;
    Возврат ТабДок;
КонецФункции

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ТабДок = ПриОткрытииНаСервере();

	ТабДок.Показать(Реквизит1);
	ТабДок.ОтображатьСетку = Ложь;
КонецПроцедуры
Показать
Прикрепленные файлы:
17. karamazoff 123 04.04.20 12:33 Сейчас в теме
(16)тогда вот ваш код

&НаКлиенте
Процедура Реквизит1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)
СтандартнаяОбработка = Ложь;

Если Расшифровка = "НадоОткрытьФорму" Тогда
ОткрытьФорму("ОбщаяФорма.Чекпоинт1");
КонецЕсли;

КонецПроцедуры
user1345957; +1 Ответить
19. user1345957 04.04.20 12:47 Сейчас в теме
(17) всё работает, спасибо. Знания теперь полны, а не как раньше: куча пробелов.
20. karamazoff 123 04.04.20 12:50 Сейчас в теме
21. user1345957 04.04.20 14:34 Сейчас в теме
(20) у меня расшифровка ведётся у 8 рисунков, мне нужно нумеровать в условиях как расшифровка1, расшифровка2 и т.д. ?
22. karamazoff 123 04.04.20 15:01 Сейчас в теме
(21)у всех значение расшифровки должно быть свое, уникальное, а при проверке
Если ....
ИначеЕсли ....
ИначеЕсли ....
...
КонецЕсли;
23. user1345957 05.04.20 00:32 Сейчас в теме
(22) А как можно программно скрыть имя области при выводе макета ?
18. user1345957 04.04.20 12:46 Сейчас в теме
(15) благодарю что разжевали всё понятно, я не всё доконца понимал. А насчёт условия я догадывался, но не знал как его именно нужно задать.
6. karamazoff 123 04.04.20 11:11 Сейчас в теме
в процедуру
Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
передается параметр Расшифровка - это данные расшифровки той ячейки, по которой кликнули, вы писали, что у вас рисунок с заполненным параметром Расшифровка, вот и надо сравнить Расшифровку которая передалась в процедуру с вашей расшифровкой для рисунка, чтобы убедиться что кликнули именно по рисунку, а не в любое другое поле.
Поставьте точку останова в процедуре и посмотрите что передается в параметре Расшифровка.
NicolasCage; user1345957; +2 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот