![]() |
СКД заполнить отбор программно Здравствуйте! Нужна помощь зала. Задача: при открытии отчета на СКД автоматически подставлять в пользовательские настройки отбор «Организация» = ТекущаяОрганизация. Что-то типа такого Орг=Отчет.КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Найти("Организация"); Орг.Значение=ТекущаяОрганизация; Орг.Использование=Истина; Есть знающие люди как это сделать? |
[url]http://1cskd.ru/2010/06/faq_otbor_programmno/[/url] |
1-angro >Перебором то работает. Орг=Отчет.КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Организация").Поле; Для Каждого ЭлементНастройки из Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл Настройка = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ЭлементНастройки.ИдентификаторПользовательскойНастройки); Если ТипЗнч(ЭлементНастройки) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда Если ЭлементНастройки.ЛевоеЗначение=Орг тогда Настройка.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; Настройка.Использование = Истина; Настройка.ПравоеЗначение = ПараметрыСеанса.ТекущаяОрганизация; Но хотелось бы проще. Найти поле отбора "Организация" и вставить туда значение отбора. КАК это сделать? |
(2) [em]хотелось бы проще[/em] что будешь делать, если пользователь в пользовательских настройках набьёт группу сложных условий? Типа [{Организация = Орг1 И Контрагент = Контр1** ИЛИ {Организация = Орг2 И Контрагент = Контр2**] |
([Организация = Орг1 И Контрагент = Контр1] ИЛИ [Организация = Орг2 И Контрагент = Контр2]) |
3-roma n >а что будет? ТекущаяОрганизация должна подставиться в оба поля "Организация". |
(5) Крайне спорная логика. Однако, право на жизнь имеющая. Вопрос в том, как такую логику организовать "попроще", без анализа всех элементов настройки? Вынести функциональность поиска в платформу? Выйди на 1С с предложением. Только помни про другие задачи: тебе при поиске достаточно сравнить элемент настройки по типу и левому значению, но в общем случае задачи возникают очень разные. |
6-roma n >Спасибо за ответ. Сложно как-то все получается у меня с этими скд. По большей части методом научного тыка. Ну это так.. поплакаться ). |
Текущее время: 05:54. Часовой пояс GMT +3. |