Имя: Пароль:
1C
1С v8
Открыть форму подбора с отбором по владельцу
0 Vigor06
 
16.03.15
18:47
Доброго дня!
Глупая ситуация,но не могу победить:
Есть форма,на ней табличное поле, в нем 2 столбца: номенклатура и серия этой номенклатуры
Задача: открыть форму серий номенклатуры с отбором данных,находящимися в списке
код такой:

СтандартнаяОбработка = ЛОжЬ;

Форма = Справочники.СерииНоменклатуры.ПолучитьФормуВыбора();
    Форма.РежимВыбора = Истина;

Сертификат = ЭлементыФормы.ПогашениеПодарочныхСертификатов.ТекущиеДанные.ПодарочныйСертификат;

    
    МассивСерий = Выборка.ВыгрузитьКолонку("СерияНоменклатуры");
    Список = Новый СписокЗначений;
    Список.ЗагрузитьЗначения(МассивСерий);
    
    Форма.Отбор.Владелец.ВидСравнения = ВидСравнения.Равно;
    Форма.Отбор.Владелец.Значение         = Сертификат;
    Форма.Отбор.Владелец.Использование = Истина;
    
    Форма.ВладелецФормы = Элемент;
    
    Форма.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
    Форма.Отбор.Ссылка.Значение = Список;
    Форма.Отбор.Ссылка.Использование = Истина;
    
    Форма.Открыть();



То есть все уже перепробовал, но все равно сразу же не делает отбор,а предлагает сначала выбрать номенклатуру(( что не так?
1 Vigor06
 
16.03.15
18:47
Кусок с запросом пропустил
2 kumena
 
16.03.15
18:53
если память не изменяет то владельца надо тут указывать, в параметре ПолучитьФормуВыбора
3 kumena
 
16.03.15
18:54
стырил бы пример из типовой
4 Fragster
 
гуру
16.03.15
18:58
надо заполнить только связь параметров выбора мышкой на форме. переопределять обработчики для этого не нужно.
5 Vigor06
 
16.03.15
19:03
(4) связь по владельцу указана,но мне нужно не тупо отбор по владельцу,а с доп.отбором.Список нужных серий я и передаю
6 Крошка Ру
 
16.03.15
19:23
(5)
Форма.ВладелецФормы = Элемент;

Кто такой Элемент?
7 Крошка Ру
 
16.03.15
19:25
+(6) Надеюсь код в событии НачалоВыбора()?
8 Vigor06
 
16.03.15
19:33
(6) не дурак)
Я вообще этот код закомментил потом
9 Vigor06
 
16.03.15
19:35
Упростив вопрос,опишу задачу:
открыть форму подбора справочника "Серии номенклатуры" с отбором по владельцу и заранее подготовленному списку серий.
не пойму как((
10 Vigor06
 
16.03.15
19:36
Код кривой,но делал впопыхах, налепил всего. Что не работает - не пойму


    СтандартнаяОбработка = ЛОжЬ;
    Запрос = Новый Запрос;
    ЗАпрос.УстановитьПараметр("ГоденПо",КонецДня(ТекущаяДата()));
    ЗАпрос.Текст = "ВЫБРАТЬ
                   |    ДвиженияСерийныхНомеровСрезПоследних.СерияНоменклатуры,
                   |    ДвиженияСерийныхНомеровСрезПоследних.ГоденПо,
                   |    ДвиженияСерийныхНомеровСрезПоследних.ХозяйственнаяОперация,
                   |    ДвиженияСерийныхНомеровСрезПоследних.Номенклатура
                   |ИЗ
                   |    РегистрСведений.ДвиженияСерийныхНомеров.СрезПоследних КАК ДвиженияСерийныхНомеровСрезПоследних";
                  
    Выборка = ЗАпрос.Выполнить().Выгрузить();
    Сертификат = ЭлементыФормы.ПогашениеПодарочныхСертификатов.ТекущиеДанные.ПодарочныйСертификат;
    Для сч = 0 По Выборка.Количество()-1 Цикл
        Строка = Выборка[сч];
        Если Строка.ГоденПО < ТекущаяДата() Тогда Выборка.Удалить(Строка)    КонецЕсли;
        Если Строка.ХозяйственнаяОперация <> Строка(Перечисления.ХозОперацияСертификатов.Реализация) Тогда Выборка.Удалить(Строка);     КонецЕсли;
        Если Строка.Номенклатура <> Сертификат Тогда Выборка.Удалить(Строка);     КонецЕсли;
    КонецЦикла;
    
    
    
    Форма = Справочники.СерииНоменклатуры.ПолучитьФормуВыбора(,Элемент);
    
    Форма.ПараметрОТборПоВладельцу = Сертификат;
    
    Форма.РежимВыбора = Истина;
    
    МассивСерий = Выборка.ВыгрузитьКолонку("СерияНоменклатуры");
    Список = Новый СписокЗначений;
    Список.ЗагрузитьЗначения(МассивСерий);
    
    
    Форма.Отбор.Владелец.ВидСравнения = ВидСравнения.Равно;
    Форма.Отбор.Владелец.Значение         = Сертификат;
    Форма.Отбор.Владелец.Использование = Истина;
    
    //Форма.ВладелецФормы = Элемент;
    
    Форма.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
    Форма.Отбор.Ссылка.Значение = Список;
    Форма.Отбор.Ссылка.Использование = Истина;
    
    Форма.Открыть();
11 Vigor06
 
16.03.15
19:38
Отбор по владельцу на форме как врубал,так и вырубал
12 Крошка Ру
 
16.03.15
19:41
СтандартнаяОбработка = Ложь;
Форма = Справочники.СерииНоменклатуры.ПолучитьФормуВыбора();
    Форма.Отбор.Владелец.ВидСравнения = ВидСравнения.Равно;
    Форма.Отбор.Владелец.Значение         = Сертификат;
    Форма.Отбор.Владелец.Использование = Истина;
    
    Форма.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
    Форма.Отбор.Ссылка.Значение = Список;
    Форма.Отбор.Ссылка.Использование = Истина;
    
    Форма.ВладелецФормы = ЭтаФорма;
    
    Форма.ОткрытьМодально();
13 Vigor06
 
16.03.15
19:45
(12) все равно сначала предлагает выбрать владельца,перед выбором серий
14 Vigor06
 
16.03.15
19:45
(12) хотя серии то отбирает верно. Что то с владельцем
15 Крошка Ру
 
16.03.15
19:57
А, ну ещё

Форма.ПараметрВыборПоВладельцу = Сертификат;
16 DrZombi
 
гуру
16.03.15
21:01
Отбор = Структура("Владелец",Владелец);
ПарамФормы = Структура("Отбор,ТекущаяСтрока",Отбор,ВыбранЭлемент);

Форма = ПолучитьФорму("Путь к форме выбора",ПарамФормы,Элемент);

//Далее организуешь отбор по списку
Форма

//Открыть
Форма.Открыть();
17 Vigor06
 
17.03.15
09:11
(15)Пробовал так,пишет  - "не выбрана номенклатура" при попытке выбрать серию
18 Vigor06
 
17.03.15
09:12
(16) а это не для управляемых разве?
19 Vigor06
 
17.03.15
09:52
(16) а в данном случае "ВыбранЭлемент" - это что?
20 Vigor06
 
17.03.15
10:15
(16)дааааа)))разобрался))оно работает)
21 Vigor06
 
17.03.15
11:39
Друзья,а как мне получить строки с последним статусом по сертификату?
Ну то есть,например, мы продали сертификат 1го числа (статус - реализация), им оплатили покупку 5го(статус-погашение). Я почему то думал,что СрезомПоследних мы получим последний статус каждой серии,но ошибался..((
22 Vigor06
 
17.03.15
12:11
Грубо говоря,нужен последний статус по каждой серии из регистра