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