Условие в запросе по Оле
24.07.2008
11:37
#1
"Подскажите как написать по Оле следущие условия в запросе
СЗ = РабочаяБаза.CreateObject("СписокЗначений");
спрНоменклатура = РабочаяБаза.CreateObject("Справочник.Номенклатура");
спрНоменклатура.НайтиПоНаименованию("КОМПЛЕКТАЦИЯ",0,1);
СЗ.ДобавитьЗначение(спрНоменклатура.ТекущийЭлемент());
...
...
...
|Условие(Товар в СЗ);
|Условие (Склад<>РабочаяБаза.Константа.СкладГ);
"
СЗ = РабочаяБаза.CreateObject("СписокЗначений");
спрНоменклатура = РабочаяБаза.CreateObject("Справочник.Номенклатура");
спрНоменклатура.НайтиПоНаименованию("КОМПЛЕКТАЦИЯ",0,1);
СЗ.ДобавитьЗначение(спрНоменклатура.ТекущийЭлемент());
...
...
...
|Условие(Товар в СЗ);
|Условие (Склад<>РабочаяБаза.Константа.СкладГ);
"
24.07.2008
14:21
#2
"Я как то раз писал про эту штуку... В общем, проблема в том, что СЗ адресуется указателем, который живет все равно в текущей сессии 1С, а не в OLE присоединенной. Поэтому запрос, выполняясь на стороне другого приложения не видит этот список значений. Теоретически, чтобы это работало, нужно, чтобы сделано было примерно так:
СЗ = РабочаяБаза.CreateObject("СписокЗначений");
РабочаяБаза.ГлобальныйКонтекст.ДобавитьУказатель("СЗ",СЗ);
...
...
|Условие(Товар в СЗ);
но такого нет, это я сам выдумал
Как способ решения, почитайте тут:
там была несколько иная, но способ решения подходящий (передача в РабочаяБаза параметров в виде строк в функцию, размещенную в глобальном модуле с признаком Экспорт)"
СЗ = РабочаяБаза.CreateObject("СписокЗначений");
РабочаяБаза.ГлобальныйКонтекст.ДобавитьУказатель("СЗ",СЗ);
...
...
|Условие(Товар в СЗ);
но такого нет, это я сам выдумал
Как способ решения, почитайте тут:
там была несколько иная, но способ решения подходящий (передача в РабочаяБаза параметров в виде строк в функцию, размещенную в глобальном модуле с признаком Экспорт)"
Читают тему
(гостей: 1)