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

1С:Предприятие :: 1С:Предприятие 8 общая

8.3 Открыть отчет с отбором через точку

8.3 Открыть отчет с отбором через точку
Я
   sima
 
02.05.18 - 11:37
Понятно:

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

Не понятно:

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

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

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

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

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

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

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