Вход | Регистрация

1С:Предприятие ::

Метки: 

СКД.Помогите с расшифровкой

Я
   PCcomCat
 
24.07.18 - 00:37
Доброго времени, уважаемые!
Понимаю, что тема банальна. Но я топчусь на месте - пните в нужном направлении!
Отчет на скд, расшифровка по-сути показывает нужные данные. Но необходимо убрать некоторые поля из расшифровки. Как это реализовать?
Заранее благодарю.
 
  Рекламное место пустует
   PCcomCat
 
1 - 24.07.18 - 10:22
Подниму...
Пытаюсь уже при ПриКомпоновкеРезультата подменить схему для расшифровки - не выходит.

Где можно подсмотреть реализацию?
   Tonik992
 
2 - 24.07.18 - 10:49
Попробуйте не схему компоновки подменивать, а изменить настройки компоновки.
   PCcomCat
 
3 - 24.07.18 - 16:27
Реализовала так:

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

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

КонецФункции

&НаСервере
Функция ЭтоНестандартнаяРасшифровка(Расшифровка)
    
    ДанныеРасшифровкиКомпоновки = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
    ПоляРасшифровки = ДанныеРасшифровкиКомпоновки.Элементы.Получить(Расшифровка).ПолучитьПоля();
    
    Если ПоляРасшифровки.Количество() = 0 тогда
        //Стандартная расшифровка

        Возврат Неопределено;
    КонецЕсли;
    
    Для каждого ПолеРасшифровки Из ПоляРасшифровки Цикл
        Если ПолеРасшифровки.Поле = "ЗатраченноеВремя" тогда
            //Открытие нестандартной расшифровки

            Возврат Истина;
        ИначеЕсли ПолеРасшифровки.Поле = "ПоНормативу"
            Или ПолеРасшифровки.Поле = "БелаяДляТаможни"
            Или ПолеРасшифровки.Поле = "КтоПодготовил"
            Или ПолеРасшифровки.Поле = "ДатаПодготовки"
            Или ПолеРасшифровки.Поле = "КтоНазначил"
            Или ПолеРасшифровки.Поле = "ДатаНазначения"
            Или ПолеРасшифровки.Поле = "Контракт" 
            Или ПолеРасшифровки.Поле = "СтатусИнвойса" тогда
            //Не нужна расшифровка

            Возврат Ложь;
        КонецЕсли;    
    КонецЦикла;    
    
    //Нет искомых полей - стандартная расшифровка

    Возврат Неопределено;
    
КонецФункции


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует