Перенос справочников по оле! Обработка значений неопределенного типа #145477


#0 by Кро
Как узнать тип полученного значения? Ф-я ТипЗначенияСтр возвращает "Ole" Внешняя V7.ТипЗначенияСтр не работает т.е. такой функции объекта V7 не существует как прочитать тип значения по оле?
#0 by Кро
Как узнать тип полученного значения? Ф-я ТипЗначенияСтр возвращает "Ole" Внешняя V7.ТипЗначенияСтр не работает т.е. такой функции объекта V7 не существует как прочитать тип значения по оле?
#1 by skunk
message(V7.EvalExpr(valuetypestr(MyValue))) что возвращает
#2 by Кро
не работает
#3 by ТестПопытка
а что пишет?
#4 by Кро
Надо туда отправить переменную а в ОЛЕ такой переменной нет Если отправить полученное значение то получаем "ОЛЕ : переменная не найдена"
#5 by Кро
переменная неопределена
#6 by Кро
1С:Предприятие: 1    ValueTypeStr(OLE<<?>>) Переменная не определена (OLE)
#7 by Кро
{F:USERSПРОГРАММИСТЫОБЩАЯКЛИЕНТЫМЕТПРОМ103.ERT}: 1С:Предприятие: 1    ValueTypeStr(OLE<<?>>) Переменная не определена (OLE)
#8 by ТестПопытка
а ты создал объект ОЛЕ?
#9 by аля Скунк
тест
#10 by ТестПопытка
чудище.. куда дел скунка..
#11 by Кро
ну а как же??? базу переносим
#12 by аля Скунк
правильно тебе говорит... епоросете... создай в голобальнике переменную типа mainMyValue ее позиционируй... и пробивай за тип
#13 by аля Скунк
в бани он... париться
#14 by Кро
ещё варианты есть???
#15 by Кро
А не подскажите как в эту переменную запихнуть наше значение только не говорите что ещё оле создавать туда
#16 by Кро
Или так же EvalExpr("пер="+пер) Сканает???
#17 by Кро
Не не то Batch...("пер="+пер)
#18 by а ля Скунк
#19 by а ля Скунк
а потом так глядишь message(V7.EvalExpr(valuetypestr(глУсловие2)))
#20 by Кро
чё то я не понял надо тип узнать reference то бишь
#21 by а ля Скунк
тогда вам в баню...
#22 by ТестПопытка
пошляк? :) хам?
#23 by а ля Скунк
и то и другое вместе взятое... балин ну все разжевал... нет... не вкуривает...
#24 by Кро
что такое глУсловие2
#25 by а ля Скунк
Вас зовут Лева Баранов?
#26 by ТестПопытка
а я вот честно говоря мало что понимаю вот так на форуме.. мне видеть у себя на компе проблему надо.. что он там делает? поэтому стараюсь не давать советов..
#27 by Кро
Сам ты Баранов, а я Оксана ну если не понятно, пиши по русски, как для чайников.
#28 by ТестПопытка
пардон мадам..
#29 by Кро
ну раз так OLEServer.глУсловие2 = OLEServer.createobject("Строка,Дата,Число,Неоределённый");
#30 by Кро
....
#31 by ТестПопытка
"Неоределённый" -копировала?
#32 by Кро
Не не поняли если бы я знала что он справочник проблем бы не было
#33 by Alexaha
29. через метаданные не пробовала?
#34 by а ля Скунк
хамите... не буду вам помагать... а еще пожалуюс модераторам, что бы они вас забанили
#35 by Кро
ext.Metadata.Reference(refname).Attribute(n).Type="Неопределённый" ext.Metadata.Reference(refname).Attribute(n).Kind=""
#36 by insider
что это было?
#37 by ТестПопытка
break
#38 by Понтий Пилат
отдыхает
#39 by тень от Скунка
Оксана а вы откуда?
#40 by Кро
без комментариев, у него человек помощи попросил, а он издевается
#41 by тень от Сунка
Оксана, а вы разве не знали, что он такой. У него помощи безполезно просить. Хотите я вам помогу?
#42 by ТестПопытка
скунк не может издеваться.. он в бане.. весь код приводи.. фотку выкладывай.. скажи скунку что-нибудь приятное.. скунк до понедельника, пошел я бухать..
#43 by а ля Скунк
пернатый?
#44 by Кро
Что дальше не знаю?????
#45 by а ля Скунк
аха удачи... только я еще в бане буду... аж до 27 отправили...
#46 by Кро
Function GRC(Val extref,Val extmref,Val mref) Procedure SetRP(Val extmref,Val extref,Val mref,ref,Val nof,Val intownref,Val refname,k)    extrefpar=extref.Parent;    If ext.EmptyValue(extrefpar)=0 Then        If nof=1 Then sref.UseOwner(intownref); EndIf;                If ext.EmptyValue(extrefpar.Parent)=1 Then Return EndIf;                If sref.FindByCode(GRC(extrefpar.Parent,extmref,mref))=1 Then        If DelAll=1 Then            If ownmref.Selected=1 Then                    If extpr="СубСчет10" Then pr="Субсчет"                    ElsIf extpr="Цена" Then pr="Стоимость"                    If extpr="ПорядокХраненияОтпускнойЦены" Then pr=""                    ElsIf extpr="ПлановаяСебестоимость" Then pr=""                    ElsIf extpr="Себестоимость" Then pr="Стоимость"                    ElsIf extpr="СтранаПроисхожд" Then pr="СтранаПроисхождения"                    If extpr="ДатаВводаВЭксплуатацию" Then pr=""                    ElsIf extpr="ФактическийОбъемПродукцииРаботЗаМесяц" Then pr=""                    ElsIf extpr="ДокументПередачаВПроизводство" Then pr=""                    If extpr="ВалютаДоговора" Then pr="Валюта"                        If extattrper=1 Then                            If sobj.Selected=1 Then                                If intattrper=1 Then                            If EmptyValue(senumval)=0 Then                                If intattrper=1 Then        If k/100-Int(k/100)=0 Then Try CommitTransaction; BeginTransaction; Except EndTry; EndIf ~nextref:
#47 by тень от Скунка
Оксана скажи откуда ты?
#48 by Кро
#49 by тень от Скунка
Да. Оксана пошутила.
#50 by Кро
я оттуда откуда ты и предполагаешь ну вы же просили код, вот читайте, может все таки чем поможете
#51 by insider
где не получается? не читать же его целиком... а вообще goto улыбнули...
#52 by Кро
#53 by Кро
If (vts="Число") or (vts="Строка") or (vts="Дата") Then сюда непопадём т.к. vts="OLE"
#54 by insider
там, где проверяешь тип значения через EvalExpr делай, причем вычисляй в OLE-объекте, а не в текущей базе, т.к. в текущей оно всегда "OLE" будет
#55 by Кро
extkind=extattr.Kind Нет у простых типов можно для справочников счетов и т.д.
#56 by insider
не пойму, тебе трудно чтоли? сделай и скажи че вышло
#57 by insider
+56 неривычно в аанглийской нотации код выглядит, трудно разбираю :(
#58 by Кро
Не получится не могу как передать extattr? Message(ext.EvalExpr("ValueTypeStr("+extattr+")")); {F:USERSПРОГРАММИСТЫОБЩАЯКЛИЕНТЫМЕТПРОМ103.ERT}: 1С:Предприятие: 1    ValueTypeStr(OLE<<?>>) Переменная не определена (OLE)
#59 by insider
не то, щас поэкспериментирую, напишу
#60 by Кро
Ну люди добрые где вы ????
#61 by а ля Скунк
балин... точно Баранова в глобальном модуле находишь любую переменую ... описанную на экспорт Перем глУсловие1  Экспорт; далее
#62 by fа ля Скунк
если глобальной переменной нет... то придеться создать
#63 by insider
да, тебе все верно пишут: 1. В базе-источнике создаешь глобальную переменную 2. Во второй базе условие присваиваешь этой переменной и вычисляешь выражение, т.к. через OLE ты агркгатный объект обратно не передашь
#64 by Кро
уговорили, чичас буду пробовать только вот не надо про баранову
#65 by а ля Скунк
превый раз вижу чайника с английским синтаксисом
#66 by а ля Скунк
Кро ты из Тольятти?
#67 by insider
ну это не показатель... хотя интересно Кро, за то что помогли, сделай одолжение, убери goto и забудь про существование этого оператора
#68 by Кро
Из Екатеринбурга
#69 by а ля Скунк
нет просто код да боли знаком... у меня пол конфигурации в таком стиле... я тогда на 1С начинал только писать... стиля не было... какой район?
#70 by insider
хочешь сказать, что это твоя конфа?! интересно...
#71 by а ля Скунк
нет не моя... откуда ей взяться в Свердловске... но палить как похоже
#72 by а ля Скунк
по стилю... код не смотрел... толком
#73 by а ля Скунк
да и за goto убил бы...
#74 by insider
солидарен :) не выношу этого... наверное нервы слабые стали :)))
#75 by а ля Скунк
а так в принципе можно даже похвалить... не каждый возметься универсалку для справочников делать...
#76 by insider
да, эт точно, если оно конечно надо... да тогда через метаданные делать нужно, как в "универсале" - была такая обработка по проклубе или еще где, не помню.
#77 by insider
+76 а еще очень нехорошо отношусь к оле, когда оно не свосем к месту: тормозит эска с ней, имхо юзать файловый обмен тоже совсем не плохо
#78 by а ля Скунк
нет все правильно она делает... в этом плане... а все эти обработки как раз на этом неопределеном значении атрибута и затыкались... ни одной 100% не видал...
#79 by а ля Скунк
а ОЛЯ... это вопрос религии... если все делать правильно... то намного круче чем через файло... файло удобно для трансфера... а если базы локально... то тут ОЛЯ рулит
#80 by insider
точно, вопрос религиозный :) только что на "универсал" еще раз глянул, там проблему решили несколько по-другому: в базе-источнике грузится ert, а база-приемник инициализируется по OLE, интересно, что тип значения ("неопределенный") они определили, так что одна такая обработка все же есть :)
#81 by а ля Скунк
не знаю не видал... а вот копировать лучше наоборот... тянуть информацию по ОЛИ оттуда...
#82 by insider
я так же думаю, а вот как сделали могу привести фрагмент (надеюсь авторы не обидятся): Здесь: врРекв - имя текущего реквизита "того" справочника прТип - искомый тип значения, о чем мы так долго говорили с Кро Остальные переменные думаю понятны.
#83 by а ля Скунк
нет Кро хотела другое ... есть справочник "МойСправочник" ... у него есть реквизит "МойРеквизит" ... его тип не определен... при внесении этому реквизиту могут быть присвоен любой тип... "документ" ... "справочник" ... "строка" ... и т.д. и т.п.  .... вот какой тип значения у этого "МойРеквизит" ей и надо определить... причем у конкретного элемента справочника... метадата здесь не взлетит
#84 by Додельный
Чет не пойму, где проблема то ? При импорте в 8.0 из 7.7 работает такой код : где Соединение - ОЛЕ соединение Объект - ОЛЕ объект к переносу --- Пилять, ну и код, смесь английского с нижегородским. Ну не знаешь языка, так какого из себя строить. И для кого ?!
#85 by а ля Скунк
прежде чем пятки выворачивать... сперва за пробуй...
#86 by Додельный
Это кусок из работающей обработки
#87 by а ля Скунк
я фих знает за 8 ... но в 77 ты получишь лыжи...
#88 by insider
упс... я неправ, действительно не о том написал действительно работает, спасибо за интересную мысль, но как увидеть тип объекта, т.е. определить справочник это или документ возможно, но остальное - это нужно dd или dds ковырять или я неправ?
#89 by Додельный
ЗначениеВСтроку
#90 by insider
если базы разные?
#91 by Додельный
Вообще для скорости я пользую ЗначениеВСтрокуВнутр, поскольку через него можно получить сразу тип, вид, и ид объекта. А для того, чтобы получить идешники метаданных совершенно не обязательно парсить файлы и использовать внешние компоненты. Достаточно той же самой ЗначениеВстрокуВнутр
#92 by Додельный
В смысле ?!
#93 by insider
что-то я не догнал. сформулирую по-другому: в базе-источнике есть спр. "фирмы", номер таблицы например 127 в базе-приемнике такого справочника нет, есть другой (например "ЮрЛица", неважно) и номер таблицы 355, как я смогу использую ЗначениеИзСтрокиВнутр расшифровать то, что пришло из базы-источника, если у меня такого объекта в базе-приемнике отродясь не было?
#94 by а ля Скунк
;)))
#95 by insider
я че, глупость сморозил?
#96 by а ля Скунк
пока я мыслил как сказать... ты уже написал...
#97 by insider
а... так вот я ж задаюсь вопросом, вероятно тогда парсить словарь данных - тогда метод годится как универсальный, а так... хорошо только для однохренственных баз
#98 by а ля Скунк
не знаю не заворачивался... а куда пропала аффтор...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям