Имя: Пароль:
1C
1С v8
Открыть форму выбора документа с установленным периодом (управляемую)
0 Greenscintila
 
24.10.19
07:10
Добрый день. Из внешней обработки открываю форму выбора документа. Необходимо при открытии установить период.

Процедура ДокументПроизводстваНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    
    Настройки = Новый НастройкиКомпоновкиДанных;
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период", Объект.Период);
        
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("ФиксированныеНастройки", Настройки);
    
    ОткрытьФорму("Документ.ПроизводствоБезЗаказа.ФормаВыбора", ПараметрыФормы, Элементы.ДокументПроизводства);    
КонецПроцедуры

Как результат — параметр не найден. Подскажите как это сделать?
1 Kol Pecivanovich
 
24.10.19
09:24
в открываемой форме на закладке Параметры такой параметр есть?
2 Greenscintila
 
24.10.19
10:00
(1) Форма выбора создается системой. У формы есть подчиненный элемент "Список". Возможно есть вариант передать в него параметр? (Я понимаю что фактически форма выбора содержит динамический список, при чем без описанных параметров). Вопрос в том можно ли им как-то управлять?
3 Kol Pecivanovich
 
24.10.19
10:37
(2) можно попробовать через ПолучитьФорму() обратиться к списку и задать нужный отбор, а потом открыть полученную форму
4 Greenscintila
 
24.10.19
10:39
Может пригодиться кому.

    СтандартнаяОбработка = Ложь;
    
    Настройки = Новый НастройкиКомпоновкиДанных;
    
    ЭлементПодразделение = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементПодразделение.Использование = Истина;
    
    ЭлементПодразделение.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Подразделение");
    ЭлементПодразделение.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементПодразделение.ПравоеЗначение = ПолучитьПодразделение();
    ЭлементПодразделение.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;
    
    Если ЗначениеЗаполнено(Объект.Период) Тогда
        ЭлементПериодНачало = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементПериодНачало.Использование = Истина;
        ЭлементПериодНачало.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дата");
        ЭлементПериодНачало.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно;
        ЭлементПериодНачало.ПравоеЗначение = Объект.Период.ДатаНачала;
        ЭлементПериодНачало.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;
        
        ЭлементПериодОкончание = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементПериодОкончание.Использование = Истина;
        ЭлементПериодОкончание.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дата");
        ЭлементПериодОкончание.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
        ЭлементПериодОкончание.ПравоеЗначение = Объект.Период.ДатаОкончания;
        ЭлементПериодОкончание.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;

    КонецЕсли;
    
    
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("ФиксированныеНастройки", Настройки);
    ОткрытьФорму("Документ.ПроизводствоБезЗаказа.ФормаВыбора", ПараметрыФормы);
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.