Copyright © 2010 Promsite. All Rights Reserved.


Совместное использование 1С Предприятие 7.7 и С++ Builder 6 часть I

Автор Виктор Алексеев aka prom



EvalExpr

Вычислить выражение системы 1С:Предприятие.

Синтаксис:

EvalExpr(<СтрокаВыражения>)

       Англоязычный синоним:
       EvalExpr

Параметры:

       <СтрокаВыражения>
       Строковое выражение — выражение, записанное на встроенном языке 1С:Предприятие.
       Возвращаемое значение:
       Результат вычисленного выражения.

Описание:

       Метод EvalExpr вычисляет выражение, записанное в параметре <СтрокаВыражения> на встроенном языке 1С:Предприятие и возвращает результат вычисления. Результатом выражения может быть число, строка, дата или значение любого агрегатного типа данных. Результат с неопределенным типом данных преобразуются к строковому типу.

Таком образом, для того чтобы подключиться к Серверу надо выполнить последовательность действий:

    * Создать ссылку на объект
    * Произвести инициализацию

Ниже код:

    serv = CreateOleObject("V77s.Application");
    trade = serv.OlePropertyGet("RMTrade");
     if (CheckBox1->State == cbChecked)
       {
          serv.OleProcedure("Initialize", trade,"/DC:\\ETA /NManager","NO_SPLASH_SHOW");
    else
          serv.OleProcedure("Initialize", trade,"",""); //А вот так открывается
         //стартер 1С для выбора и запуска базы.
       }

Некоторые пояснения по строке запуска 1с:

       На форме находится ЧекБокс включенный по умолчанию. Главный его смысл в том, что мне было влом постоянно щелкать на Стартере 1С во время отладки. Поэтому использую по умолчанию путь реальной базы.
Внимание: При написании в строке запуска есть засада:путь надо писать через два обратных слэша, вот так: /DC:\\ETA, а не так как написано везде: /DC:\ETA. (ETA - это у меня каталог где лежит база, у вас д.б. свой). Если напишите неправильно, то будете лицезреть:"Project Project1.exe raised exception class EOleSysError with message 'Ошибка'. Process stopped" и долго мучаться.

       Итак, к базе подключились: и теперь имеем доступ к свойствам и методам объектов 1С. Здесь у нас в распоряжении два способа: через функцию Exec или через OLE-функции. Оба способа равноправны, дело вкуса, я выбрал второй способ, т.к. выражения получаются компактнее. Поэтому с помощью этих функций для примера откроем любой справочник (у меня это справочник Организации, для проверки на типовых надо изменить на Контрагенты). Ниже код и небольшие пояснения:

       ref = serv.OleFunction("EvalExpr","СоздатьОбъект(\"Справочник.Организации\")");
        ref.OleFunction("ВыбратьЭлементы",1);
        while (ref.OleFunction("ПолучитьЭлемент")== 1)
        {
            TreeView1->Items->Add(NULL,ref.OlePropertyGet("Наименование"));
        }
стр. 2
стр. 2
P  R  O  M  S  I  T  E
Статьи по С++Builder 6
страницы: 1   2   3   4   5

Для отображения Облака ссылок
необходим
Adobe Flash Player 9
или выше.

страницы: 1   2   3   4   5