Добрый день.
Есть отчет на СКД, в котором есть 3 поля и один ресурс.
Изначальная настройка имеет такой вид:
Отчет
Групировка по полю 1
Группировка по полю 2.
При нажатии на поле ресурса появляется стандартное диалоговое окно расшифровки, где, среди прочего, можно выбрать вариант "Расшифровать по полю 3".
Очень хочется сделать так, чтобы вместо диалогового окна с его выборами типа действия и поля, сразу после нажатия на поле выскакивал результат расшифровки по полю 3.
Смотрю в сторону настройки макета. Создал макет группировки для Группировки по полю 2.
Указал для ячейки, в которой выводится ресурс, Параметр Расшифровки.
В окне настройки Параметра расшифровки из Параметров макета указал Основное действие "Расшифровать".
Но вот дальше тупик. :-( Если в окне настройки Параметра расшифровки я указываю Имя поля "Поле3" и Выражение "Поле3", то при попытки сформировать отчет получаю ошибку "Поле3 не может быть использовано в группировке Поле2".
Если эти поля не заполнять, или заполнить значением "Поле2" то при попытке вызвать расшифровку все равно появляется диалоговое окно, в котором нужно выбирать поле для расшифровки.
Подскажите, в чем неправ?
Платформа 8.3.7.1805, самописная конфа.
Нужен сферический пример в вакууме.
Пусть это будет Номенклатура на Складах по Регистраторам.
Vladal @ Сегодня, 15:16
,
Хорошо...
Запрос:
"Выбрать
Регистр.Склад,
Регистр.Номенклатура,
Регистр.Регистратор
Сумма(Регистр.Сумма)
Из _Регистр_ Как Регистр
Сгруппировать ПО
Регистр.Склад,
Регистр.Номенклатура,
Регистр.Регистратор"
На форуме есть заметка о расшифровке:
http://pro1c.org.ua/index.php?showtopic=13696
Вот и сделаем согласно описанию:
На форме в поле результата добавить обработчик
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
Перем ВыполненноеДействие;
Если ТипЗнч(Расшифровка)= Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
Попытка
Поля = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля();
Если Поля.Количество() Тогда
Значение = Поля[0].Значение;
Иначе
Значение = Неопределено;
КонецЕсли;
Исключение
Значение = Неопределено;
КонецПопытки;
// Здесь описано условие на типы данных, открываемых сразу
Если ТипЗнч(Значение) = Тип("ДокументСсылка.РеализацияТоваровУслуг")
ИЛИ ТипЗнч(Значение) = Тип("СправочникСсылка.Номенклатура") Тогда
//Если значение определенного типа тогда
СтандартнаяОбработка = Ложь;
СписокДействий = Новый СписокЗначений;
ДоступныеДействия = Новый Массив();
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);
ОбработкаРасшифровки=Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия, СписокДействий);
Если Настройки <> Неопределено Тогда
//КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
//ЭлементыФормы.Результат.Очистить();
//СкомпоноватьРезультат(ЭлементыФормы.Результат,ДанныеРасшифровки);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua