получение реквизита по COM #278005


#0 by selenat
Завел в семерочной базе у двух документов по новому реквизиту типа строка (длина 25). Называются одинаково (название вводил копированием, чтоб не ошибиться). Подрубаюсь из 8 по COM. Из документа одного типа считываю этот реквизит без проблем (строка), из второго возвращается значение и тип реквизита "СОМобъект". Чего я не догоняю?
#1 by Ювелир
Так - то сложно сказать, давай код!
#2 by selenat
ок. щас.
#3 by selenat
#4 by pajaro
может быть, где-нибудь остается старое значение? попробуй перед присвоением обнулять.
#5 by selenat
в отладчике вижу, что ДокРеализация - уже новый документ. По его номеру вижу (который кстати читается нормально). А нужный мне реквизит не читается. Два раза проверил тип и скопировал назавние реквизита, чтобы при ручном наборе не ошибиться...
#6 by selenat
Щас попробую удалить реквизит и создать заново. Жаль, данные потеряются...
#7 by pajaro
может, сначала попробуешь переименовать? хотя есть подозрение, что дело все же в твоем коде.
#8 by Ювелир
в принципе, желательно инициализировать, но при такой симптоматике и такой программе (чистое присваивание) влияние - маловероятно. Попробуй имя переменной сменить.
#9 by Ювелир
"НомерПоступления"
#10 by pajaro
весь код не видно, присваивание номера происходит в условии, а один из требуемых документов может иметь слегка другое название. не говорю, что это так, но как пример. я в таких случаях (когда в цикле требуется работа лишь со значениями, удовлетворяющими условию) предпочитаю отсеивать лишнее в самом начале: ...
#11 by Immortal
у номера какой тип данных?
#12 by selenat
(8-10) Переменная ни при чем. Я в отладчике вижу значение ДокРеализация.НомерПоступления. И для документа вида "РеализацияМатериалов")  оно выдает такую фигню. Строка[25].
#13 by Immortal
а так?
#14 by Immortal
+ без присваивания?
#15 by Ювелир
согласен, я принимал, что это типа весь код... остались только не очевидные причины ошибок, типа номер поступления в табличной части типа товары и т.п. о которых можно только гадать.
#16 by selenat
это мысль. сек
#17 by selenat
нет других доков с похожим названием. Я же говорю, что в отладчике смотрю - получаю в выборке нужный док. (15.2) нет такого... выдает в окне сообщений COMОбъект
#18 by Immortal
у тебя там точно строка в этом реквизите в этом документе???? в 7 нада бы проверить..
#19 by selenat
несколько раз проверял. Название вставлял копированием из другого дока, где работает (чтоб в написании не ошибиться)...
#20 by pajaro
может, ты у него галку периодический задел?
#21 by selenat
а реквизит дока может быть периодическим? :)
#22 by pajaro
а, ну да. :)
#23 by Ювелир
Ну и прикол...
#24 by pajaro
1. у документа вообще ни один текстовый реквизит не виден или только этот? 2. проверял ли ты, не видно у одного конкретного документа или у всех документов данного вида?
#25 by selenat
1. Именно этот. Номер дока к примеру виден. 2. У всех доков данного типа. Щас удалил реквизит и создал его заново. Та же херня...
#26 by pajaro
и вообще, если это комобъект, то можно попробовать выяснить его тип. способов - масса. например, значение в строку внутр значение изстрокивнутр + тип значения стр
#27 by Immortal
в чём прикол?
#28 by selenat
не включился. значение в строку внутр даст мне строку. Обратно - снова объект (еси еще ковычек добавлю). Как это мне поможет?
#29 by Ювелир
Может проверить принцип на каком-нибудь другом типе документа? точно не в табличной части реквизит?
#30 by selenat
1. на документе РеализацияПродукции работает. 2. Точно нет...
#31 by Ювелир
заполнить реквизит документа "НомерДокумента" значением "COMОбъект" - это бааальшой прикол.
#32 by pajaro
что-то вроде этого:
#33 by selenat
понял: V7.EvalExpr("ТипЗначенияСтр(ЗначениеИзСтрокиВнутр(""" + СтрЗаменить(V7.ЗначениеВСтрокуВнутр(ДокРеализация.НомерПоступления),"""","""""") + """))") Значение - "Строка". Тип - "Строка".
#34 by Immortal
а.. так он же при указании любого из типов кроме примитивных в реквизите и будет писать комобъект
#35 by Immortal
мда..чудюса прям
#36 by Immortal
может попробовать создавать менеджер не "Документ" а именно указание на конкретный вид ? т.е. Документ.РеализацияПродукции.. это уже так, тык в небо
#37 by pajaro
хаха! так может у тебя действительно , то есть вместо реального номера поступления написано "COMОбъект"?
#38 by pajaro
видимо, заполнял по оле, чего-то недоучел вот и заполнилось :))
#39 by selenat
щас еще одну вещь попробую, еси не получится, то сделаю так...
#40 by Immortal
=) наврят ли=)
#41 by Immortal
+ сама по себе строка ComОбъект не вызывет ошибки
#42 by pajaro
ну-ка, интересно, а если само значение так же посмотреть:
#43 by selenat
Так вот. В доке РеализацияМатериалов переименовал НомерПоступления в НомПост. В обработке сделал КонецЕсли; Сработало нормально. Теперь другие приколы начались...
#44 by Immortal
чума, где ты такую базу достал=))
#45 by Ювелир
Присоединяюсь, просто ВАУ! Хотя может все объяснимо версией платформы?
#46 by selenat
сам поражаюсь. Теперь проблема с тем, что ДокРеализация.Товар.Код не дает результат. Тоже реквизит Товар в обоих доках есть (естественно это уже при построчном переборе дока)...
#47 by selenat
щас еще попробую ...
#48 by ДимонЫЧ
Привет, мож я и не в тему, но очень близко. Подцепился через com к 7-ке. Типа получаю запись журнала расчета. Все считывается на ура, кроме млин атрибутов периода регистрации. Пишет "Несоответствие типов ". Причем даже описатель периода не берет. Этож ваще строка. Подскажите, можь кто сталкивался с такой проблеммой?
#49 by ДимонЫЧ
подцепляюсь из 8.1
#50 by selenat
из журнала расчета я как-то вытягивал данные по ОЛЕ из 7. Но уже не помню. Что надо было - получалось. А вот вариант получился. Причем даже с одинаковыми названиями реквизитов. Всем спасибо за помощь!
#51 by ДимонЫЧ
#52 by selenat
а ты попробуй что-нить типа , чтоб просмотреть тип объета...
#53 by pajaro
зачем, итак ясно - в 7 и 8 типы дата не совпадают. Если так:
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С