|   |   | 
| 
 | Фильтрация динамического списка в иерархии | ☑ | ||
|---|---|---|---|---|
| 0
    
        Новичок1С Учится 01.03.19✎ 14:51 | 
        Здравствуйте великие умы Мисты! Я начинающий программист 1С, у которого уже есть задачи и нет понимания в решении некоторых вопросов. Одним из таких является такой вопрос, вытекающий из задачи: Хочу фильтровать все динамические списки разных документов в Бух 3.0. Нашёл событие, вернее процедуру, связанную с открытием данного списка в общем модуле "ОбщегоНазначенияБПКлиент". Называется она ОткрытьОсновнуюФорму.
 Процедура ОткрытьОсновнуюФорму(ОжидаетсяДлительноеОткрытие, ПараметрыОткрытия, ПараметрыФормы = Неопределено) Экспорт Если ПараметрыФормы = Неопределено Тогда ПараметрыФормы = Новый Структура; КонецЕсли; // Отключаем подписку на событие ОбработкаПолученияФормы(), если она определена для данного объекта. ПараметрыФормы.Вставить("ОтключитьОжиданиеПриОткрытииФорм", Истина); Если ПараметрыОткрытия.ЗамерПроизводительности = Истина Тогда // Bремя ключевой операции будет задано позже. ПараметрыФормы.Вставить("УИДЗамера", ОценкаПроизводительностиКлиент.НачатьЗамерВремени(Истина)); ИначеЕсли ТипЗнч(ПараметрыОткрытия.ЗамерПроизводительности) = Тип("Строка") И Не ПустаяСтрока(ПараметрыОткрытия.ЗамерПроизводительности) Тогда // Начинаем замер определенной ключевой операции. ОценкаПроизводительностиКлиент.НачатьЗамерВремени(Истина, ПараметрыОткрытия.ЗамерПроизводительности); КонецЕсли; ВремяНачалаОткрытия = ТекущаяУниверсальнаяДатаВМиллисекундах(); Если ПараметрыОткрытия.ОбработчикОткрытияФормы <> Неопределено Тогда ВыполнитьОбработкуОповещения(ПараметрыОткрытия.ОбработчикОткрытияФормы, ПараметрыФормы); Иначе ОткрытьФорму(ПараметрыОткрытия.ИмяФормы, ПараметрыФормы, ПараметрыОткрытия.Владелец, ПараметрыОткрытия.Уникальность, ПараметрыОткрытия.Окно, ПараметрыОткрытия.НавигационнаяСсылка, ПараметрыОткрытия.ОписаниеОповещенияОЗакрытии, ПараметрыОткрытия.РежимОткрытияОкна); КонецЕсли; ЗамерОткрытия = Новый Структура; ЗамерОткрытия.Вставить("ВремяНачалаОткрытия", ВремяНачалаОткрытия); ЗамерОткрытия.Вставить("ОжидаетсяДлительноеОткрытие", ОжидаетсяДлительноеОткрытие); ЗамерОткрытия.Вставить("ИмяФормы", ПараметрыОткрытия.ИмяФормы); ИмяПараметра = "БухгалтерияПредприятия.ЗамерОткрытия"; ПараметрыПриложения.Вставить(ИмяПараметра, ЗамерОткрытия); ПодключитьОбработчикОжидания("Подключаемый_ДобавитьСтатистикуОткрытия", 0.1, Истина); КонецПроцедуры Так вот. Мне нужно выводить список только в соответствии с подразделением пользователя, который его формирует. Соль в том что подразделения имеют ещё и филиалы. В некоторых списках документов нужно только само подразделение, в других подразделение + филиалы. Как вычислить подразделение и получить в данной процедуре эту переменную у меня особого труда не составило. Далее я решил что одним из возможных решений будет реализовать открытие формы с параметрами. Погуглив немного я нашел два варианта: Вариант с "жестким значение параметра", который работает, но частично. Не отображаются филиалы, а они нужны... ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("ПодразделениеОрганизации", ПодразделениеПользователя); ПараметрыФормы = Новый Структура("Отбор", ПараметрыОтбора); Вариант с параметрами отбора ввиду структуры, который почему то не работает... ПараметрыОтбора1 = Новый Структура; ПараметрыОтбора1.Вставить("ЛевоеЗначение", Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации")); ПараметрыОтбора1.Вставить("ВидСравнения", ВидСравненияКомпоновкиДанных.ВИерархии); ПараметрыОтбора1.Вставить("ПравоеЗначение", ПодразделениеПользователя); ПараметрыОтбора1.Вставить("РежимОтображения", РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный); ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("ПодразделениеОрганизации",ПараметрыОтбора1); ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("ПараметрыОтбора", ПараметрыОтбора); Подскажите пожалуйста где моя ошибка и как правильно реализовать открытие формы с правильно заданной фильтрацией... | |||
| 1
    
        sqr4 01.03.19✎ 14:59 | ||||
| 2
    
        Новичок1С Учится 01.03.19✎ 14:59 | 
        Забыл сказать что задача поставлена сделать без использования РЛС...     | |||
| 3
    
        DrWatson 01.03.19✎ 15:05 | 
        (0)
 Расширение управляемой формы для динамического списка (Managed form extension for dynamic lists) Отбор (Filter) Описание: Тип: Структура. Используется для установки отбора в динамическом списке. Ключ структуры - имя поля основной таблицы. Значение элемента структуры содержит значение отбора. Если значение является массивом, фиксированным массивом или списком значений с не одним элементом, то отбор будет применяться с видом сравнения ВСписке. | |||
| 4
    
        sqr4 01.03.19✎ 15:06 | 
        (3) Именно (0) Использовать жесткий вариант, в параметр передавать, заранее полученный список подразделений.     | |||
| 5
    
        DrWatson 01.03.19✎ 15:07 | 
        Какой-то гугл у тебя неправильный, второй вариант не должен работать.     | |||
| 6
    
        Новичок1С Учится 01.03.19✎ 15:48 | 
        (4) Подразделений или филиалов? Если филиалов то их тоже нужно передавать структурой? В итоге получится структура "Филиалы" в структуре "ПараметрыОтбора" в структуре "ПараметрыФормы" ?     | |||
| 7
    
        Новичок1С Учится 01.03.19✎ 15:48 | 
        (5) Да нет правильный, он у меня и не работает. Видимо я не совсем правильно понят область применения данной конструкции     | |||
| 8
    
        Новичок1С Учится 04.03.19✎ 08:31 | 
        Всё таки не могу определить решение для данного вопроса, помогите кто нибудь...     | |||
| 9
    
        sqr4 04.03.19✎ 08:57 | 
        (6) всего и подразделений и филиалов     | |||
| 10
    
        Новичок1С Учится 04.03.19✎ 10:01 | 
        (9) Т.е. если я правильно понял, мне необходимо заранее формировать переменную с типом данных Структура, в которой будет содержаться подразделение и входящие в это подразделение филиалы. Затем добавить эту структуру в структуру "ПараметрыФормы" и уже с этим параметром открывать форму? Грубо говоря само существование структуры в структуре "ПараметрыФормы" будет эквивалентно указанию отбора с любым значением из этого списка?     | |||
| 11
    
        Новичок1С Учится 04.03.19✎ 13:51 | 
        (10) Так и сделал, только опечатался, не структура в структуре "ПараметрыФормы", а список. Всё работает, Спасибо!     | |||
| 12
    
        Cyberhawk 05.03.19✎ 16:46 | 
        Много букв. В трех словах в чем затык?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |