Подскажите как получить установленное значение отбора в СКД
не работает, при установленном значении Организации возвращает Неопределено
СписокЭлементов = КомпоновщикНастроек.Настройки.Отбор.Элементы;
Для каждого Элемент из СписокЭлементов Цикл
Если Элемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация") Тогда
ТекОрганизация = Элемент.ПравоеЗначение;
КонецЕсли;
КонецЦикла;
Показатьне работает, при установленном значении Организации возвращает Неопределено
По теме из базы знаний
- Расшифровка СКД. Фильтр отчета по диапазону чисел. Переопределение обработки расшифровки. Не модальный режим
- Варианты применения СКД вне отчетов в отраслевых конфигурациях
- Получение контактной информации из отбора
- Отчет на СКД с использованием форм из БСП. Варианты передачи списка значений в параметр СКД
- Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
при пользовательских настройках значение отбора по организации заполнено, но как правильно в этом случае определить нужный вид отбора, "ПредставлениеПользовательскойНастройки" у всех элеменетов пустое, хотя в СКД Представление заполнено
Отрывок из моего отчета, устанавливал параметры программно:
Процедура ОткрытьОтчетПеремещенияНоменклатуры(спНом, спСклад) Экспорт
ФормаОтчета = ПолучитьФорму("Отчет.ПеремещенияНоменклатуры.Форма");
КомпоновщикНастроек = ФормаОтчета.Отчет.КомпоновщикНастроек;
Настройки = КомпоновщикНастроек.Настройки;
// для запроса
ЭлементНастройкиНоменклатура = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Номенклатура"));
ЭлементНастройкиНоменклатура.Значение = спНом;
// для СКД
ПользовательскийПараметрНоменклатура = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[1];
ПользовательскийПараметрНоменклатура.Значение = спНом;
// для СКД
ПользовательскийПараметрСклад = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[2];
ПользовательскийПараметрСклад.ПравоеЗначение = спСклад;
ПользовательскийПараметрСклад.Использование = спСклад.Количество()>0;
ПользовательскийПараметрСклад.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ФормаОтчета.Открыть();
ФормаОтчета.СкомпоноватьРезультат();
ФормаОтчета.ВариантМодифицирован=Ложь;
КонецПроцедуры
Показать
У меня работает вот такой код:
Для каждого ЭлементОтбора Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация") Тогда
Идентификатор = ЭлементОтбора.ИдентификаторПользовательскойНастройки;
Организация = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(Идентификатор).ПравоеЗначение;
КонецЕсли;
КонецЦикла;
(6)
Спасибо! Работает!
Для каждого ЭлементОтбора Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация") Тогда
Идентификатор = ЭлементОтбора.ИдентификаторПользовательскойНастройки;
Организация = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(Идентификатор).ПравоеЗначение;
КонецЕсли;
КонецЦикла;
Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация") Тогда
Идентификатор = ЭлементОтбора.ИдентификаторПользовательскойНастройки;
Организация = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(Идентификатор).ПравоеЗначение;
КонецЕсли;
КонецЦикла;
Спасибо! Работает!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот