Имя: Пароль:
1C
 
как найти элемент по реквизиту в подчиненном справочнике?
0 Анютик
 
16.02.06
11:08
Есть такой код:
Если ТоварНов.Выбран() = 1 Тогда  
  спрПартии.ИспользоватьВладельца(ТоварНов);  
  Если спрПартии.НайтиПоРеквизиту("ПартияОсн",ТаблИтогов.Партия,1)=0 Тогда
    спрПартии.Новый();
...                
    спрПартии.Записать();
  КонецЕсли;    
КонецЕсли;

Но почему-то он находит элемент с такой же партией, но другим владельцем. где я ошиблась?
1 Бешенная Нога
 
16.02.06
11:10
запросом
2 Guk
 
16.02.06
11:13
Если ТоварНов.Выбран() = 1 Тогда  
  спрПартии.ИспользоватьВладельца(ТоварНов.ТекущийЭлемент());  
  Если спрПартии.НайтиПоРеквизиту("ПартияОсн",ТаблИтогов.Партия,0)=0 Тогда
    спрПартии.Новый();
...                
    спрПартии.Записать();
  КонецЕсли;    
КонецЕсли;
3 Анютик
 
16.02.06
11:15
счас попробую
4 Бешенная Нога
 
16.02.06
11:17
(3)удачи
5 Анютик
 
16.02.06
11:18
(2) не-а:(
6 Андрюха
 
16.02.06
11:19
(5) Значит, переходи на 8-ку-ку :)
7 Токс
 
16.02.06
11:20
Он находит... в условии =0
(5) Как узнала, что именно находит?
8 Бешенная Нога
 
16.02.06
11:23
(5) че неа? все должно работать?

Девушка, а вы уверенны что у вас устанавливается подчинение,
что-то уменя подозрения, что ТоварНов - расположен на форме
(реквизит) и обращение к нему как ТоварНов.ТекущийЭлемент()
как минимум некорректно.
такое возможно если создали ТоварНов через создать объект,
а потом на нем спозиционировались.

вообще даваете весь код сюда, чтобы развеять сомнения
9 Бешенная Нога
 
16.02.06
11:26
для варианта когда ТоварНов - реквизит формы

Если ТоварНов.Выбран() = 1 Тогда  
  спрПартии.ИспользоватьВладельца(ТоварНов);  
  Если спрПартии.НайтиПоРеквизиту("ПартияОсн",ТаблИтогов.Партия,0)=0 Тогда
    спрПартии.Новый();  
    спрПартии.Записать();
  Иначе
    Если СпрПартии.Владелец=ТоварНов Тогда
      Сообщить("все нормально, этот элемент существует в указанном подчинении");
    Иначе
      Сообщить("Подчинение не установилось, найден левый элемент");
    КонецЕсли;        
  КонецЕсли;    
КонецЕсли;
10 Guk
 
16.02.06
11:28
(8) Так как я не знал как она получила спозиционированный ТоварНов, то написал ТекущийЭлемент(). Хотя если ТоварНов - реквизит формы, то установление владельца с ТекущийЭлемент, всё равно прокатит...
11 Анютик
 
16.02.06
11:29
(10) тем не менее не прокатило:(
12 Бешенная Нога
 
16.02.06
11:29
(10) а, точно, я твой код за ее принял...

Девушка, провероьте код приведенный в (9) скажите нам о результатах
13 Анютик
 
16.02.06
11:29
(7) через отладчик смотерла, как еще-то?
14 Бешенная Нога
 
16.02.06
11:30
ну так ты сделаешь или нет?
что он написал?
15 Анютик
 
16.02.06
11:31
(14) счас как (9) попробую
16 Токс
 
16.02.06
11:33
(11) Там суть не в ТекущемЭлементе()... а в смене 1 на 0... если что... если не заметила... вдруг...
17 Анютик
 
16.02.06
11:35
(16) с 1 и 0 - все правильно
18 Бешенная Нога
 
16.02.06
11:35
(17) что вы имеете ввиду?
19 Бешенная Нога
 
16.02.06
11:36
короче вставь код (9) в свой модуль,
сохрани, запусти и скажи какую строчку он выдал,
на данном этапе от тебя больше ничего не требуется
20 Анютик
 
16.02.06
11:36
(18) если не найден - т.е. =0, то создать новый. Разве не так?
21 Анютик
 
16.02.06
11:37
(19) :-|
22 Бешенная Нога
 
16.02.06
11:37
(20)нет так

НайтиПоРеквизиту(<ИмяРеквизита>,<Значение>,<ФлагГлобальногоПоиска>)
Назначение:
Найти элемент справочника по значению реквизита.
Возвращает: 1 - если действие выполнено;
0 - если действие не выполнено (элемент не найден).
Параметры:
<ИмяРеквизита> - строка с наименованием реквизита;
<Значение> - значение реквизита для поиска;
<ФлагГлобальногоПоиска> - флаг поиска:
 0 - поиск выполняется в пределах подчинения справочника,
 1 - поиск выполняется по всему справочнику.
Замечание:
Метод можно использовать только для реквизитов с установленным признаком ''Сортировка''.
Метод  можно использовать только для объектов, созданных функцией СоздатьОбъект.
23 Бешенная Нога
 
16.02.06
11:38
почувствуй разницу
спрПартии.НайтиПоРеквизиту("ПартияОсн",ТаблИтогов.Партия,0)
спрПартии.НайтиПоРеквизиту("ПартияОсн",ТаблИтогов.Партия,1)

прочитай предыдущий пост и пойми чем различаются эти строчки
24 Бешенная Нога
 
16.02.06
11:38
короче где ответ на (19)?
25 Guk
 
16.02.06
11:40
Если ветка дойдет постов до 50-ти, я наверное не удивлюсь, но окуею точно...
26 Анютик
 
16.02.06
11:40
(24)...короче, про 1...я опечатку сделала...вообще про нее и не думала. мне показалось, что в логике ошибку нашли. прошу прощения.
27 Бешенная Нога
 
16.02.06
11:40
(25) что поделаешь... люди учаться
28 Бешенная Нога
 
16.02.06
11:42
(26)ты издеваешься чтоли?

у тебя может быть 3 варианта
1.Пустая строка
2.Все нормально, этот элемент существует в указанном подчинении
3.Подчинение не установилось, найден левый элемент

скажи ответ!!!
29 Анютик
 
16.02.06
11:42
(26,27)а подскажите, где раздают детишков со врожденным знанием 1С 7.7 и 8.0?
согласна, косяк мой - невнимательность. Опечатки, простите, сложнее всего ищутся(собственные в смысле). Скажите еще, что с вами такого не бывает!
30 Анютик
 
16.02.06
11:42
(28) да пустая строка
31 Анютик
 
16.02.06
11:43
говорю же опечатку сделала
32 Бешенная Нога
 
16.02.06
11:43
(30) вопрос решен?
33 Анютик
 
16.02.06
11:44
он еще в 26 решен был:))
34 Бешенная Нога
 
16.02.06
11:45
вот и славненько...
а вы случайно не блондинка?
и кстати, ты все отказываешь в авторизации?
35 Анютик
 
16.02.06
11:46
(34) случайно не блондинка:)) а про авторизацию - ник какой?
36 Токс
 
16.02.06
11:47
Ответ в (2)... дальше нарезка древесины тоненькими ломтиками...
37 Анютик
 
16.02.06
11:47
:)))))
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший