1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

7.7 Передача Массива В Качестве Параметра

Тема в разделе "Базы данных и администрирование", создана пользователем olga13, 18 апр 2013.

  1. olga13

    olga13 Well-Known Member

    Репутация:
    0
    Регистрация:
    10 окт 2008
    Сообщения:
    208
    Симпатии:
    0
    Добрый день! Подскажите, как можно передать массив, созданный в VBS, в качестве параметра функции 1С?
     
  2. Дайнеко

    Дайнеко Well-Known Member

    Репутация:
    0
    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Не очень понятно. Может приведите текст в 5 строк?
     
  3. vbs

    vbs Well-Known Member

    Репутация:
    0
    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    NB !
    Я никаких массивов не создавал :)
     
  4. olga13

    olga13 Well-Known Member

    Репутация:
    0
    Регистрация:
    10 окт 2008
    Сообщения:
    208
    Симпатии:
    0
    Изначально задача такова: необходимо подключить фискальный регистратор к 1С7.7.
    С помощью ВК производителя не удалось, т.к. для семерки он ее уже не поддерживает. Пытаюсь изобрести велосипед. Проблема в том, что большинство команд требует в качестве параметра массив. Если создать 1С-ный массив, выдает ошибку: "Ожидается скалярное выражение". Попробовала на vba, там все работает:
    Код:
    Private Sub CommandButton1_Click()
    Set MSK = CreateObject("MercuryCom.FPDrv1C2")
    
    FK_Port = CLng(1)
    FK_Port_Speed = CLng(9600)
    FK_Password = CStr("0000")
    FK_Section = CLng(1)
    FK_Nalog = CBool(False)
    FK_Model = CLng(11)
    
    FK_Chek_N = CLng(0)
    FK_Smena = CLng(0)
    
    ReDim pArray(5)
    pArray(0) = FK_Port
    pArray(1) = FK_Port_Speed
    pArray(2) = FK_Password
    pArray(3) = FK_Section
    pArray(4) = FK_Nalog
    pArray(5) = FK_Model
    
    Dim Err_message As String
    Dim Id_device As String
    
    
    MsgBox ("Версия ПО -" + MSK.GetVersion)
    
    If Not MSK.DeviceTest(pArray, Err_message) Then
    MsgBox Err_message
    Exit Sub
    End If
    
    If Not MSK.Open(pArray, Id_device) Then
    MsgBox ("Ошибка 1")
    Exit Sub
    End If
    
    If Not MSK.CashInOutcome(Id_device, 12500) Then
    MsgBox ("Ошибка 2")
    Exit Sub
    End If
    
    End Sub
    И версию выдает, и тест делает, и подключает, и деньги вносит.

    Пытаюсь скрестить с 1С:
    Код:
    Процедура Выполнить()
    
    ККМ = CreateObject("MercuryCom.FPDrv1C2");
    Сообщить(ККМ.ПолучитьНомерВерсии());
    
    TextScript=" 
    |Function Run()
    |
    |FK_Port = CLng(1)
    |FK_Port_Speed = CLng(9600)
    |FK_Password = CStr(0000)
    |FK_Section = CLng(1)
    |FK_Nalog = CBool(False)
    |FK_Model = CLng(11)
    |
    |ReDim pArray(5)
    |pArray(0) = FK_Port
    |pArray(1) = FK_Port_Speed
    |pArray(2) = FK_Password
    |pArray(3) = FK_Section
    |pArray(4) = FK_Nalog
    |pArray(5) = FK_Model
    |
    |End Function
    |";	
    ScrptCtrl = CreateObject("MSScriptControl.ScriptControl");
    ScrptCtrl.Language = "vbscript";
    ScrptCtrl.AddCode(TextScript);  
    ScrptCtrl.Run("Run");
    Массив = ScrptCtrl.eval("pArray");
    
    ККМ.ТестУстройства(Массив);
    
    КонецПроцедуры
    Выдает ошибку: ККМ.ТестУстройства(Массив);
    {D:\1С\ККМ\EXTFORMS\ККМ.ERT(271)}: Типы не совпадают

    У меня мало опыта работы со скриптами. Возможно, я вообще несу чушь. Подскажите, в каком направлении действовать. То ли 1С полученный массив конвертирует в какое-то свое представление, то ли я изначально все неправильно делаю. Если все работает в Visual Basic, то как с ним можно работать из 1С? Какой объект создавать? Буду очень признательна за помощь.

    Добавлено:
    А жаль ))))
     
Загрузка...
Похожие Темы - Передача Массива Качестве
  1. Shmaximus
    Ответов:
    2
    Просмотров:
    1.207
  2. Negent
    Ответов:
    3
    Просмотров:
    1.429
  3. AvasKvas
    Ответов:
    1
    Просмотров:
    5.242
  4. wowa
    Ответов:
    4
    Просмотров:
    73
  5. Corexis
    Ответов:
    0
    Просмотров:
    563

Поделиться этой страницей