Вход | Регистрация
 

Как сделать тип Long для VB

Как сделать тип Long для VB
Я
   simol
 
09.09.06 - 21:09
Имею код:
   swApp = Новый COMОбъект("SldWorks.Application");
   Перем3 = 0;
   Перем4 = 0;
   swModel = swApp.OpenDoc6("D:\SW+1C\SW+1C\АТ.ХХХХХХ.111.SLDPRT", 1,1, "", Перем3, Перем4);
Вот описание функции:
retval = SldWorks.OpenDoc6 ( filename, type, options, configuration, &Errors, &Warnings )
где
Output:
(long) Errors
Load errors as defined in swFileLoadError_e

Output:
(long) Warnings
Warnings or extra information generated during the open operation as defined in swFileLoadWarning_e

При выполнении кода пишет несоответствие типов, параметры обязательные и в VB работает.
Подскажите как 1С должна передать переменную ,чтобы VB принял ее как тип Long.
 
 
   АперБот
 
1 - 09.09.06 - 22:10
Поднимать тяжести тяжело, а ветки легко. Достаточно добавить в них сообщение
   simol
 
2 - 10.09.06 - 20:04
up
   dimoff
 
3 - 10.09.06 - 20:59
Из описания функции совершенно не следует, что параметры имеют тип Long, Более того, описание функции вообще какое-то, мало похожее на стандарты описания функций в VB
   dimoff
 
4 - 10.09.06 - 21:01
Тип Long имеет возвращаемое функцией значение
   simol
 
5 - 11.09.06 - 12:47
(3) вот описание функции
Syntax (OLE Automation)

retval = SldWorks.OpenDoc6 ( filename, type, options, configuration, &Errors, &Warnings )

 

Input:
(BSTR) Filename
Document name or full path if not in current directory, including extension

Input:
(long) Type
Document type as defined in swDocumentTypes_e

Input:
(long) Options
Mode in which to open the document as defined in swOpenDocOptions_e

Input:
(BSTR) Configuration
Model configuration in which to open this document

Applies to parts and assemblies, not drawings

If this argument is empty or the specified configuration is not present in the model, the model is opened in the last-used configuration.

Output:
(long) Errors
Load errors as defined in swFileLoadError_e

Output:
(long) Warnings
Warnings or extra information generated during the open operation as defined in swFileLoadWarning_e

Return:
(LPDISPATCH) retval
Pointer to a Dispatch object, the newly loaded ModelDoc2, or NULL if failed to open
   simol
 
6 - 11.09.06 - 12:47
(4) Вот текст ошибки:
{Форма.Форма(43)}: Ошибка при вызове метода контекста (OpenDoc6): Типы не совпадают (5)
    swModel = swApp.OpenDoc6("D:\SW+1C\SW+1C\АТ.ХХХХХХ.111.SLDPRT", 1,1, "", Перем3, Перем4);
по причине:
Типы не совпадают (5)
   simol
 
7 - 11.09.06 - 13:35
up
   774816
 
8 - 11.09.06 - 13:46
в 1с не такого понятия обьявление переменных как лонг или интегер (к сожалению)
ты можешь только определить переменную присвоивь ему значение
попробуй убери
вот это
Перем3 = 0;
Перем4 = 0;
пусть определиться во время выполнения может поможет
   774816
 
9 - 11.09.06 - 13:49
а что за прога и для чего SldWorks?
   simol
 
10 - 11.09.06 - 14:11
(8) Такое пробовал, если тип Перем3 и перем4 Неопределено, то ошибка такаяже.
(9) Я с помощью 1С открываю сборка SolidWorks и заполняю(изменяю) справочник спецификаций в УПП
 
 Рекламное место пустует
   774816
 
11 - 11.09.06 - 14:34
покажи код в VB
   simol
 
12 - 11.09.06 - 14:49
(11) Я не понял что показать.
Я получил перечень деталей входящих в сборку. И мне надо открыть последовательно эти детали и считать с них свойства.
Вот как получить перечень деталей:

Процедура TraverseComponent(swComp, nLevel)

    sPadStr = "";
    
    Для i = 0 По nLevel - 1 Цикл
        sPadStr = sPadStr + "  ";
    КонецЦикла;

    vChildComp = swComp.GetChildren;
    Для  i = 0 По vChildComp.GetLength(0) - 1 Цикл
        swChildComp = vChildComp.GetValue(i);
        TraverseComponent(swChildComp, nLevel + 1);
        Сообщить(sPadStr + swChildComp.Name2 + " <" + swChildComp.ReferencedConfiguration + "> " + swChildComp.GetPathName);
    КонецЦикла;    

КонецПроцедуры

Процедура КнопкаВыполнитьНажатие(Кнопка)

    swApp = Новый COMОбъект("SldWorks.Application");
    swModel = swApp.ActiveDoc;
    Если swModel = Неопределено Тогда
        Возврат;
    КонецЕсли;
    swConf = swModel.GetActiveConfiguration;
    swRootComp = swConf.GetRootComponent;

    Сообщить("File = " + swModel.GetPathName);

    TraverseComponent(swRootComp, 1);

КонецПроцедуры
   simol
 
13 - 11.09.06 - 14:55
(11) Я не конял что именно показать. Но суть вовпроса в том, что я получаю имена файлов деталей из которых состоит сборка и мне надо их последловательно открыть, чтобы прочитать свойства. Перечень получаю так:

Процедура TraverseComponent(swComp, nLevel)

    sPadStr = "";
    
    Для i = 0 По nLevel - 1 Цикл
        sPadStr = sPadStr + "  ";
    КонецЦикла;

    vChildComp = swComp.GetChildren;
    Для  i = 0 По vChildComp.GetLength(0) - 1 Цикл
        swChildComp = vChildComp.GetValue(i);
        TraverseComponent(swChildComp, nLevel + 1);
        Сообщить(sPadStr + swChildComp.Name2 + " <" + swChildComp.ReferencedConfiguration + "> " + swChildComp.GetPathName);
    КонецЦикла;    

КонецПроцедуры


Процедура КнопкаВыполнитьНажатие(Кнопка)

    swApp = Новый COMОбъект("SldWorks.Application");
    swModel = swApp.ActiveDoc;
    Если swModel = Неопределено Тогда
        Возврат;
    КонецЕсли;
    swConf = swModel.GetActiveConfiguration;
    swRootComp = swConf.GetRootComponent;

    Сообщить("File = " + swModel.GetPathName);

    TraverseComponent(swRootComp, 1);

КонецПроцедуры
   simol
 
14 - 11.09.06 - 14:56
(11) Я не конял что именно показать. Но суть вовпроса в том, что я получаю имена файлов деталей из которых состоит сборка и мне надо их последловательно открыть, чтобы прочитать свойства.
   774816
 
15 - 11.09.06 - 15:18
я к тому что ты писал на счет
<При выполнении кода пишет несоответствие типов, параметры обязательные и в VB работает.>
   774816
 
16 - 11.09.06 - 15:23
есть описание значений этих объектов
swFileLoadError_e или этой swFileLoadWarning_e
   simol
 
17 - 11.09.06 - 16:53
(15)Вот открытие на VB:
   Sub main()
   Dim nErrors                 As Long
   Dim nWarnings               As Long
    Set swApp = Application.SldWorks
    Set swDrawModel = swApp.OpenDoc6("D:\SW+1C\SW+1C\??.??????.222.SLDPRT", swDocPART, swOpenDocOptions_Silent, "", nErrors, nWarnings)
    End Sub
(16)Поидее это константы, вот что есть по swFileLoadError_e
swFileLoadError_e  
Specifies possible values for file load errors.
swGenericError - Another error was encountered.
swFileNotFoundError - Unable to locate the file. The file is not loaded or the referenced file (that is, component) is suppressed.
swFileWithSameTitleAlreadyOpen - A document with same name is already open.

These enumerators were obsoleted as of SldWorks::OpenDoc6 and moved to swFileLoadWarning_e:
swIdMatchError
swReadOnlyWarn
swSharingViolationWarn
swDrawingANSIUpdateWarn
swSheetScaleUpdateWarn
swNeedsRegenWarn
swBasePartNotLoadedWarn
swFileAlreadyOpenWarn
swInvalidFileTypeError
swDrawingsOnlyRapidDraftWarn
swViewOnlyRestrictions
swFutureVersion
swViewMissingReferencedConfig
swDrawingSFSymbolConvertWarn

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует