|
8.3 СКД. Как получить значение отбора в модуле обекта? | ☑ | ||
---|---|---|---|---|
0
palpetrovich
02.03.20
✎
11:59
|
Значение отбора (ДоговорКлиента) нужно для передачи в общий модуль, там формируется ТЗ, которая скармливается СКД
В параметрах ДоговорКлиента - нет, только в отборе вот так получить могу: КоллекцияЭлементовПользовательскихНастроек = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; ЭлементПользовательскойНастроки = КоллекцияЭлементовПользовательскихНастроек.Получить(0); ДоговорКлиента = ЭлементПользовательскойНастроки.ПравоеЗначение; Есть-ли возможность получения не по индексу? Типа как для параметра: ПараметрДатаОтчета = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаОтчета")); Если ПараметрДатаОтчета <> Неопределено Тогда ДатаОтчета = КоллекцияЭлементовПользовательскихНастроек.Найти(ПараметрДатаОтчета.ИдентификаторПользовательскойНастройки).Значение.Дата; КонецЕсли; |
|||
1
palpetrovich
02.03.20
✎
12:03
|
+ (0) ходят слухои, что "по индексу" искать дело стремное...
|
|||
2
D_E_S_131
02.03.20
✎
12:19
|
"Значение отбора (ДоговорКлиента)" - это что за отбор такой в модуле объекта? Или отбор все же на форме у какого-то динамического списка?
|
|||
3
acht
02.03.20
✎
12:28
|
(0) Там, ЕМНИП, идентификатор пользовательской настройки есть - строка по которой потом .Найти можно
|
|||
4
palpetrovich
02.03.20
✎
12:32
|
(2) "модуль объекта" - модуль объекта отчета. Отбор - в настройках СКД на закладке Отбор
(3) для параметра да, работает, а вот для "не параметра" - не могу найти, потому и спрашиваю |
|||
5
D_E_S_131
02.03.20
✎
12:33
|
(4) А почему, если все это уже есть в СКД, нужно уходить в отдельную процедуру формирования ТЗ? Извращение какое-то...
|
|||
6
catena
02.03.20
✎
12:37
|
(5)Ну, например, если ТЗ формируется из екселя, например
|
|||
7
080808Ник
02.03.20
✎
12:39
|
(0) "Есть-ли возможность получения не по индексу?" обход пользовательских настроек и сравнение
|
|||
8
toypaul
гуру
02.03.20
✎
12:40
|
у отбора тоже есть ИдентификаторПользовательскойНастройки
но проще будет обойти польз. настройки в них перебором найти нужный элемент |
|||
9
pechkin
02.03.20
✎
12:41
|
сначала нужно
КомпоновщикНастроек.Получитьнастройки() - и там уже будут все пользовательские настройки применены |
|||
10
palpetrovich
02.03.20
✎
14:17
|
Спасибо всем, получилось через цикл
ТребуемыеОтборы = Новый Массив; ТребуемыеОтборы.Добавить(Новый ПолеКомпоновкиДанных("ДоговорКлиента")); ОтборДоговорКлиента = Неопределено; Для Каждого Отбор Из КомпоновщикНастроек.ПолучитьНастройки().Отбор.Элементы Цикл Если ТребуемыеОтборы.Найти(Отбор.ЛевоеЗначение) <> Неопределено Тогда ОтборДоговорКлиента = Отбор; Прервать; КонецЕсли; КонецЦикла; Если ОтборДоговорКлиента = Неопределено Тогда ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не выбран договор!"); Возврат; КонецЕсли; ДоговорКлиента = ОтборДоговорКлиента.ПравоеЗначение; |
|||
11
080808Ник
02.03.20
✎
14:24
|
(10) нужно получать пользовательские настройки, иначе простые настройки выдаст значение по умолчанию. вроде как
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |