|
программно установить отбор в отчете СКД | ☑ | ||
---|---|---|---|---|
0
Новый1сник2
16.05.23
✎
11:54
|
Добрый день!
подскажите как программно установить отбор, (параметры передаются, а отбор почему то нет) &НаКлиенте Процедура мПрограммноЗаказаноПоставщикуОтчет(Номенклатура) Перем ФормаОтчёта, КомпоновщикНастроек, Период, ПараметрыФормы; Ном = мСЗПоНоменклатуреПолучитьНаСервере(Номенклатура); ФормаОтчёта = ПолучитьФорму("Отчет.мОтчетЗаказыПоставщику.Форма"); КомпоновщикНастроек = ФормаОтчёта.Отчет.КомпоновщикНастроек; мУстановитьПользовательскийПараметрСКД(КомпоновщикНастроек, "ДатаОстатков", КонецДня(ТекущаяДата())); мУстановитьПользовательскийПараметрСКД(КомпоновщикНастроек, "Организация", Объект.Организация); мУстановитьПользовательскийОтборСКД(КомпоновщикНастроек, "Номенклатура", Ном, ВидСравнения = Неопределено); ПараметрыФормы = Новый Структура(); ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина); ПараметрыФормы.Вставить("КлючВарианта", "Основной"); ПараметрыФормы.Вставить("ПользовательскиеНастройки", КомпоновщикНастроек.ПользовательскиеНастройки); ОткрытьФорму("Отчет.мОтчетЗаказыПоставщику.Форма", ПараметрыФормы, ЭтаФорма); КонецПроцедуры // КомандаОткрытьОтчётСОтбором |
|||
1
Новый1сник2
16.05.23
✎
11:54
|
&НаКлиенте
Процедура мУстановитьПользовательскийОтборСКД(КомпоновщикНастроек, ИмяОтбора, Значение, ВидСравнения = Неопределено) Перем ПолеКД, Элем, ЭлементОтбора, Настройки, ПользовательскиеНастройки, ПользовательскийОтбор; Настройки = КомпоновщикНастроек.Настройки; ПолеКД = Новый ПолеКомпоновкиДанных(ИмяОтбора); Для Каждого Элем Из Настройки.Отбор.Элементы Цикл Если Элем.ЛевоеЗначение = ПолеКД Тогда ЭлементОтбора = Элем; Прервать; КонецЕсли; КонецЦикла; Если ЭлементОтбора = Неопределено Тогда Возврат; КонецЕсли; Если ЗначениеЗаполнено(ЭлементОтбора.ИдентификаторПользовательскойНастройки) Тогда ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки; ПользовательскийОтбор = ПользовательскиеНастройки.Элементы.Найти(ЭлементОтбора.ИдентификаторПользовательскойНастройки); ПользовательскийОтбор.Использование = (Значение <> Неопределено); ПользовательскийОтбор.ВидСравнения = ?(ВидСравнения <> Неопределено, ВидСравнения, ВидСравненияКомпоновкиДанных.Равно); ПользовательскийОтбор.ПравоеЗначение = Значение; КонецЕсли; КонецПроцедуры // УстановитьПользовательскийОтборСКД |
|||
2
Новый1сник2
16.05.23
✎
11:55
|
в отладчике
ЗначениеЗаполнено(ЭлементОтбора.ИдентификаторПользовательскойНастройки) почему то Ложь |
|||
3
Новый1сник2
16.05.23
✎
12:15
|
пробовал так, тоже не получается
НовыйЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ПолеОтбора = Новый ПолеКомпоновкиДанных("Номенклатура"); НовыйЭлементОтбора.ЛевоеЗначение = ПолеОтбора; НовыйЭлементОтбора.Использование = Истина; НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; НовыйЭлементОтбора.ПравоеЗначение = Ном; |
|||
4
vicof
16.05.23
✎
12:19
|
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
|
|||
5
Новый1сник2
16.05.23
✎
12:20
|
(4) а где это прописать?
|
|||
6
vicof
16.05.23
✎
12:21
|
Вместо этого Настройки = КомпоновщикНастроек.Настройки;
|
|||
7
Новый1сник2
16.05.23
✎
12:25
|
(6) пишет
по причине: Метод контекста недоступен |
|||
8
toypaul
гуру
16.05.23
✎
12:25
|
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора
а последнем параметре заполнить (чем-нибудь) ИдентификаторПользовательскойНастройки |
|||
9
Новый1сник2
16.05.23
✎
12:30
|
(8) где заполнить ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора ?
можно пример |
|||
10
toypaul
гуру
16.05.23
✎
12:35
|
(9) поисково-мозговую деятельность прошу произвести самостоятельно. так лучше усваивается
|
|||
11
vicof
16.05.23
✎
12:44
|
(6) Потому что на сервере надо делать
|
|||
12
Новый1сник2
16.05.23
✎
12:47
|
(11) на сервере тоже не работает отбор
|
|||
13
Новый1сник2
16.05.23
✎
14:47
|
такой код тоже не работает
&НаСервереБезКонтекста Процедура УстановитьЭлементПользовательскогоОтбораСКД(КомпоновщикНастроек, ВидСравнения, ИмяПоля, Значение) ПользовательскийОтбор = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти( КомпоновщикНастроек.Настройки.Отбор.ИдентификаторПользовательскойНастройки); ЭлементОтбораПользовательский = ПользовательскийОтбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораПользовательский.ИдентификаторПользовательскойНастройки = Новый УникальныйИдентификатор(); ЭлементОтбораПользовательский.ВидСравнения = ВидСравнения; ЭлементОтбораПользовательский.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля); ЭлементОтбораПользовательский.ПравоеЗначение = Значение; ЭлементОтбораПользовательский.Использование = Истина; КонецПроцедуры |
|||
14
Новый1сник2
16.05.23
✎
14:48
|
Ошибка
{Документ.СчетНаОплатуПокупателю.Форма.ФормаДокумента.Форма(6000)}: Значение не является значением объектного типа (Элементы) ЭлементОтбораПользовательский = ПользовательскийОтбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); |
|||
15
Garykom
гуру
16.05.23
✎
14:51
|
||||
16
areaho0ray
16.05.23
✎
15:01
|
(13) Посмотри, что у тебя возвращается в ПользовательскийОтбор - скорее всего не отбор. Проверяй, что там за идентификатор у тебя.
|
|||
17
Новый1сник2
16.05.23
✎
15:07
|
(16) по разному уже попробовал, отбор ни как не устанавливается
|
|||
18
areaho0ray
16.05.23
✎
15:23
|
(17) Посмотри в отладчике, что там у тебя вообще есть.
|
|||
19
Новый1сник2
16.05.23
✎
15:29
|
(18) в отладчике есть доступные поля отбора, и параметры тоже есть,
|
|||
20
Новый1сник2
16.05.23
✎
15:30
|
Если ЗначениеЗаполнено(ЭлементОтбора.ИдентификаторПользовательскойНастройки) Тогда
ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки; ПользовательскийОтбор = ПользовательскиеНастройки.Элементы.Найти(ЭлементОтбора.ИдентификаторПользовательскойНастройки); ПользовательскийОтбор.Использование = Истина; ПользовательскийОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ПользовательскийОтбор.ПравоеЗначение = Значение; КонецЕсли; |
|||
21
Новый1сник2
16.05.23
✎
15:30
|
ЭлементОтбора.ИдентификаторПользовательскойНастройки ="" в отладчике
|
|||
22
Новый1сник2
17.05.23
✎
10:08
|
благодарю за подсказки, разобрался сам
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |