|
СКД: запретить пользователю менять программно установленный отбор | ☑ | ||
---|---|---|---|---|
0
Zakakvo
19.06.14
✎
10:32
|
Доброго днищща, уважаемые.
СКД отчет на обычных формах. На форме отчета расположено табличное поле с настройками, конкретно - с отборами. Пытаюсь ограничить доступность одного из полей отбора следующим способом: Для каждого ЭлементОтбора Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл Если ТипЗнч(ЭлементОтбора.ПравоеЗначение) = Тип("СправочникСсылка.Пользователи") Тогда ЭлементОтбора.ПравоеЗначение = ДополнительныеПараметры.Ответственный; ЭлементОтбора.Использование = Истина; ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; КонецЕсли; КонецЦикла; РежимОтображения устанавливается, но пользователю всё равно доступно редактирование поля. ЧЯДНТ? |
|||
1
zak555
19.06.14
✎
10:33
|
а в УФ ?
|
|||
2
Godofsin
19.06.14
✎
10:33
|
"Доброго днищща" - в мемориз =)
|
|||
3
zak555
19.06.14
✎
10:35
|
(2) от слова дно
|
|||
4
Godofsin
19.06.14
✎
10:36
|
(3) угу )
|
|||
5
Maxus43
19.06.14
✎
10:37
|
(0) в самом СКД параментр сделай недоступным, тогда только программно можно будет
|
|||
6
Defender aka LINN
19.06.14
✎
10:38
|
(0) Запомни, Zakakvo - когда ты хочешь сделать отбор - делай параметр. Если видишь задание на отчет и понимаешь, что нужен параметр - делай отбор не медля. Хотя бы так ты будешь делать все правильно.
|
|||
7
Zakakvo
19.06.14
✎
10:39
|
(2) это УСО
|
|||
8
Zakakvo
19.06.14
✎
10:42
|
(5) совет дельный, но это не параметр, увы.
|
|||
9
Godofsin
19.06.14
✎
10:44
|
(8) Тебе и намекают сделать его параметром
|
|||
10
Zakakvo
19.06.14
✎
10:45
|
(6) я хочу чашку чаю с жасмином и спать 20 часов. Я понимаю разницу между параметрами и отбором, просто в данной ситуации нужен отбор - ну вот нужен.
Я, собственно, переделаю и форму и схему и отборы заменю параметрами, если уважаемый мне авторитетно объяснит, что запретить изменение отбора тупо нельзя. |
|||
11
Zakakvo
19.06.14
✎
10:46
|
(9) намёк-то я понял...
|
|||
12
Godofsin
19.06.14
✎
10:49
|
(10) Ну тогда можешь поиграть с ТП.
|
|||
13
Zakakvo
19.06.14
✎
10:52
|
(12) отстал от жизни, попал под лошадь ;)
ТП - это что за зверь? (не считая известного луркоморского определения) |
|||
14
Kamas
19.06.14
✎
10:53
|
(10) может не включать в пользовательские настройки этот отбор
|
|||
15
Godofsin
19.06.14
✎
10:53
|
(13) Табличное Поле жеж )))
|
|||
16
Zakakvo
19.06.14
✎
10:56
|
(14) исключить из пользовательских настроек? Не уверен, что это возможно, но попробую, спасибо :)
|
|||
17
Godofsin
19.06.14
✎
10:58
|
И все же не пойму. Почему элемент отбора "Ответственный" нильзя перенести в параметры?
|
|||
18
Zakakvo
19.06.14
✎
10:58
|
(15) страшное дело. Но мысль, да :) Оставлю на сладкое, если всё прочее не поможет.
|
|||
19
Kalambur
19.06.14
✎
11:03
|
заПихать в Фиксированные настройки
|
|||
20
Zakakvo
19.06.14
✎
11:04
|
(17) мешает обычная фигня - удобство использования табличного поля на форме. Базовые параметры - которые параметры - границы, разделители учета и прочее лежит своими контролями на форме. Всё прочее, зависящее лишь от желания левой пятки постановщика задачи и меняющееся в зависимости от политической ситуации дважды на дню удобнее выполнять отборами, которые сами наполнят ТП (ггг) и не будут портить мне жизнь.
|
|||
21
Kalambur
19.06.14
✎
11:05
|
(20) ты такой загадочный, как краб
|
|||
22
Enders
19.06.14
✎
11:10
|
Используй ФиксированныеНастройки вместо настроек.
Есть минус: на форме не видно какой отбор стоит, и они могут выбрать любой другой, но, в любом случае, отчет сформируется по установленному тобой. ЭлементОтбора = ЭтотОбъект.КомпоновщикНастроек.ФиксированныеНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Местонахождение"); ЭлементОтбора.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение =Склад.Подразделение; ЭлементОтбора.Использование=Истина; ЭлементОтбора.РежимОтображения=РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; |
|||
23
Zakakvo
19.06.14
✎
11:18
|
(22) (19) Да! Я всё понял, в первом приближении сработало, спасибо!
|
|||
24
Zakakvo
19.06.14
✎
15:15
|
На всякий случай, чтобы закруглить тему, отрывки кода из ПриКомпоновкеРезультата
Если ЗначениеЗаполнено(ДополнительныеПараметры) Тогда Если ДополнительныеПараметры.РежимЗапуска <> Перечисления.Важность.Высокая Тогда ЭлементОтбора = ЭтотОбъект.КомпоновщикНастроек.ФиксированныеНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("МенеджерКлиента"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = ДополнительныеПараметры.Ответственный; ЭлементОтбора.Использование = Истина; ЭлементОтбора.Применение = ТипПримененияОтбораКомпоновкиДанных.Элементы; КонецЕсли; КонецЕсли; и если вы там же создаёте новый компоновщик макета, то не забудьте, фиксированные настройки сами в него не загрузятся. ВнешниеНаборыДанных = Новый Структура; СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = КомпоновщикНастроек.ПолучитьНастройки(); ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); |
|||
25
Kalambur
19.06.14
✎
15:18
|
(24) бред в голове и сообщенгие ниочем
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |