• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Antony
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Antony

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

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

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

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

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

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.

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

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+"',""СостояниеФизлица,Ставка,ФормаТруда,ГрафикРаботы"")"));

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

Antony

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

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

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

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

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

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]
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!