Использование параметра расшифровки в макете

1. Dffb74 17.03.12 12:52 Сейчас в теме
Доброго времени суток!

Собственно волнует следующий вопрос:
вывожу макет, и если пользователь нажмет на определенную ячейку, сформировался бы другой отчет с нужными параметрами !

Зарание благодарю
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. PinkVinIII 17.03.12 13:15 Сейчас в теме
А в типовой слабо посмотреть?
3. corpfin-info2 17.03.12 16:08 Сейчас в теме
Держи как то так

По двойному щелчку на ячейке с расшифровкой можно вызвать свою процедуру. Для реализации этого следует выполнить несколько условий:
1)Вывод табличного документа должен осуществляться в объект ПолеТабличногоДокумента;
2)Должно быть присвоено значение свойству ячейки ПараметрРасшифровки, например, РасшифровкаКонтрагента.
3)Параметру расшифровки РасшифровкаКонтрагента присваивается заполненный при формировании табличного документа нужными значениями СписокЗначений или чаще Структура. В частности, может передаваться имя стандартного отчета конфигурации и параметров, которые нужно задать в форме отчета, например, период дат, номер счета и т.д. А потом этот отчет вызывается как процедура.
4)Для объекта ПолеТабличногоДокумента свойство ТолькоПросмотр нужно установить в значение Истина.
5)Код пользовательской процедуры помещается в процедуру
ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка), и первой строкой в ней должна быть такая:
СтандартнаяОбработка = Ложь;

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

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

Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Договоры = Справочники.Договоры.ПолучитьФормуСписка();
Договоры.ПараметрОтборПоВладельцу = Расшифровка.Контрагент;
Договоры.Открыть();
КонецПроцедуры
gucci76; username123; vardeg; julia96_07; gradi; Элит; AlexFierst; kukaev-ali; Bnwk; EMelihoff; +10 Ответить
10. user640247 08.07.20 08:18 Сейчас в теме
(3)
СтруктураРасшифровки = Новый Структура;


Спасибо!
сначала строку "СтруктураРасшифровки = Новый Структура" написала до самого запроса и выдавало только последние значения. Потом в самом цикле и всё заработало.
4. DrBlack 23 07.06.12 14:49 Сейчас в теме
Пробовал со структурой, вообще засада!

Хотел чтобы у меня в поле была сумма, а к ней расшифровка, в итоге имеем в поле значение "Структура"... :(
Пробовал указать "СодержитЗначение" с типом "Число", в итоге я избавился только от надписи "Структура", т.е. поле вообще пустое...

Расшифровка работает в обоих случаях, но мне-то надо расшифровывать поля с суммами, а сейчас я дошел до того, что рядом с суммами будут дополнительные колонки с расшифровками...

Обидно... :(
5. alex271 363 07.06.12 15:01 Сейчас в теме
У ячейки табличного документа есть свойство расшифровка, для значения которого необходимо создать соответствующий обработчик
6. DrBlack 23 07.06.12 15:46 Сейчас в теме
to lex271:
Проблема не в расшифровке.
У ячейки табличного документа есть свойство расшифровка, для значения которого необходимо создать соответствующий обработчик
Я все это сделал, но при выводе в табличный документ я вижу вместо требуемой суммы надпись "Структура", при двойном щелчке расшифровка отрабатывает на ура, но вот как мне сделать чтобы вместо надписи "Структура" было видно именно сумму (которую и надо расшифровать по заданной структуре параметров)?
7. DrBlack 23 07.06.12 16:13 Сейчас в теме
В общем рабочий пример кому потребуется:
1) В параметры передал требуемые суммы и вывел область
2) Сформировал структуру с параметрами
3) В табличном документе "ручками" для каждого поля заполнил расшифровку, пример:

	// п1
	ЗаполнитьЗначенияСвойств(мСтрока, Выборка);
	ТабДок.Вывести(мСтрока, 1, "", Истина);

	// п2
	Расшифровка1 = Новый Структура();
	Расшифровка1.Вставить("СтатьяЗатрат",  Выборка.СтатьяЗатрат);
	Расшифровка1.Вставить("Подразделение", Выборка.Подразделение);
		
	// п3
	ЭлементыФормы.ПолеТабличногоДокумента1.Область(СчетчикСтроки, 1).Расшифровка = Расшифровка1;
	ЭлементыФормы.ПолеТабличногоДокумента1.Область(СчетчикСтроки, 2).Расшифровка = Расшифровка2;
Показать
8. denis_aka_wolf 79 05.06.15 07:20 Сейчас в теме
Хоть и давно была заброшена ветка, решил написать рабочее решение чтобы не
В табличном документе "ручками" для каждого поля заполнил расшифровку


Перед выводом области формируем структуру:

//Заполним параметры расшифровки
КлючСтруктуры = "Сотрудник,Подразделение,Должность,График";

Структура = Новый Структура(КлючСтруктуры,мВыборкаДетальныеЗаписи.Сотрудник,мВыборкаДетальныеЗаписи.Подразделение,
                            мВыборкаДетальныеЗаписи.Должность,мВыборкаДетальныеЗаписи.График);
ОбластьСтрока.Параметры.Расшифровка = Структура;

//выводим строку
ТабДок.Вывести(ОбластьСтрока);
Показать


И в обработке расшифровке пишем:


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

Показать


В итоге получаем меню показанное на рисунке:
https://cloud.mail.ru/public/489X/ok3KtYAqa

shalupov61; agentesecreto; shumvlesu; SmArtist; Светлый ум; config; KidMo; +7 Ответить
9. Светлый ум 406 03.11.16 06:30 Сейчас в теме
Наткнулся на такую проблему - заполнял макет конструктором выходных форм:
- В итоге ни одна из расшифровок не сработала
Решение:
- Создал новый макет руками, завел все те же области и параметры ("не копировал!") и задал параметры расшифровки - все заработало.

Итог: созданный конструктором макет может дать такой косяк
shalupov61; serg1983; Vida; +3 Ответить
Оставьте свое сообщение

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