Имя: Пароль:
1C
1C 7.7
v7: Фильтр по списку значений
0 DenSpb
 
15.03.12
12:36
Во внешней обработке надо сделать фильтр по списку брэндов.
На форму вывел список брэндов.
Определяю список отмеченных брэндов:
   Для Ном = 1 По Брэнды.РазмерСписка() Цикл
       Если Брэнды.Пометка(Ном) = 1 Тогда
       Брэндик = Брэнды.ПолучитьЗначение(Ном, ИмяБрэнда);
       СписокБрендов.ДобавитьЗначение(Брэндик, ИмяБрэнда);
       ФильтроватьПоБрэнду = 1;  
       КонецЕсли;
   КонецЦикла;

Соответственно, когда делаю выгрузку проверяю:
Если (ПустоеЗначение(Док.Детали.Фирма) = 1) Или (СписокБрендов.Принадлежит(Док.Детали.Фирма) = 0) Тогда
           Продолжить;                                                            
               КонецЕсли;

Фильтр работает всегда, почему то СписокБрендов.Принадлежит(Док.Детали.Фирма) не находит выбранный брэнд как будет этот список пустой, всегда выгружается пусто.

В чем косяк?
1 viktor_vv
 
15.03.12
12:40
Тип значения в списке Брэнды и реквизита Док.Детали.Фирма совпадают ?
2 DenSpb
 
15.03.12
12:42
(1) Да, тип один и тот же
3 viktor_vv
 
15.03.12
12:46
Отладчик что говорит перед проверкой : СписокБрэндов.РазмерСписка() = ?
4 povar
 
15.03.12
12:46
что это ?
ИмяБрэнда
5 DenSpb
 
15.03.12
12:47
(3) Отладчик говорит, что в списке столько значений, сколько отмечено
6 DenSpb
 
15.03.12
12:48
(4) ИмяБрэнда - имя переменной
7 Ёпрст
 
15.03.12
12:50
(0) .ТекущийЭлемент()
8 DenSpb
 
15.03.12
12:51
(7)Это куда вставить?
9 povar
 
15.03.12
12:51
СписокБрендов.ДобавитьЗначение(Брэндик.ТекущийЭлемент(), ИмяБрэнда);
10 DenSpb
 
15.03.12
12:54
(9) Попробовал, то же самое(
11 ЧеловекДуши
 
15.03.12
12:55
А потом выяснится, что:
1 - Нет фирмы в документе
2 - Нет фирмы в списке :)
3 - Деталь была введена без фирмы и т.д.

(0)Учись пользоваться отладчиком.
12 povar
 
15.03.12
12:55
(10) покажи код, где список "Брэнды" заполняешь
13 DenSpb
 
15.03.12
12:56
(10)
Справоч=СоздатьОбъект("Справочник.Производители");
   Справоч.ВыбратьЭлементы();
   Пока Справоч.ПолучитьЭлемент()=1 Цикл
       Если Справоч.ЭтоГруппа() = 0 Тогда
           Брэнды.ДобавитьЗначение(Справоч, Справоч.Наименование);
       КонецЕсли;
   КонецЦикла;
14 viktor_vv
 
15.03.12
12:57
Брэнды.ДобавитьЗначение(Справоч.ТекущийЭлемент(), Справоч.Наименование);
15 DenSpb
 
15.03.12
12:57
(11) Фирма для дели есть, это в отладчике видно
16 Ёпрст
 
15.03.12
12:58
(13) :))))))))))))))))))))))))))))))))))))))))))))))))

Теперь смотри на (7)..

Больше никуда это вставлять не нужно будет
17 povar
 
15.03.12
12:58
(13) Справоч.ТекущийЭлемент()
18 Ёпрст
 
15.03.12
12:58
Брэнды.ДобавитьЗначение(Справоч.ТекущийЭлемент(), Справоч.Наименование);


Если что
19 ЧеловекДуши
 
15.03.12
12:59
(13)А где "Справоч.ТекущийЭлемент()" ?
Без этой фигни, список пуст :)
20 DenSpb
 
15.03.12
13:00
Точняк, все заработало:) Ошибка была при заполнении списка брэндов в процедуре при открытии:) Всем спасибо!!!
21 Mikeware
 
15.03.12
13:04
миздатый способ отладки...
замиздячить мизданутый код в мизду, и пусть миздюки разбираюся...