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