Имя: Пароль:
1C
 
Документооборот, создание древовидной формы открытия элементов
,
0 Tolstiy Beremenniy
 
31.10.18
12:01
В конфигурации Документооборот 8 КОРП, редакция 2.1 (2.1.11.5).
Есть справочник Структура предприятия. Там 2 панели на форме списка
слева подразделения, а справа пользователи.
При установке курсора на подразделениях, слева, меняется список
пользователей к ним относящийся в правой панели.

Задача в разработке подобного списка для одного вида документа.
В левой панели свернутая структура подразделений предприятия,
а в левой документы у которых один из реквизитов, подразделение.

Как начать и сделать подобную форму открытия документов?
1 Serg_1960
 
31.10.18
12:12
Скопировать форму; вместо списка пользователей указать список документов. Подсказка: на формы списка документов можно установить фильтр.
2 Tolstiy Beremenniy
 
31.10.18
12:57
(1) А я сам создавал. Можно прям копировать?
Сейчас пробую настраивать обработчики событий.
3 Tolstiy Beremenniy
 
01.11.18
06:05
Сделал примерно как советовали в  (1).
Подскажите пожалуйста как в этой форме устанавливается непосредственно отбор на правую таблицу. Где ПользователиСпискок. У меня там список документов, не
пойму как установить на неё отбор.

Вообще сам отбор срабатывает в этих процедурах. Но как происходит фильтрация правого списка?


&НаКлиенте
Процедура УстановитьОтборОформленияПодразделенияТекущегоПользователя()
    
    Если Элементы.ПользователиСписок.ТекущиеДанные = Неопределено
        Или ТипЗнч(Элементы.ПользователиСписок.ТекущаяСтрока) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
        Подразделение = Неопределено;
    Иначе
        Подразделение = Элементы.ПользователиСписок.ТекущиеДанные.Подразделение;
    КонецЕсли;
    
    УстановитьОтборОформленияПодразделенияТекущегоПользователяСервер(Подразделение);
    
КонецПроцедуры

&НаСервере
Процедура УстановитьОтборОформленияПодразделенияТекущегоПользователяСервер(Подразделение)
    
    Для Каждого ЭлементУсловногоОформления Из УсловноеОформление.Элементы Цикл
        Если ЭлементУсловногоОформления.Представление = "ПодразделениеТекущегоПользователя"
            Или ЭлементУсловногоОформления.Представление = "УдаленноеПодразделениеТекущегоПользователя" Тогда
            ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы[0];
            ЭлементОтбораДанных.ПравоеЗначение = Подразделение;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры
4 Mankubus
 
01.11.18
06:11
(3) ищи событие ПриАктивизацииСтроки
5 Tolstiy Beremenniy
 
01.11.18
06:14
(4) Да есть Она!!!!


&НаКлиенте
Процедура СтруктураПредприятияПриАктивизацииСтроки(Элемент)
    
    ПодключитьОбработчикОжидания("СтруктураПредприятияПослеАктивизацииСтроки", 0.1, Истина);
    
КонецПроцедуры



Но как непосредственно сейчас мне фильтровать свою правю таблицу?
6 Tolstiy Beremenniy
 
01.11.18
06:16
Может это делает вот эта процедура?
Что именно в ней подправить можно?


&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьСодержимоеФормыПриИзмененииПодразделения(Форма)
    
    Элементы = Форма.Элементы;
    ПустоеПодразделение = ПредопределенноеЗначение(
        "Справочник.СтруктураПредприятия.ПустаяСсылка");
    
    Элементы.ПользователиСписокПодразделение.Видимость =
        Форма.ВыбиратьИерархически
        Или Форма.АктивноеПодразделение = ПустоеПодразделение;
    
    Если Форма.АктивноеПодразделение = ПустоеПодразделение Тогда
        
        ОбновитьЗначениеПараметраКомпоновкиДанных(Форма.ПользователиСписок,
            "ВсеПользователи", Истина);
        
        ОбновитьЗначениеПараметраКомпоновкиДанных(Форма.ПользователиСписок,
            "ВыбиратьИерархически", Ложь);
        
        ОбновитьЗначениеПараметраКомпоновкиДанных(Форма.ПользователиСписок,
            "Подразделение", ПустоеПодразделение);
        
    Иначе
            
        ОбновитьЗначениеПараметраКомпоновкиДанных(Форма.ПользователиСписок,
            "ВсеПользователи", Ложь);
        
        ОбновитьЗначениеПараметраКомпоновкиДанных(Форма.ПользователиСписок,
            "ВыбиратьИерархически", Форма.ВыбиратьИерархически);
        
        ОбновитьЗначениеПараметраКомпоновкиДанных(Форма.ПользователиСписок,
            "Подразделение", Форма.АктивноеПодразделение);
            
    КонецЕсли;
    
КонецПроцедуры
7 Tolstiy Beremenniy
 
01.11.18
06:20
Видимо менять в процедуре (6)

Форма.ПользователиСписок -> Форма.СписокЗаявокУИиС

Форма.ПользователиСписок - это было в оригинале
Форма.СписокЗаявокУИиС   - это мой список документов
8 Tolstiy Beremenniy
 
01.11.18
06:35
Разница в том что у ДинамическогоСписка СписокПользователей
есть элементы в параметрах.

А у моего динамического списка, списка документов параметров нет. Подскажите пожалуйста как их добавить?
9 Tolstiy Beremenniy
 
01.11.18
06:43
(8+) Это элементы параметров компоновки данных.
У динамического списка. Как их задать моему списку документов?
10 Tolstiy Beremenniy
 
01.11.18
06:55
(9+) Понял у СправочникСписок они задаются в запросе.
А если у моего у моего динамического списка основная
таблица ФормаСписка документа. Как ей задать параметры?