|
СКД. В коде задать значения параметра отбора. | ☑ | ||
---|---|---|---|---|
0
Fedor
29.11.11
✎
20:04
|
В отчете в отборе есть 1 параметр. Как при открытии этого отчета в коде установить конкретное значение этого параметра?
|
|||
1
DrShad
29.11.11
✎
20:31
|
а посмотреть в типовом отчете?
|
|||
2
Fedor
29.11.11
✎
20:42
|
Перепробовал много вариантов. Делал даже по примеру типового отчета. Значения присваиваются. Но в настройках запоминается последнее выбранное вручную значение.
|
|||
3
philosofka
29.11.11
✎
23:40
|
Процедура ПриОткрытии()
Настройки = КомпоновщикНастроек.Настройки; КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ПравоеЗначение = <нужное значение>; КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; КонецПроцедуры |
|||
4
Fedor
30.11.11
✎
01:17
|
(3) Отчет делаю на 1С 8.2, и там так не работает. Всё-равно при открытии устанавливает последний вариант, а не <нужное значение>. Но при закрытии пишет, что вариант отчета был изменен и спрашивает, сохранить ли вариант.
|
|||
5
MikleV
30.11.11
✎
01:28
|
подумать..что можно установить не только в ПриОткрытии()
|
|||
6
Fedor
30.11.11
✎
01:37
|
(5) Та не в том дело. Это понятно. Я и писал не только в ПриОткрытии(). И значение устанавливается (для проверки вывел его на форму). Но в отборе значение не меняется, хотя на вариант это влияет.
|
|||
7
MikleV
30.11.11
✎
01:39
|
в отборе не меняется - где?
т.е. как понял, что не меняется |
|||
8
Fedor
30.11.11
✎
01:46
|
(7) На форме над полем результата есть поле "КомпоновщикНастроекПользовательскиеНастройки", в котором отображаются параметры с быстрым отбором. Там у этого параметра задано последнее заданное значение, и на устанавливаемое оно не меняется. И если нажать на кнопку "Настройка..." (редактировать текущие настройки отчета), то там то же значение.
|
|||
9
Fedor
30.11.11
✎
02:05
|
(7) Ну и, естественно, результат отчета соответствующий.
|
|||
10
kipish
30.11.11
✎
08:29
|
перем ОтборПодр;
Процедура ОтборПодрПриИзменении(Элемент) Если ОтборПодр <> Неопределено Тогда ОтборПодр.ПравоеЗначение = ЭлементыФормы.ОтборПодр.Значение; Иначе ОтборПодр = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборПодр.ЛевоеЗначение = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Подразделение")).Поле; ОтборПодр.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборПодр.ПравоеЗначение = ЭлементыФормы.ОтборПодр.Значение; ОтборПодр.Использование = Истина; КонецЕсли; КонецПроцедуры ОтборПодр = Неопределено; |
|||
11
Fedor
30.11.11
✎
12:19
|
(10) Это нужно делать в форме отчета? Переменная ОтборПодр - это реквизит формы?
|
|||
12
Fedor
30.11.11
✎
13:29
|
Кто-то знает как в 8.2 в СКД устанавливать в коде значение параметра отбора?
|
|||
13
Kreont
30.11.11
✎
13:34
|
КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ПравоеЗначение = ______;
КомпоновщикНастроек.Настройки.Отбор.Элементы[0].Использование = Истина; |
|||
14
Sulimov
30.11.11
✎
13:37
|
а что у тебя? обычное приложение или управляемое?
|
|||
15
Fedor
30.11.11
✎
13:39
|
(14) Управляемое приложение.
|
|||
16
Sulimov
30.11.11
✎
13:48
|
А где ты хочешь отбор установить в общих настройках или пользовательских (которые на форме)?
|
|||
17
Fedor
30.11.11
✎
14:06
|
в пользовательских, которые на форме.
|
|||
18
Sulimov
30.11.11
✎
14:12
|
Тогда нужно как-то так:
ЭлементыОтбора = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; мОтбор = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[4]; мОтбор.Использование = Истина; Надо в отладчике посмотреть, какой индекс и как до него достучаться. Я только проверку делал, установлен или нет... |
|||
19
Fedor
30.11.11
✎
14:13
|
Я делал так:
КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ПравоеЗначение = <нужное значение> Значение устанавливается, но на параметр отбора это не влияет. |
|||
20
Fedor
30.11.11
✎
14:16
|
(18) А это где должно быть написано? Я делал ПриСозданииНаСервере и ПриОткрытии, там пишу Отчет.КомпоновщикНастроек.Настройки.Отбор... Но как нужно не работает.
|
|||
21
Sulimov
30.11.11
✎
14:17
|
Мне нужно было ПриКомпоновкеРезультата()
|
|||
22
Sulimov
30.11.11
✎
14:18
|
(19) Так вот это у тебя в общих настройках...
|
|||
23
Sulimov
30.11.11
✎
14:19
|
ты попробуй напиши так ПриОткрытии()
|
|||
24
Fedor
30.11.11
✎
14:32
|
Написал так: Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.
Но там нет нужного параметра. Похоже я не правильно объяснил ситуацию. В запросе пишу: ВЫБРАТЬ Документ1.Ссылка.Реквизит1 КАК НужноеПоле ... Потом в Настройках отчета на вкладке Отбор добавляю отбор по полю НужноеПоле. И при открытии отчета хочу установить в качестве значения этого отбора нужное значение. |
|||
25
Sulimov
30.11.11
✎
14:53
|
Ну так выбрал запросом и в пользовательские пихай... Не получается что-ли?
|
|||
26
Fedor
30.11.11
✎
15:06
|
Получается. Но, я хочу, чтоб при открытии отчета одно конкретное значение в отборе устанавливалось автоматически. А дальше сделал, чтоб для разных прав было доступно или не доступно изменение этого параметра отбора.
|
|||
27
Sulimov
30.11.11
✎
15:29
|
Ну так а просто настройки сохранить..?
|
|||
28
Fedor
30.11.11
✎
15:32
|
Не пойдет.
|
|||
29
Fedor
30.11.11
✎
15:53
|
Другие варианты есть? Нужно именно в коде установить необходимое значение отбора.
|
|||
30
Sulimov
30.11.11
✎
15:54
|
Так а как ты пишешь, еще раз? И куда, еще раз, хочешь установить?
|
|||
31
Fedor
30.11.11
✎
16:09
|
В запросе пишу:
ВЫБРАТЬ Документ1.Реквизит1 КАК Реквизит1, Документ1.Реквизит2 КАК Реквизит2, Документ1.Ссылка ИЗ Документ.Документ1 КАК Документ1 ГДЕ Документ1.Проведен И (НЕ Документ1.ПометкаУдаления) В отбор добавляю поле Реквизит1. У отчета, кроме СКД, создаю форму отчета и форму настроек. При открытии отчета в поле КомпоновщикНастроекПользовательскиеНастройки находится параметр Реквизит1, который я хочу автоматически заполнять конкретным значением (он не во всех случаях будет доступен для изменения вручную. |
|||
32
Fedor
30.11.11
✎
16:45
|
Делал так, но на значение отбора это не повлияло.
ОтборПодр = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0]; ОтборПодр.ЛевоеЗначение = Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Реквизит1")).Поле; ОтборПодр.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборПодр.ПравоеЗначение = "123"; //ЭлементыФормы.ОтборПодр.Значение; ОтборПодр.Использование = Истина; |
|||
33
kipish
01.12.11
✎
10:01
|
(11) Переменная ОтборПодр - это реквизит формы?
ЭлементыФормы.ОтборПодр.Значение; // здесь да, эл формы всё остальное переменная так обозвана просто. Да в модуле формы! Скачай книгу хрусталёвой и почитай там есть примеры. Процедура ПриОткрытии() ОтборОрг = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборОрг.ЛевоеЗначение = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Организация")).Поле; ОтборОрг.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборОрг.ПравоеЗначение = Справочники.Организации.НайтиПоКоду("000000001"); ОтборОрг.Использование = Истина; //-----------------------------------------------------------------------// КонецПроцедуры может это тебе поможет |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |