Форма выбора с отбором (2 вариант)
При открытии формы
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ГруппаНоменклатуры = Справочники.НоменклатураЕРП.НайтиПоНаименованию("Готовая продукция"); // Выводим номенклатуру, которая относится к родительской категории готовой продукции ОтборПоГруппе = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборПоГруппе.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); ОтборПоГруппе.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии; ОтборПоГруппе.ПравоеЗначение = ГруппаНоменклатуры; // Скрываем пустые группы ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить(); ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь); ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить(); ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Истина ); ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать",Истина ); ОтборПоГруппе = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборПоГруппе.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); ОтборПоГруппе.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии; ОтборПоГруппе.ПравоеЗначение = ГруппаНоменклатуры; // Строчки кода повторяются. Если убрать первую часть, то пользователь долгое время будет лицезреть пустое окошко и, возможно, запаникует, // прежде, чем загрузятся данные. Скрыть вторую часть - останутся пустые папки. // Смысл в том, чтоб всем выключить видимость, а после по отбору "ВИерархии" включить КонецПроцедуры |
***
Создать форму выбора Склады — ФормаВыбораГП
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Создать форму выбора ОМЗ_Склады - ФормаВыбораГП &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ГруппаНоменклатуры = Справочники.ОМЗ_Склады.НайтиПоНаименованию("Склады готовой продукции"); // Выводим номенклатуру, которая относится к родительской категории готовой продукции ОтборПоГруппе = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборПоГруппе.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); ОтборПоГруппе.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии; ОтборПоГруппе.ПравоеЗначение = ГруппаНоменклатуры; // Скрываем пустые группы ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить(); ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь); ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить(); ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Истина ); ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать",Истина ); ОтборПоГруппе = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборПоГруппе.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); ОтборПоГруппе.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии; ОтборПоГруппе.ПравоеЗначение = ГруппаНоменклатуры; КонецПроцедуры |
***
Создать форму выбора Склады — ФормаВыбораВозврат
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Разрешенные = Новый Структура; Разрешенные.Вставить("Элемент1", "Цех1"); Разрешенные.Вставить("Элемент2", "Цех2"); Разрешенные.Вставить("Элемент3", "Цех3"); Разрешенные.Вставить("Элемент4", "Цех4"); ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить(); ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Истина); ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить(); ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь ); ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать",Истина ); Если Элементы.Количество() > 1 Тогда ГруппаОтбора2 = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; КонецЕсли; Для каждого Элемент из Разрешенные Цикл ОтборПоГруппе = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ГруппаНоменклатуры = Справочники.Склады.НайтиПоНаименованию(Элемент.Значение); ОтборПоГруппе.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); ОтборПоГруппе.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВИерархии; ОтборПоГруппе.ПравоеЗначение = ГруппаНоменклатуры; КонецЦикла; КонецПроцедуры |


Комментарии закрыты