Имя: Пароль:
1C
1С v8
Обработка события "Начало выбора" 1С 8.1
,
0 zvivla
 
14.01.13
10:14
Здравствуйте!
На гугле не забанили и делаю вроде все верно, но не получается =(

Есть форма с полем выбора и обработкой события "Начало выбора". Необходим отбор из справочника по определенному значению. Делаю так- не отбирает. В чем косяк?
СтандартнаяОбработка = Ложь;    
Форма=Справочники.договоры.ПолучитьФормуВыбора();
Форма.Отбор.ФизЛицо.Установить(контрагент);
Форма.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = ложь;
Форма.ЭлементыФормы.СправочникСписок.ИзменятьИерархическийПросмотр = ложь;
Форма.Открыть();
1 Wobland
 
14.01.13
10:17
отбор у формы? это на зачем?
2 zvivla
 
14.01.13
10:19
Wobland ну чтоб при отборе отображались только нужные договоры, относящиеся к данному контрагенту.
3 Wobland
 
14.01.13
10:20
(2) задачу твою я понял. что такое отбор у формы?
4 Голубушка
 
14.01.13
10:20
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
Отбор = Новый Структура;
Если ПараметрыДокумента.Свойство("Контрагент") Тогда
   Отбор.Вставить("Партнер", ПолучитьПартнера(ПараметрыДокумента.Контрагент));
       КонецЕсли;
       ПараметрыФормы = Новый Структура("Отбор,ТекущаяСтрока", Отбор, ЗначениеСубконто);
       ОткрытьФорму("Справочник.СоглашенияСПоставщиками.ФормаВыбора", ПараметрыФормы, Элемент);
5 Голубушка
 
14.01.13
10:21
обработчик начало выбора
6 Defender aka LINN
 
14.01.13
10:21
(0) Видимо, контрагент ни разу не физ. лицо
7 zvivla
 
14.01.13
10:22
Defender aka LINN
контрагент-физлицо) иначе бы ошибка выдавалась
8 zvivla
 
14.01.13
10:22
Голубушка
ОткрытьФорму  - в 1С 8.2 вроде же. В 8.1 нет такого
9 Голубушка
 
14.01.13
10:23
(8) точно  .. утро :)
10 Defender aka LINN
 
14.01.13
10:25
(7) Никакой ошибки в этом случае выдаваться не будет, если что.
11 zvivla
 
14.01.13
10:26
Wobland
СправочникСписок.<Имя справочника> (CatalogList.<Имя справочника>)
Отбор (Filter)
Использование:
Только чтение.
Описание:
Тип: Отбор. Позволяет установить отбор по реквизитам справочника. Имена элементов отбора совпадают с именами колонок списка справочника, а также дополняются критериями отбора, затрагивающими справочник.
12 zvivla
 
14.01.13
10:27
Defender aka LINN
попробую сделать принудительный отбор (программно). мне кажется не в этом совсем проблема
13 Defender aka LINN
 
14.01.13
10:28
(12) Если проблему попытаться описать несколько бОльшими словами, чем "не работает", то, возможно, кто-нибудь что-нибудь и подскажет.
14 zvivla
 
14.01.13
10:30
Defender aka LINN
ошибок нет.
в форме выбора при открытии не стоит отбора по физЛицу. Единственно иерархический просмотр действительно убирается, т.е. понятно что хотя бы часть кода отрабатывается
15 zvivla
 
14.01.13
10:33
СтандартнаяОбработка = Ложь;    
Форма=Справочники.договоры.ПолучитьФормуВыбора(,Элемент);
Форма.Отбор.ФизЛицо.Установить(справочники.ФизическиеЛица.НайтиПоКоду("ДК13528").Ссылка);
Форма.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = ложь;
Форма.ЭлементыФормы.СправочникСписок.ИзменятьИерархическийПросмотр = ложь;
Форма.Открыть();

так тоже не работает
16 Wobland
 
14.01.13
10:35
(11) СправочникСписок, говоришь?
17 ptiz
 
14.01.13
10:38
(15) Должно работать.
Возможно, НайтиПоКоду у тебя не отрабатывает.
18 zvivla
 
14.01.13
10:39
ptiz
сообщить(справочники.ФизическиеЛица.НайтиПоКоду("ДК13528").Ссылка)  
сделала. работает
19 zvivla
 
14.01.13
10:40
Wobland
я где-то лажанулась, да? =)
20 Wobland
 
14.01.13
10:41
(19) мне тоже так кажется. я ожидал что-то типа форма.список.отбор...
21 Wobland
 
14.01.13
10:41
(18) ссылку убери, тебе и так ссылка возвращается
22 zvivla
 
14.01.13
10:42
Wobland
убирала. не фильтрует все равно
23 Wobland
 
14.01.13
10:43
(22) да не в этом затык. ".ссылка" просто лишнее
24 КуплюКровать
 
14.01.13
10:44
(0)че ты там с кием делаешь?
25 Wobland
 
14.01.13
10:45
а я ещё вот так делал:
       ЭлементыФормы.Контрагенты.Значение.Отбор.Ссылка.Использование=Истина;
   ЭлементыФормы.Контрагенты.Значение.Отбор.Ссылка.ВидСравнения=ВидСравнения.ВСписке;
   ЭлементыФормы.Контрагенты.Значение.Отбор.Ссылка.Значение=СписокКонтрагентов;
26 КуплюКровать
 
14.01.13
10:45
(23)да там можно хоть .ссылка.ссылка.ссылка все равно будет работать. не в этом косяк
27 Wobland
 
14.01.13
10:45
(26) да? понятно
28 КуплюКровать
 
14.01.13
10:50
(0)замени Форма.Отбор.ФизЛицо.Установить(справочники.ФизическиеЛица.НайтиПоКоду("ДК13528").Ссылка);
на Форма.ЭлементыФормы.СправочникСписок.Отбор.Установить(справочники.ФизическиеЛица.НайтиПоКоду("ДК13528"))
29 zvivla
 
14.01.13
10:53
КуплюКровать
Поле объекта не обнаружено (Отбор)
Форма.ЭлементыФормы.СправочникСписок.Отбор.Установить(контрагент);
30 Wobland
 
14.01.13
10:54
(29) значение
31 zvivla
 
14.01.13
11:10
Wobland

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

Говорит поле ФизЛицо не обнаружено. Да офигеть. есть поле ФизЛицо в Справочники.договоры и реквизит такой есть
32 Wobland
 
14.01.13
11:14
(31) ну вот нету у тебя на форме элемента по имени физлицо
33 Wobland
 
14.01.13
11:15
Форма.ЭлементыФормы.СправочникСписок.Значение.Отбор.ФизЛицо?
34 zvivla
 
14.01.13
11:18
Wobland
мимо=)
35 Wobland
 
14.01.13
11:20
(34) откуда вывод? кто такой контрагент?
36 zvivla
 
14.01.13
11:21
Wobland
контрагент поле- в нем собсна кто-то из справочника ФизЛица
37 ptiz
 
14.01.13
11:22
Форма.СправочникСписок.Отбор.ФизЛицо.Установить(...
38 Wobland
 
14.01.13
11:23
(36) контрагент - едитбокс, а не элемент справочника
39 zvivla
 
14.01.13
11:27
Wobland
контрагент  реквизит типа справочник.физЛицо.ссылка
40 Wobland
 
14.01.13
11:27
(39) ну тогда переходи к первому вопросу. после (37)
41 zvivla
 
14.01.13
11:30
СтандартнаяОбработка = Ложь;    
   
   
   Форма=Справочники.договоры.ПолучитьФормуСписка(,Элемент);
   Форма.СправочникСписок.Отбор.ФизЛицо.Установить(контрагент);
   
   Форма.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = ложь;
   Форма.ЭлементыФормы.СправочникСписок.ИзменятьИерархическийПросмотр = ложь;
   Форма.Открыть();
ошибок нет, но и отбора тоже нет
42 zvivla
 
14.01.13
11:41
разобралась
   СтандартнаяОбработка = Ложь;    
   
   
   Форма=Справочники.договоры.ПолучитьФормуСписка(,Элемент);

   
   Форма.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = ложь;
   Форма.ЭлементыФормы.СправочникСписок.ИзменятьИерархическийПросмотр = ложь;
   Форма.Открыть();
       Форма.СправочникСписок.Отбор.ФизЛицо.ВидСравнения = ВидСравнения.Равно;
Форма.СправочникСписок.Отбор.ФизЛицо.Значение = контрагент;
Форма.СправочникСписок.Отбор.ФизЛицо.Использование = Истина;
43 zvivla
 
14.01.13
11:41
после открытия формы надо было отбор назначать
44 Wobland
 
14.01.13
11:42
(43) чо??
45 zvivla
 
14.01.13
11:44
Wobland
что чо?
46 Wobland
 
14.01.13
11:45
(45) я не согласен с (43), ты где-то уже запуталась
47 zvivla
 
14.01.13
11:46
Wobland
не знаю где я запуталась, но работает
48 Wobland
 
14.01.13
11:46
(47) ну на здоровье тогда, что ли...
49 zvivla
 
14.01.13
11:48
Wobland
спасибо=)
Программист всегда исправляет последнюю ошибку.