Имя: Пароль:
1C
1С v8
Поиск элемента справочника в Рознице
0 Alekzander
 
06.02.13
01:18
Всем доброй ночи. Делаю внешнюю обработку для себя, в Розницу 1.0, ищу в ТЧ Товары док-та ПТУ характеристики и пихаю их в справочник. Нужно найти элементы справочника ХарактеристикаНоменклатуры по наименованию характеристики, но дело в том, что по реквизиту я не могу организовать поиск - реквизита "Наименование" в справочнике нет. А требуется проверить, есть ли там тот же элемент, или нет. Вот код цикла по обработке ТЧ:

Для каждого Строка из Док.Товары Цикл
       Спр = Справочники.ХарактеристикиНоменклатуры;
       Спр.НайтиПоРеквизиту("Наименование", Строка.ХарактеристикаНоменклатуры);
       Если НЕ ЗначениеЗаполнено (Спр.Наименование) Тогда
            Спр1 = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
            Спр1.Наименование = Строка.ХарактеристикаНоменклатуры;
            Спр1.Владелец = СТрока.Номенклатура;
            Спр1.Записать();
       КонецЕсли;
   КонецЦикла;

Подскажите, как мне организовать поиск? Заранее спасибо.
1 Alekzander
 
06.02.13
01:20
PS в строку Спр1.Наименование = Строка.ХарактеристикаНоменклатуры данные пишутся, то есть как будто бы реквизит есть - и в то же время по нему поиск вроде как невозможен...
2 DrShad
 
06.02.13
01:21
НайтиПоНаименованию
3 DrShad
 
06.02.13
01:21
(1) и пихать в Наименование ссылку не кошерно
4 DrShad
 
06.02.13
01:23
и на будущее Наименование не реквизит, а стандартный реквизит
5 Alekzander
 
06.02.13
01:23
(2) и что я туда затолкаю? ту же Строка.ХарактеристикаНоменклатуры?
6 H A D G E H O G s
 
06.02.13
01:24
(2) Хорошую, годную ты западню на нуба соорудил, респект и уважуха.
7 H A D G E H O G s
 
06.02.13
01:26
Я никуя не понял.
Семерошник штоле (их иногда клинит в понимании сущности "Ссылка"), или в другую базу что то грузишь
8 Alekzander
 
06.02.13
01:27
(7) не семёрошник, просто начинающий
9 H A D G E H O G s
 
06.02.13
01:29
(8) Зачем ты ищешь по наименованию? Цель?
10 DrShad
 
06.02.13
01:31
(9) ну если хочет, пусть ищет - я не против
11 Alekzander
 
06.02.13
01:32
(9) Чтобы смотреть, есть ли уже такая характеристика или нет.
12 DrShad
 
06.02.13
01:32
и где ты это смотришь?
13 H A D G E H O G s
 
06.02.13
01:32
(11) Она есть. Инфа 100%
14 DrShad
 
06.02.13
01:32
весь твой код нужно сжечь
15 DrShad
 
06.02.13
01:33
Строка.ХарактеристикаНоменклатуры это и есть СправочникСсылка.ХарактеристикаНоменклатуры :))))
16 Alekzander
 
06.02.13
01:34
(14) пусть не идеальный, для себя делаю, на скорую руку
17 DrShad
 
06.02.13
01:35
тогда руку вместе с кодом сжечь
18 DrShad
 
06.02.13
01:36
даже если бы ты написал верно Спр.НайтиПоРеквизиту("Наименование", Строка.ХарактеристикаНоменклатуры);

то он бы в случае когда не нашел возвращал бы пустую ссылку, у которой нет наименования
19 DrShad
 
06.02.13
01:36
проверять нужно в условии на Спр.Пустая()
20 DrShad
 
06.02.13
01:38
но так как ты ищешь Характеристику по Характеристике, то он ее всегда найдет - она ведь есть в документе, значит и в справочнике есть
21 H A D G E H O G s
 
06.02.13
01:39
ЗначениеЗаполнено()
22 H A D G E H O G s
 
06.02.13
01:39
А то всякие составные поля будет собирать на себя и проклинать мистян.
23 DrShad
 
06.02.13
01:43
гы, телепатирую - документ был создан программно и Характеристики искались по наименованию без владельца - теперь при проведении система кричит благим матом что они не соответствую Номенклатуре :)))) и ТС решил создать по владельцу такие же :))))
24 H A D G E H O G s
 
06.02.13
01:46
(23) Это по пацански, норм.!