Имя: Пароль:
1C
1С v8
Открыть УФ с отобором по группе
0 Jaroslavka777
 
27.02.15
15:29
Доброго дня!
Не могу понять, почему форма выбора игнорирует отбор

Код:

&НаКлиенте
Процедура ТоварыДиаметрНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    ГруппаРезина = "1-050564";
    СтандартнаяОбработка = Ложь;

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

&НаСервереБезКонтекста
Функция НайтиЭлементОтбора(Код)

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|    Номенклатура.Ссылка
|ИЗ
|    Справочник.Номенклатура КАК Номенклатура
|ГДЕ
|    Номенклатура.Код = &Код";

Запрос.УстановитьПараметр("Код", Код);

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл

ЭлементДляОтбора = Выборка.Ссылка;    

КонецЦикла;
  
Возврат ЭлементДляОтбора;    

КонецФункции


Код взяла с ветки v8: Неотключаемый отбор в УФ выбора. Как правильней.
1 Адский плющ
 
27.02.15
15:32
1. Это не отбор по группе в общем понимании
2. Отбор на равно можно проще сделать.
3. По ссылке в ветке бредятина и г-но.
2 Jaroslavka777
 
27.02.15
15:34
(1) Как сделать проще? Как вообще хоть как-то сделать
3 Адский плющ
 
27.02.15
15:36
(2) Если нужно просто отобрать по родителю - передавай параметр отбор, если сделать отбор в группе - передавай фиксированные настройки.
4 Wobland
 
27.02.15
15:38
5 Cyberhawk
 
27.02.15
15:39
В (4) сработает только на вид сравнения "Равно"?
6 Wobland
 
27.02.15
15:42
(5) не помню ;)
7 banco
 
27.02.15
16:06
(2) по моему с 8.3.4 по умолчанию отбор Неотключаемый.
Если у тебя старая версия или режим совместимости стоит, то делай через ФиксированныеНастройки

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

ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", Новый Структура("ФиксированныеНастройки", ФиксированныеНастройки), Элемент);
8 Jaroslavka777
 
27.02.15
16:10
(4) модально открыть это не хорошо
9 Wobland
 
27.02.15
16:11
(8) два года назад я этого ещё не знал. но догадывался ;)
10 Jaroslavka777
 
27.02.15
16:13
Всем спасибо, мужики) Передумала открывать форму выбора. Ну её)

Решила попробовать сделать добавление номенклатуры в документ с помощью обработок встроенных типа "ПодборТоваровВДокументПродажи"

Конфа УТ 11
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший