Имя: Пароль:
1C
1C 7.7
v7: Помогите со списком значений
, ,
0 avcherkasov
 
10.11.16
10:36
Есть на форме множественный список (ТМЦ папки с элементами). Как их сообщить? Не сами элементы списка, а именно папки?
1 Ёпрст
 
10.11.16
10:38
(0) Для начала, советую не употреблять тяжелые синтетические наркотики.
Ну и потом, задать вопрос по-человечьи
2 avcherkasov
 
10.11.16
10:41
Да трезв, чес слово. В обработке на форме есть список ТМЦ (там я выбираю, например, группу товаров Напитки). Как сообщить Напитки, а не список элементов в этой группе?
3 Это_mike
 
10.11.16
10:42
(1) говорят, вчера где-то марихуану легализовали... может, он из тех мест?
4 разработчик 1с
 
10.11.16
10:42
в лнр есть 1с
кому сообщить о чём?
5 avcherkasov
 
10.11.16
10:44
1с есть везде. Мне в ТЗ затем запихнуть надо именно Напитки, а не элементы.
6 Ёпрст
 
10.11.16
10:44
(2) Кому сообщить ?
7 Ёпрст
 
10.11.16
10:45
(5) ВыборГруппы(1)
8 HawkEye
 
10.11.16
10:50
(0) ты кликаешь на папку Напитки, а она у тебя не выбирается, а открывается ее содержимое? тогда (7)
9 Базис
 
naïve
10.11.16
10:51
.ЭтоГруппа();
.родитель()
10 Это_mike
 
10.11.16
10:51
"грамотно сформулированный вопрос содержит в себе половину ответа"©
11 avcherkasov
 
10.11.16
11:03
(10) извините, попробую по другому ))
Если (ПустоеЗначение(ВыбТовар) = 0) и (ВыбТовар.Принадлежит(ТекТовар) <> 0) Тогда                                                                                 Сообщить(ВыбТовар);                      КонецЕсли;

Мне сообщает СписокЗначений. У меня он на форме (группа Напитки).Если по циклу перебирать, то выведу элементы этого списка (например нап1, нап2...), а как сообщить именно Напитки?
12 разработчик 1с
 
10.11.16
11:07
выбтовар.текущийэлемент
13 Ёпрст
 
10.11.16
11:08
(12) это заразно ?
14 Ёпрст
 
10.11.16
11:08
у списка значений нет реквизита .текущийэлемент
15 Ёпрст
 
10.11.16
11:09
(11) Ты по человечьи можешь задать вопрос ?
16 Ёпрст
 
10.11.16
11:09
Тебе нужно что ? Значение из текущей строки из твоего списка на форме ? Или что ?
17 silent person
 
10.11.16
11:10
Сообщить(ВыбТовар.ПолучитьЗначение(ВыбТовар.ТекущаяСтрока()));
18 avcherkasov
 
10.11.16
11:23
(17) Спасибо так и пытаюсь делать. Это работает если в списке значений 1 группа, а если их несколько, то выводит всегда последнюю.
19 avcherkasov
 
10.11.16
11:24
(16) да
20 Ёпрст
 
10.11.16
11:25
(18) ой ли.. Там где стоит текущая строка в списке на форме, ту и выведет.
21 avcherkasov
 
10.11.16
11:28
Допустим, у меня 3 строки в СЗ. В обработке я перебираю все элементы из этого списка. Как сообщить, что нап1 -принадлежит группе напитки, а кега1 - принадлежит группе Кеги?
22 Ёпрст
 
10.11.16
11:35
(21) Так тебе значение из текущей строки списка значений нужно, или все ?
И зачем ты перебираешь список ?
и нап1 - это что ? И кега1 -это что ? Откуда взялись ?

Может, выплюнешь кашу и задашь вопрос по-человечьи ?
23 silent person
 
10.11.16
11:42
Для Сч = 1 По ВыбТовары.РазмерСписка() Цикл
ТекЭлемент = ВыбТовары.ПолучитьЗначение(Сч);
Если ТекЭлемент.ЭтоГруппа() = 1 Тогда
Сообщить(ТекЭлемент);
Иначе
Сообщить(ТекЭлемент.Родитель);
КонецЕсли;
КонецЦикла;
24 Ёпрст
 
10.11.16
11:42
Хз, че тебе надо, наверное, закусывать больше


Для к =1 По ВыбТовар.РазмерСписка() Цикл
   ЗначениеСписка = ВыбТовар.ПолучитьЗначение(к);
   Если ЗначениеСписка.ЭтоГруппа()=1 Тогда
     Если ЗначениеСписка.Принадлежит(нап1)=1 Тогда
        Сообщить(""+ЗначениеСписка +" это группа однако и "+нап1+" торчит в ней");
     КонецЕсли;  
     Если ЗначениеСписка.Принадлежит(кега1 )=1 Тогда
        Сообщить(""+ЗначениеСписка +" это группа однако и "+кега1 +" торчит в ней");
     КонецЕсли;
    КонецЕсли;
КонецЦикла;
25 avcherkasov
 
10.11.16
11:55
(24)
Для к = 1 По ВыбТовар.РазмерСписка() Цикл
                ЗначениеСписка = ВыбТовар.ПолучитьЗначение(к);                
               Если ЗначениеСписка.ЭтоГруппа() = 1 Тогда
                 Если ЗначениеСписка.Принадлежит(ТекТовар.ТекущийЭлемент()) = 1 Тогда
                    Сообщить(""+ЗначениеСписка +" это группа однако и "+ТекТовар+" торчит в ней");
                 КонецЕсли;  
                КонецЕсли;
            КонецЦикла;

Поле агрегатного объекта не обнаружено (Принадлежит)
26 Ёпрст
 
10.11.16
11:57
Для к =1 По ВыбТовар.РазмерСписка() Цикл

   ЗначениеСписка = ВыбТовар.ПолучитьЗначение(к);
   Если ЗначениеСписка.ЭтоГруппа()=1 Тогда
     Если нап1.ПринадлежитГруппе(ЗначениеСписка)=1 Тогда
        Сообщить(""+ЗначениеСписка +" это группа однако и "+нап1+" торчит в ней");
     КонецЕсли;  
     Если кега1.ПринадлежитГруппе(ЗначениеСписка)=1 Тогда
        Сообщить(""+ЗначениеСписка +" это группа однако и "+кега1 +" торчит в ней");
     КонецЕсли;
    КонецЕсли;
КонецЦикла;
27 DDwe
 
10.11.16
11:57
Пятница!
28 Ёпрст
 
10.11.16
12:00
(27) тут либо  86, либо днк
29 avcherkasov
 
10.11.16
12:04
(26) Да, это оно. Огромное человеческое.
PS юмористам, на кастинг к Петросяну, такие таланты пропадают.
PPS
Для к = 1 По ВыбТовар.РазмерСписка() Цикл
                ЗначениеСписка = ВыбТовар.ПолучитьЗначение(к);                
               Если ЗначениеСписка.ЭтоГруппа() = 1 Тогда
                 Если ТекТовар.ПринадлежитГруппе(ЗначениеСписка) = 1 Тогда
                    Сообщить(ЗначениеСписка);
                 КонецЕсли;  
                КонецЕсли;
            КонецЦикла;
30 Злопчинский
 
10.11.16
12:27
чтобы понять, что ТекТовар принадлежит какой-то группе, которая есть в спискезначений ВыбТовар (при условии что сам тектовар не содержится в этом списке) - всю эту многоэтажную конструкцию можно заменить на

ВыбТовар.Принадлежит(ТекТовар);

а дальше, если надо детализировать какой именно группе - тогда уже перебирать список
31 avcherkasov
 
10.11.16
12:48
(30) ок, спасибо. Мне именно надо детализировать.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.