Взаимодействие через Ole

Тема в разделе "1C и всё что с ней связано", создана пользователем Antony, 4 сен 2007.

Статус темы:
Закрыта.
  1. Antony

    Antony Гость

    Как через EvalExpr передать элемент справочника "Сотрудники" в функцию базы ЗиК из Бух.учета?
    //--->
    СпрСотрудники = базаЗиК.createobject("Справочник.Сотрудники");

    после там найден нужный сотрудник.

    Далее нужно передать его в функцию, делаю так:

    ТаблицаРеквизитов = базаЗиК.EvalExpr("глПолучитьТаблицуИсторииРеквизитов('"+Сотрудник+"','"+Дата1+"','"+Дата2+"',""СостояниеФизлица,Ставка,ФормаТруда,ГрафикРаботы"")");

    не работает. В чем ошибка?
    За ранее благодарен.
     
  2. LSH

    LSH Гость

    <!--QuoteBegin-Antony+4:09:2007, 14:31 -->
    <span class="vbquote">(Antony @ 4:09:2007, 14:31 )</span><!--QuoteEBegin-->ТаблицаРеквизитов = базаЗиК.EvalExpr("глПолучитьТаблицуИсторииРеквизитов('"+Сотрудник+"','"+Дата1+"','"+Дата2+"',""СостояниеФизлица,Ставка,ФормаТруда,ГрафикРаботы"")");
    [snapback]77193" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Через ОЛЕ можно передавать только простые типы данных (дата, число, строка)
    Следовательно, если некая функция, вызванная через EvalExpr() возвращает НЕ простой тип данных, то к нам она перейдет как тип OLE.

    З.Ы. Через ОЛЕ некорректно передаются дробные числа (округляются), поэтому их предварительно надо преобразовывать в строку.
     
  3. kaa

    kaa Гость

    <!--QuoteBegin-Antony+4:09:2007, 13:31 -->
    <span class="vbquote">(Antony @ 4:09:2007, 13:31 )</span><!--QuoteEBegin-->СпрСотрудники = базаЗиК.createobject("Справочник.Сотрудники");

    после там найден нужный сотрудник.

    Далее нужно передать его в функцию, делаю так:

    ТаблицаРеквизитов = базаЗиК.EvalExpr("глПолучитьТаблицуИсторииРеквизитов('"+Сотрудник+"','"+Дата1+"','"+Дата2+"',""СостояниеФизлица,Ставка,ФормаТруда,ГрафикРаботы"")");
    [snapback]77193" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Попробуйте так
    ТЗ = базаЗиК.EvalExpr(ЗначениеВСтроку("глПолучитьТаблицуИсторииРеквизитов('"+Сотрудник+"','"+Дата1+"','"+Дата2+"',""СостояниеФизлица,Ставка,ФормаТруда,ГрафикРаботы"")"));

    Табло = ЗначениеИзСтроки(ТЗ);
     
  4. Antony

    Antony Гость

    Это я и так знаю, вопрос не в этом. :rolleyes:
    Но все равно спасибо.

    Так нельзя. Все, что указывается после EvalExpr должно быть сформировано в строку.
     
  5. kaa

    kaa Гость

    <!--QuoteBegin-Antony+6:09:2007, 07:35 -->
    <span class="vbquote">(Antony @ 6:09:2007, 07:35 )</span><!--QuoteEBegin-->Так нельзя. Все, что указывается после EvalExpr должно быть сформировано в строку
    [snapback]77334" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    <!--QuoteBegin-Antony+6:09:2007, 07:35 -->
    <span class="vbquote">(Antony @ 6:09:2007, 07:35 )</span><!--QuoteEBegin-->(ЗначениеВСтроку
    [snapback]77334" rel="nofollow" target="_blank[/snapback]​
    [/quote]
     
Загрузка...
Статус темы:
Закрыта.

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