Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Открыть форму выбора документа с установленным периодом (управляемую)

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

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

Как результат — параметр не найден. Подскажите как это сделать?
 
 
   KolPecivanovich
 
1 - 24.10.19 - 09:24
в открываемой форме на закладке Параметры такой параметр есть?
   Greenscintila
 
2 - 24.10.19 - 10:00
(1) Форма выбора создается системой. У формы есть подчиненный элемент "Список". Возможно есть вариант передать в него параметр? (Я понимаю что фактически форма выбора содержит динамический список, при чем без описанных параметров). Вопрос в том можно ли им как-то управлять?
   KolPecivanovich
 
3 - 24.10.19 - 10:37
(2) можно попробовать через ПолучитьФорму() обратиться к списку и задать нужный отбор, а потом открыть полученную форму
   Greenscintila
 
4 - 24.10.19 - 10:39
Может пригодиться кому.
    СтандартнаяОбработка = Ложь;
    
    Настройки = Новый НастройкиКомпоновкиДанных;
    
    ЭлементПодразделение = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементПодразделение.Использование = Истина;
    
    ЭлементПодразделение.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Подразделение");
    ЭлементПодразделение.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементПодразделение.ПравоеЗначение = ПолучитьПодразделение();
    ЭлементПодразделение.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;
    
    Если ЗначениеЗаполнено(Объект.Период) Тогда
        ЭлементПериодНачало = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементПериодНачало.Использование = Истина;
        ЭлементПериодНачало.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дата");
        ЭлементПериодНачало.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно;
        ЭлементПериодНачало.ПравоеЗначение = Объект.Период.ДатаНачала;
        ЭлементПериодНачало.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;
        
        ЭлементПериодОкончание = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементПериодОкончание.Использование = Истина;
        ЭлементПериодОкончание.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дата");
        ЭлементПериодОкончание.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
        ЭлементПериодОкончание.ПравоеЗначение = Объект.Период.ДатаОкончания;
        ЭлементПериодОкончание.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь во втором сообщении вам дадут решение, а в двадцатом дадут правильное решение. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.