Программно задать отборы в СКД
По теме из базы знаний
- Программная работа с настройками СКД
- Работа с СКД в продукте "Infostart Toolkit"
- Расшифровка СКД. Фильтр отчета по диапазону чисел. Переопределение обработки расшифровки. Не модальный режим
- Программное открытие отчета СКД с параметрами и отбором
- Варианты применения СКД вне отчетов в отраслевых конфигурациях
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(6)
Согласен, поменять могут, но вроде условие топикстартера было:
Подскажите, как тогда в приведенном Вами примере, задать отбор по конкретной организации из справочника (не прибегая к выбору пользователем и предопределенному значению)?
НайтиПоКоду или НайтиПоНаименованию - это не кошерно. И код и наименование пользователи могут поменять.
Согласен, поменять могут, но вроде условие топикстартера было:
и пользователь не задавал его сам.
Подскажите, как тогда в приведенном Вами примере, задать отбор по конкретной организации из справочника (не прибегая к выбору пользователем и предопределенному значению)?
Примерно так:
НастройкиКомпоновкиДанных = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
ГруппаОтбора = НастройкиКомпоновкиДанных.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
Элемент1 = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Элемент1.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
Элемент1.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Наименование");
Элемент1.ПравоеЗначение = ЗначениеОтбора;
ПоказатьПроцедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Если ЗначениеЗаполнено(Организация) Тогда
УстановитьОтборСКД("Организация", ВидСравненияКомпоновкиДанных.Равно, Организация);
Иначе
УстановитьОтборСКД("Организация", ВидСравненияКомпоновкиДанных.Равно, Неопределено);
КонецЕсли;
КонецПроцедуры
Процедура УстановитьОтборСКД(ИмяПоля, ВидОтбора, Значение)
ПолеОтбора = Новый ПолеКомпоновкиДанных(ИмяПоля);
ОтборыКомпановщика = КомпоновщикНастроек.Настройки.Отбор.Элементы;
Для Каждого Стр Из ОтборыКомпановщика Цикл
Если Стр.ЛевоеЗначение = ПолеОтбора Тогда
Отбор = Стр;
КонецЕсли;
КонецЦикла;
Если Отбор = Неопределено Тогда
Отбор = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ЛевоеЗначение = ПолеОтбора;
КонецЕсли;
Если Значение <> Неопределено Тогда
Отбор.ВидСравнения = ВидОтбора;
Отбор.Использование = Истина;
Отбор.ПравоеЗначение = Значение;
Иначе
Отбор.Использование = Ложь;
КонецЕсли;
КонецПроцедуры
//Организация - реквизит отчета
Показать
Вакансии
1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день