Имя: Пароль:
1C
1С v8
сравнить реквизит ТЧ
0 r2d24
 
28.10.13
12:03
Не знаю как в условии сравнить реквизит табличной части.
Пробовал такое условие, но не то
Если ТабЧас1.Номенклатура = "Молоко" Тогда
1 Wobland
 
28.10.13
12:04
сравниваешь правильно
2 Галахад
 
гуру
28.10.13
12:04
СокрЛП(ТабЧас1.Номенклатура.Наименование) = "Молоко"
3 Галахад
 
гуру
28.10.13
12:05
СокрЛП(ТабЧас1[0].Номенклатура.Наименование) = "Молоко"
4 1dvd
 
28.10.13
12:05
Зарождение быдлокодера
5 HusArt
 
28.10.13
12:05
ТабЧас1.Номенклатура.Наименование = "Молоко"
либо
ТабЧас1.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("Молоко")
6 Холодильник
 
28.10.13
12:06
Если ТипЗнч(ТабЧас1.Номенклатура) = Тип("Справочники.Молоко") Тогда
7 r2d24
 
28.10.13
12:12
ссылается на то, что поле объекта не обнаружено
8 Wobland
 
28.10.13
12:13
(7) какую строку ТЗ имеешь в виду?
9 ptiz
 
28.10.13
12:15
(0) А если завтра товар переименуют в "Молоко 2.5%"?
10 1dvd
 
28.10.13
12:16
(9) подправит конфу, он не жадный :)
11 r2d24
 
28.10.13
12:16
(8) поле объекта не обнаружено Номенклатура
12 r2d24
 
28.10.13
12:17
(11) + Еще у меня номенклатура не ссылка на справочник, а строковый тип
13 1dvd
 
28.10.13
12:18
(12) Номенклатура - это реквизит строки ТЧ, а не самой ТЧ
14 Wobland
 
28.10.13
12:20
(12) наверное, это плохо?
15 r2d24
 
28.10.13
12:21
Номенклатура - это реквизит табличной части
16 Wobland
 
28.10.13
12:29
(15) какую строку имеешь в виду при сравнении?
17 Холодильник
 
28.10.13
12:35
Номенклатура - это реквизит табличной части справочника Номенклатура
18 r2d24
 
28.10.13
12:38
В документе, в табличной части ТабЧас1, есть реквизит табличной части "Номенклатура".
И я хочу сравнить реквизит табличной части "номенклатура", не равен ли "молоко"
19 Wobland
 
28.10.13
12:40
(18) В документе, в табличной части ТабЧас1 есть 80 тысяч строк. что ты от него хочешь?
20 1dvd
 
28.10.13
12:40
тяжелый случай
(18) в табличной части может быть много строк
21 Галахад
 
гуру
28.10.13
12:42
Кто знает, может быть ТабЧас1 это и есть первая строка. :-)
22 r2d24
 
28.10.13
12:43
(18),(19) так можно использовать цикл. Но это потом.
23 Wobland
 
28.10.13
12:44
(22) таак.. а сейчас, пока не наступило потом, что?
24 r2d24
 
28.10.13
12:48
Народ, вы меня удивляете. Я вроде бы объяснил проблему. Зачем еще не нужные вопросы? Зачем задавать какие-то левые вопросы? Если вы не знаете в чем проблема, то так и скажите.
25 Wobland
 
28.10.13
12:50
проблема в прокладке, как обычно. а на вопросы поотвечай, глядишь, и прозрение наступит
26 Холодильник
 
28.10.13
12:52
(24) народ не в теме, забей. здесь одни студенты и неудачники, которые справочник от документа не отличат
27 r2d24
 
28.10.13
12:59
(25) иногда такие вопросы задают, что их смысл не понятно, это я не к тебе лично
28 Wobland
 
28.10.13
13:01
(27) дык, номенклатуру из какой строки сравниваешь?
29 r2d24
 
28.10.13
13:04
(28) допустим в документе в табличной части, одна строка. В принципе я так сначала и делал.
30 Галахад
 
гуру
28.10.13
13:07
(29) См. (3)
31 r2d24
 
28.10.13
13:08
(30) так я тоже пробовал, не то
32 Wobland
 
28.10.13
13:09
(29) допустим. обращаемся по нулевому индексу, сравниваем. зарабатываем +200 опыта и переходим на следующий уровень. теперь в ТЧ двадать строк. причём 10 из них с молоком
33 r2d24
 
28.10.13
13:13
(32) ты наверное не понял, я повторю. Мне нужно условие, которое сравнивает реквизит табличной части со значением "молоко". А то, что записей может быть тысяча или миллион, меня сейчас не интересует.
Ну если хочешь, то можешь подсказать как и это сделать
34 Wobland
 
28.10.13
13:15
(33) тебе нужно условие, которое сравнивает значение реквизита конкретной строки ТЧ
35 r2d24
 
28.10.13
13:16
(34) можно и любой, а можно и единственной строки ТЧ
36 anaed
 
28.10.13
13:16
(33) а в реквизите строки ТЧ что хранится если не секрет?)
37 Wobland
 
28.10.13
13:16
(35) что такое "общий случай" ты знаешь?
38 1dvd
 
28.10.13
13:17
В какой процедуре ты пытаешь выполнить свой код?
39 r2d24
 
28.10.13
13:17
(37) нет
40 r2d24
 
28.10.13
13:19
(36) в документе в табличной части 2 реквизита "номенклатура" и "количество". В документе записана одна строчка. Документ не типовой, я его сам создал, больше ничего в нем нет
41 Wobland
 
28.10.13
13:20
(39) алгоритм должен устойчиво работать на всех возможных входных условиях. а ты пытаешься реализовать частный случай - для одной первой строки
42 r2d24
 
28.10.13
13:20
(38) на форме документа создал кнопку "обработать"
43 Wobland
 
28.10.13
13:20
(40) и номенклатура строковая. неплохо придумано
44 1dvd
 
28.10.13
13:22
(42) ок. попробуй так:

Для Каждого СтрокаТабЧас1 Из ТабЧас1 Цикл
    Если СокрЛП(СтрокаТабЧас1.Номенклатура) = "Молоко" Тогда
        Сообщить("есть Молоко");
    КонецЕсли;
КонецЦикла;
45 Wobland
 
28.10.13
13:23
и это мы ещё не дошли до главного вопроса: на зачем?
46 anaed
 
28.10.13
13:23
(43) пасан идет к успеху, чо :)
(40) если ТабЧас1 это название ТЧ, то (44) должно подтолкнуть тебя в верном направлении.  А условие все таки будет зависеть от типа реквизита ТЧ Номенклатура, который ты нам отказываешься сообщать.
47 1dvd
 
28.10.13
13:25
(46) см (12)
48 anaed
 
28.10.13
13:26
(47) шедеврально :)
49 r2d24
 
28.10.13
13:30
Значит для условия необходим был цикл. А я планировал цикл сделать после. Извиняюсь за свою тупость. И спасибо, что помогли.
50 1dvd
 
28.10.13
13:30
Аллилуя!
51 Wobland
 
28.10.13
13:30
(49) нене, не убегай. что ты собирался делать в цикле после?
52 Холодильник
 
28.10.13
13:43
строковая номенклатура в ТЧ - это сильно. Это очень брутально
53 Rovan
 
гуру
28.10.13
13:44
(49)
Если ТабЧас1[0].Номенклатура = "Молоко" Тогда
54 Enders
 
28.10.13
13:53
Только строка, только хардкор
55 Холодильник
 
28.10.13
14:03
через пару месяцев ТС сообразит, что лучше б было, если у пользователя будет выбор номенкалтуры из справочника.
так родится справочник Номенклатура..

Но будет уже поздно - пользователи привыкнут к строке и их хрен отучишь то неё)
56 maksim358
 
28.10.13
14:18
опять пятница чтоли?))