Имя: Пароль:
1C
1С v8
8.3 Открыть отчет с отбором через точку
,
0 sima
 
02.05.18
11:37
Понятно:

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

Не понятно:

УсловияОтбора =("Номенклатура.Вид", НоменклатураВид);

Такое имя ключа не может существовать для структуры, а нужен отбор через точку.
1 palsergeich
 
02.05.18
11:57
В таком виде это не реализуемо, через параметр отчета "Отбор" возможны только простейшие условия.
Для сложных условий можно воспользоватся ключом "ФиксированныеНастройки" Там уже полноценно можно передать достаточно сложный отбор
2 sima
 
02.05.18
11:57
*УсловияОтбора =новый Структура("Номенклатура", НоменклатураСсылка);

конечно же
3 sima
 
02.05.18
12:00
(1) под ключом "ФиксированныеНастройки" вы имеете в виду работу с компоновщиком настроек после получения (но до открытия) отчета? Или есть какой-то более изящный способ работы с этими настройками?
4 palsergeich
 
02.05.18
12:05
Компановка = Новый НастройкиКомпоновкиДанных;
ОтборК = Компановка.Отбор;

ЭлементОтбора = ОтборК.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ЭлементОтбора.ПравоеЗначение = КакоеТоЗначение;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИмяПоляКомпановки");
        
ЭлементОтбора = ОтборК.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ЭлементОтбора.ПравоеЗначение = ДругоеКакоеТоЗначение;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИмяПоляКомпановки");
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный
        
        
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ФиксированныеНастройки",Компановка);
Вот пример рабочего кода
5 palsergeich
 
02.05.18
12:05
Там следующая строчка - открытие формы, только сейчас увидел, что она не влезла
6 palsergeich
 
02.05.18
12:06
А вот имя поля компановки данных может иметь и такой вид: "Номенклатура.Вид"
7 youalex
 
02.05.18
12:58
если отбор на поле через точку, то вложенная структура
т.е. СтруктураОтбора = Новый Структура("Номенклатура", Новый Структура("Вид", ТвойВид))

как-то так
8 sima
 
02.05.18
13:48
(7) ваше предложение превращается в компоновщике настроек в "Номенклатура Равно Структура", далее вылет с ошибкой сравнения несравниваемых типов. Но попытка - не пытка :)

(4) коллега, спасибо! Работает! Подскажите пожалуйста, а какие еще ключи можно использовать при подобном открытии отчета? Можно ли, например, использовать ключ "ПользовательскиеНастройки" и передавать туда новый ПользовательскиеНастройкиКомпоновкиДанных? Или ключ "Настройки"?
9 youalex
 
02.05.18
14:24
(8) жаль, с ДС вроде работало)
10 palsergeich
 
02.05.18
17:52
(8) Да есть в расширении отчета доступный ключ ПользовательскиеНастройки.
11 sima
 
02.05.18
21:31
(10) интересно, что на коленке созданные ПользовательскиеНастройкиКомпоновкиДанных, при передаче их в ключ "ПользовательскиеНастройки", применяться не хотят. Кажется, все устроено сложнее.
12 palsergeich
 
02.05.18
22:21
(11) Я давно поборол эту штуку, но не помню уже как, как показала практика для открытия формы с неснимаемым отбором - хватает фиксированных.