Открыть форму выбора документа с установленным периодом (управляемую)
☑
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
Может пригодиться кому.
СтандартнаяОбработка = Ложь;
Настройки = Новый НастройкиКомпоновкиДанных;
ЭлементПодразделение = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементПодразделение.Использование = Истина;
ЭлементПодразделение.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Подразделение");
ЭлементПодразделение.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементПодразделение.ПравоеЗначение = ПолучитьПодразделение();
ЭлементПодразделение.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;
Если ЗначениеЗаполнено(Объект.Период) Тогда
ЭлементПериодНачало = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементПериодНачало.Использование = Истина;
ЭлементПериодНачало.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дата");
ЭлементПериодНачало.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно;
ЭлементПериодНачало.ПравоеЗначение = Объект.Период.ДатаНачала;
ЭлементПериодНачало.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;
ЭлементПериодОкончание = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементПериодОкончание.Использование = Истина;
ЭлементПериодОкончание.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дата");
ЭлементПериодОкончание.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
ЭлементПериодОкончание.ПравоеЗначение = Объект.Период.ДатаОкончания;
ЭлементПериодОкончание.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;
КонецЕсли;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ФиксированныеНастройки", Настройки);
ОткрытьФорму("Документ.ПроизводствоБезЗаказа.ФормаВыбора", ПараметрыФормы);
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой