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

Расшифровка отчета СКД другим вариантом отчета

Расшифровка отчета СКД другим вариантом отчета
Я
   Альбатрос
 
26.04.21 - 14:37
Пытаюсь расшифровать отчет этим же отчетом, но с другим вариантом настроек скд:

ПараметрыФормы = Новый Структура;
        
ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);
ПараметрыФормы.Вставить("КлючВарианта", "Расшифровка");
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("ПериодДоставки",Период);
СтруктураОтбора.Вставить("ДатаНачала",Период.ДатаНачала);
СтруктураОтбора.Вставить("ДатаОкончания",Период.ДатаОкончания);
        
ПараметрыФормы.Вставить("Отбор", СтруктураОтбора);                      
ФормаРасшифровки = ПолучитьФорму(ИмяОтчета+".Форма", ПараметрыФормы, , Истина);

Получаю ошибку в модуле объекта:

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

Ошибка: "невозможно применить фиксированные настройки. совпадают значения параметра"

Что не так? Буквально вчера подобным же образом делал другой отчет, там все ровно. Единственно, что не было программной обработки ПриКомпоновкеРезультата
   toypaul
 
1 - 26.04.21 - 15:28
надо передавать параметры как пользовательские настройки, чтобы они применились к параметрам варианта. а не добавлялись как сейчас в фикс настройки
   fisher
 
2 - 26.04.21 - 15:45
(1) +1
Кстати, а ты можешь как эксперт сформулировать, в каких случаях нужно использовать фикс. настройки? Только чур не посылать "это и многое другое вы узнаете на наших замечательных курсах" :)
(0) Я просто после получения формы варианта добираюсь в ней до пользовательских настроек компоновщика и делаю с ними чего надо.
   toypaul
 
3 - 26.04.21 - 16:06
(2) в случае когда эту настройку не должен менять пользователь. часто в отборе для дин списка. все случаи когда надо / когда не надо слишком долго думать.
   fisher
 
4 - 26.04.21 - 16:14
(3) Для дин-списка будет такое же опаньки, если у пользователя сохранены конфликтующие пользовательские настройки.
   fisher
 
5 - 26.04.21 - 16:17
Получается только такой вариант, когда пользователь в принципе никогда не может использовать конкретный список с конфликтующими отборами. Но тогда теряется вообще смысл фикс-настроек как потенциально удобного инструмента. Отсюда и вопрос.
   fisher
 
6 - 26.04.21 - 16:23
Если подумать, то есть таки варианты когда это удобно... Но они достаточно узкие.
   Альбатрос
 
7 - 26.04.21 - 17:35
(1) Спасибо, переделал. Теперь ровно такая же проблема с передачей значений группировок как элементы отбора для отчета расшифровки. Поясните, такая ошибка возникает, когда есть пересечение устанавливаемых отборов с сохраненными пользовательскими настройками. А если они не пересекаются? Ну то есть на закладке отборы в настройке СКД я добавил отборы не включая их в пользовательские отборы, пытаюсь заполнить эти отборы при расшифровке и получаю такую же ошибку. А как мне тогда установит отборы? Если в Настройки.ПользовательскиеНастройки.Элементы нет этих отборов... Блин, не догоняю, как это работает...
   Альбатрос
 
8 - 26.04.21 - 17:43
Пытаюсь как-то так сделать - не отрабатывает, но хоть без ошибки... Отборы не включаются...

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

                КонецЕсли;

            КонецЦикла
   Альбатрос
 
9 - 26.04.21 - 18:04
И элементы пользовательских настроек добавлять запрещает...
   Альбатрос
 
10 - 26.04.21 - 18:05
Что мне теперь, добавлять каждый вид отбора группировки в пользовательские настройки? Но это ж бред, ибо поменяют группировку, добавить новую и все, работать не будет
   toypaul
 
11 - 26.04.21 - 18:34
правильный ответ слишком долго объяснять. все это рассказывали в нашем курсе, о котором сказали не писать :)

там урок на 2ч. на каждый такой урок подготовка дня 2. в 2х словах не расскажешь
   Альбатрос
 
12 - 26.04.21 - 18:43
(11) Ну дай хоть подсказку какую что ли) Пожалей мое психическое здоровье, я уже часа 4 бьюсь на одном месте. Я исключил пользовательские настройки из варианта расшифровки, то есть в ПользовательскиеНастройки.Элементы пусто. И все равно ошибка
   toypaul
 
13 - 26.04.21 - 18:58
ну насколько я помню главное что надо сделать это загрузить целиком настройки варианта отчета в компоновщик расшифровки. хотя я не уверен что это самое главное :)
   Альбатрос
 
14 - 26.04.21 - 20:04
(13) Не особо помогло, но спасибо)
   fisher
 
15 - 27.04.21 - 09:59

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