Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 9
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )

> Расшифровка в один клик с помощью настройки макета          
greya Подменю пользователя
сообщение 10.10.18, 8:14
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 2
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день.

Есть отчет на СКД, в котором есть 3 поля и один ресурс.
Изначальная настройка имеет такой вид:
Отчет
Групировка по полю 1
Группировка по полю 2.

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

Очень хочется сделать так, чтобы вместо диалогового окна с его выборами типа действия и поля, сразу после нажатия на поле выскакивал результат расшифровки по полю 3.

Смотрю в сторону настройки макета. Создал макет группировки для Группировки по полю 2.
Указал для ячейки, в которой выводится ресурс, Параметр Расшифровки.
В окне настройки Параметра расшифровки из Параметров макета указал Основное действие "Расшифровать".
Но вот дальше тупик. :-( Если в окне настройки Параметра расшифровки я указываю Имя поля "Поле3" и Выражение "Поле3", то при попытки сформировать отчет получаю ошибку "Поле3 не может быть использовано в группировке Поле2".
Если эти поля не заполнять, или заполнить значением "Поле2" то при попытке вызвать расшифровку все равно появляется диалоговое окно, в котором нужно выбирать поле для расшифровки.
Подскажите, в чем неправ?


Платформа 8.3.7.1805, самописная конфа.

Vladal Подменю пользователя
сообщение 11.10.18, 14:16
Сообщение #2

Завсегдатай
****
Группа: Пользователи
Сообщений: 198
Из: Купянск
Спасибо сказали: 27 раз
Рейтинг: 13

Нужен сферический пример в вакууме.
Пусть это будет Номенклатура на Складах по Регистраторам.

greya Подменю пользователя
сообщение 11.10.18, 21:34
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 2
Спасибо сказали: 0 раз
Рейтинг: 0

Vladal @ Сегодня, 15:16 * ,
Хорошо...

Запрос:
"Выбрать 
   Регистр.Склад,
   Регистр.Номенклатура,
   Регистр.Регистратор
   Сумма(Регистр.Сумма)
Из _Регистр_ Как Регистр
Сгруппировать ПО
   Регистр.Склад,
   Регистр.Номенклатура,
   Регистр.Регистратор"


Сумма - ресурс.

Настройки отчета:
Первая группировка - Склад.
Вторая группировка - Номенклатура.
Без детальных записей.
Задача - "в один клик" по полю сумма в группировке "номенклатура" выводить расшифровку по полю "Регистратор", не выдавая пользователю никаких лишних меню. Желательно, через макет, но можно и кодом.

Vladal Подменю пользователя
сообщение Вчера, 12:16
Сообщение #4

Завсегдатай
****
Группа: Пользователи
Сообщений: 198
Из: Купянск
Спасибо сказали: 27 раз
Рейтинг: 13

На форуме есть заметка о расшифровке:
http://pro1c.org.ua/index.php?showtopic=13696

Вот и сделаем согласно описанию:

На форме в поле результата добавить обработчик

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


В результате при клике на ячейки с типом "СправочникСсылка.Номенклатура" и Регистратор с типом "ДокументСсылка.РеализацияТоваровУслуг" откроется непосредственно сам объект.



Можно подумать, как это нарисовать полностью программно - это наверно написано в книге Хрусталёвой по СКД.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.10.18, 21:52
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!

Курсы валют: доллар США к гривне Курсы валют: евро к гривне Курсы валют: российский рубль к гривне