|
v7: Не выбран элемент ! 🠗 (povar 18.01.2012 09:12) | ☑ | ||
---|---|---|---|---|
0
MixanM
18.01.12
✎
05:41
|
всем добрый день, случиласть такая трабла: имеется код:
СпрЕдиницыОЛЕ = БазаОле.CreateObject("Справочник.Единицы"); СпрОЛЕ = БазаОле.CreateObject("Справочник.Номенклатура"); СпрЕдиницыОЛЕ2 = БазаОле.CreateObject("Справочник.Единицы"); СпрОЛЕ2 = БазаОле2.CreateObject("Справочник.Номенклатура"); СпрОЛЕДляПоискаПоКоду = БазаОле.CreateObject("Справочник.Единицы");//создал второй , ибо слетает курсор с первой rulf шарит по единицам СпрЕдиницы.ВыбратьЭлементы() ; СпрЕдиницыОЛЕ.ВыбратьЭлементы(0); Пока СпрЕдиницыОЛЕ.ПолучитьЭлемент() = 1 Цикл ШК = СпрЕдиницыОЛЕ.ШтрихКод; ИмяОЛЕ = СпрЕдиницыОЛЕ.Владелец.Наименование; Если СпрЕдиницы.НайтиПоРеквизиту("ШтрихКОД", ШК, 1) = 1 Тогда ИмяСпр = СпрЕдиницы.ТекущийЭлемент().Владелец.наименование; КодСпр = СпрЕдиницы.ТекущийЭлемент().Владелец.Код; //Сообщить("кодСпр : "+КодСпр); СпрЕдиницыОЛЕ2.ВыбратьЭлементы(); СпрЕдиницыОЛЕ2.НайтиПоРеквизиту("ШтрихКод", ШК, 1 ); Если СпрЕдиницыОЛЕ2.НайтиПоРеквизиту("ШтрихКод", ШК, 1 ) = 1 Тогда ИмяОЛЕ2 = СпрЕдиницыОЛЕ2.Владелец.Наименование; Иначе Сообщить("Такой ШК в базе 2 не найден"); КонецЕсли; Если (ИмяСпр <> ИмяОЛЕ) и (ИмяСпр <> ИмяОЛЕ2) Тогда СпрЕдиницыОЛЕ2.ВыбратьЭлементы(); СпрЕдиницыОЛЕ2.НайтиПоРеквизиту("ШтрихКод", ШК, 1 ); Если СпрЕдиницыОЛЕ2.НайтиПоРеквизиту("ШтрихКод", ШК, 1 ) = 1 Тогда ИмяОЛЕ2 = СпрЕдиницыОЛЕ2.Владелец.Наименование; Иначе Сообщить("Такой ШК в базе 2 не найден"); КонецЕсли; Вопр = Вопрос("Расхождение названия для шк : "+ШК+" Нажмите ""Да"" чтобы использовать наименование текущей базы, |или ""Нет"" для использования имени из Переферийной Базы : " +Симв(13)+"1 :"+ИмяСПР+" (текущая База)" +Симв(13)+"2 :"+ИмяОЛЕ+" (преферийная База)" +Симв(13)+"2 :"+ИмяОЛЕ2+" (преферийная База 2)", 3); Если Вопр = 6 Тогда Сообщить("Наименование Взяли из текущей "); СпрОЛЕ.НайтиПоНаименованию(ИмяОЛЕ, 0); СпрОЛЕ.Наименование = ИмяСпр; СпрОЛЕ.ПолнНаименование = ИмяСпр; СпрОЛЕ.Записать(); //СпрЕдиницыОЛЕ2.Владелец.Наименование = ИмяСпр; СпрОЛЕ2.ВыбратьЭлементы(); СпрОЛЕ2.НайтиПоНаименованию(ИмяОле2, 0); СпрОЛЕ2.Наименование = ИмяСпр; // и вот в этом месте ругается СпрОЛЕ2.ПолнНаименование = ИмяСпр; СпрОЛЕ2.Записать(); хотя для СпрОЛЕ все проходит нормальн, а вот на элементе СпрОЛЕ2 уже ругается, кто нибудь сталкивался? |
|||
1
skunk
18.01.12
✎
05:45
|
исправить это
на это
|
|||
2
MixanM
18.01.12
✎
05:46
|
так и было - результат тот же, это я дописал минуту назад
|
|||
3
DJ Anthon
18.01.12
✎
05:46
|
наверное, поиск неудачный. сделай проверку в НайтиПоНаименованию = 1 и только тогда записывай
|
|||
4
DJ Anthon
18.01.12
✎
05:47
|
(1) это фиолетово
|
|||
5
MixanM
18.01.12
✎
05:52
|
(4)так же
|
|||
6
MixanM
18.01.12
✎
05:53
|
(4) всмысле при проверке - не находит элемент, хотя странно, я же реквизит для поиска указал как имя владельца текущего элемента...
|
|||
7
Rie
18.01.12
✎
05:54
|
(0) "Ругается" - это как? Наверное, сообщение какое-то выдаёт?
|
|||
8
MixanM
18.01.12
✎
05:59
|
(7) ну да) я сделал так :
Если СпрОЛЕ2.НайтиПоНаименованию(ИмяОле2, 0) = 1 Тогда СпрОЛЕ2.Наименование = ИмяОЛЕ; СпрОЛЕ2.ПолнНаименование = ИмяОЛЕ; СпрОЛЕ2.Записать(); Иначе Сообщить("хххх"); КонецЕсли; и он не находит элемент, хотя здесь : Вопр = Вопрос("Расхождение названия для шк : "+ШК+" Нажмите ""Да"" чтобы использовать наименование текущей базы, |или ""Нет"" для использования имени из Переферийной Базы : " +Симв(13)+"1 :"+ИмяСПР+" (текущая База)" +Симв(13)+"2 :"+ИмяОЛЕ+" (преферийная База)" +Симв(13)+"2 :"+ИмяОЛЕ2+" (преферийная База 2)", 3); он его показывает корректно. Идем дальше , сделал так : СпрЕдиницыОЛЕ2.Владелец.Наименование = ИмяСпр; СпрЕдиницыОЛЕ2.Владелец.Наименование.ПолнНаименование = ИмяСпр; СпрЕдиницыОЛЕ2.Владелец.Наименование.Записать(); пишет : Значение не представляет агрегатный объект (ПолнНаименование)... отака х, малята (( |
|||
9
Rie
18.01.12
✎
06:00
|
(8) СпрЕдиницыОЛЕ2.Владелец.Наименование.ПолнНаименование - вот это что за бред?
СпрЕдиницыОЛЕ2.Владелец.Наименование - это ведь строка! |
|||
10
MixanM
18.01.12
✎
06:04
|
(9) это не бред, это один из реквизитов справочника =)
про "СпрЕдиницыОЛЕ2.Владелец.Наименование - это ведь строка!" не совсем понял |
|||
11
Rie
18.01.12
✎
06:07
|
(10) У строк не бывает реквизитов!
Наименование элемента справочника имеет тип СТРОКА. Возможно, ты имел в виду СпрЕдиницыОЛЕ2.Владелец.ПолнНаименование? Но так присваивать тоже нельзя: спрЕдиницыОЛЕ2.Владелец - это лишь ссылка на элемент справочника, а не сам элемент. Ссылке реквизиты менять нельзя. |
|||
12
MixanM
18.01.12
✎
06:08
|
(11) понял, буду значит копать в сторону :
Если СпрОЛЕ2.НайтиПоНаименованию(ИмяОле2, 0) = 1 Тогда СпрОЛЕ2.Наименование = ИмяОЛЕ; СпрОЛЕ2.ПолнНаименование = ИмяОЛЕ; СпрОЛЕ2.Записать(); Иначе Сообщить("хххх"); КонецЕсли; |
|||
13
MixanM
18.01.12
✎
06:57
|
нашел в чем косяк, оказывается у адинэс проблемы с позиционированием для поиска в одном справочнике, создал второй и запело.
|
|||
14
Ковычки
18.01.12
✎
07:03
|
никакой проблемы нет
|
|||
15
filh
18.01.12
✎
08:16
|
(13) косяк в ДНК.
|
|||
16
1Сергей
18.01.12
✎
09:02
|
Весь код в топку
|
|||
17
ЧеловекДуши
18.01.12
✎
09:10
|
(15)Поддерживаю с теорию с ДНК :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |