Глюк с OLE
11.06.2008
14:23
#1
"Кусок кода:
Запрос = V7.CreateObject("Запрос");
ТекстЗапроса = "Период с Дата1 по Дата2;
|ОбрабатыватьДокументы все;
|Обрабатывать НеПомеченныеНаУдаление;
|СтрокаВыписки = Документ.СтрокаВыпискиПриход.ТекущийДокумент, Документ.СтрокаВыпискиРасход.ТекущийДокумент;
|ДатаВыписки = Документ.СтрокаВыпискиПриход.ДатаДок, Документ.СтрокаВыпискиРасход.ДатаДок;
|Группировка СтрокаВыписки;
|"
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
после выполнения к-ого выдается такая ошибка:
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{C:\1C\ПОЛЕЗНЫЕ ОБРАБОТКИ\АВТООБМЕНБР.ERT(49)}: 1С:Предприятие: <>> Дата1 по Дата2;
ОбрабатыватьДокументы все;
Обрабатывать НеПомеченныеНаУдаление;
СтрокаВыписки = Документ.СтрокаВыпискиПриход.ТекущийДокумент, Документ.СтрокаВыпискиРасход.ТекущийДокумент;
ДатаВыписки = Документ.СтрокаВыпискиПриход.ДатаДок, Документ.СтрокаВыпискиРасход.ДатаДок;
Группировка СтрокаВыписки;
Запрос[1] : Ошибка в выражении 'Дата1'
Дата1 - поле ввода в форме обработки. В чем проблема - непонятно..."
Запрос = V7.CreateObject("Запрос");
ТекстЗапроса = "Период с Дата1 по Дата2;
|ОбрабатыватьДокументы все;
|Обрабатывать НеПомеченныеНаУдаление;
|СтрокаВыписки = Документ.СтрокаВыпискиПриход.ТекущийДокумент, Документ.СтрокаВыпискиРасход.ТекущийДокумент;
|ДатаВыписки = Документ.СтрокаВыпискиПриход.ДатаДок, Документ.СтрокаВыпискиРасход.ДатаДок;
|Группировка СтрокаВыписки;
|"
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
после выполнения к-ого выдается такая ошибка:
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{C:\1C\ПОЛЕЗНЫЕ ОБРАБОТКИ\АВТООБМЕНБР.ERT(49)}: 1С:Предприятие: <>> Дата1 по Дата2;
ОбрабатыватьДокументы все;
Обрабатывать НеПомеченныеНаУдаление;
СтрокаВыписки = Документ.СтрокаВыпискиПриход.ТекущийДокумент, Документ.СтрокаВыпискиРасход.ТекущийДокумент;
ДатаВыписки = Документ.СтрокаВыпискиПриход.ДатаДок, Документ.СтрокаВыпискиРасход.ДатаДок;
Группировка СтрокаВыписки;
Запрос[1] : Ошибка в выражении 'Дата1'
Дата1 - поле ввода в форме обработки. В чем проблема - непонятно..."
12.06.2008
10:27
#2
"Нужно, чтобы переменные типа Дата были созданы на стороне подключенного OLE объекта. Для этого нужны "танцы с бубном". Проще сделать так:
ТекстЗапроса = "Период с '"+Формат(Дата1,"ДДДММГГГГ")+"' по '"+Формат(Дата2,"ДДДММГГГГ")+"';
|ОбрабатыватьДокументы все;
|Обрабатывать НеПомеченныеНаУдаление;
|СтрокаВыписки = Документ.СтрокаВыпискиПриход.ТекущийДокумент, Документ.СтрокаВыпискиРасход.ТекущийДокумент;
|ДатаВыписки = Документ.СтрокаВыпискиПриход.ДатаДок, Документ.СтрокаВыпискиРасход.ДатаДок;
|Группировка СтрокаВыписки;
|";"
ТекстЗапроса = "Период с '"+Формат(Дата1,"ДДДММГГГГ")+"' по '"+Формат(Дата2,"ДДДММГГГГ")+"';
|ОбрабатыватьДокументы все;
|Обрабатывать НеПомеченныеНаУдаление;
|СтрокаВыписки = Документ.СтрокаВыпискиПриход.ТекущийДокумент, Документ.СтрокаВыпискиРасход.ТекущийДокумент;
|ДатаВыписки = Документ.СтрокаВыпискиПриход.ДатаДок, Документ.СтрокаВыпискиРасход.ДатаДок;
|Группировка СтрокаВыписки;
|";"
18.06.2008
16:51
#4
Еще одна неувязочка при работе с ОЛЕ - при работе через терминал даже не создается объект V77.Application.
Что это, нехватка прав при работе с терминалом, глюк или фича ОЛЕ?)
Что это, нехватка прав при работе с терминалом, глюк или фича ОЛЕ?)
18.06.2008
17:35
#5
Терминал как сделан? Точнее, что за ПО используется? Например, встроенная в Win2003 Server служба терминалов или ПО стороннего разработчика (Citrix и т.п.)
Предположим, что работа идет через службу терминалов Win2003 Server... По умолчанию сессия на сервере терминалов открывается с встроенной учетной записью TsInternetUser. Следовательно, смотрим какие права даны такому "пользователю". Для использования OLE Automation пользователь должен "какие нибудь" права. OLE является надстройкой над DCOM, поэтому контролируем настройки DCOM. Что именно смотреть и куда жать, можно почитать тут:
Предположим, что работа идет через службу терминалов Win2003 Server... По умолчанию сессия на сервере терминалов открывается с встроенной учетной записью TsInternetUser. Следовательно, смотрим какие права даны такому "пользователю". Для использования OLE Automation пользователь должен "какие нибудь" права. OLE является надстройкой над DCOM, поэтому контролируем настройки DCOM. Что именно смотреть и куда жать, можно почитать тут:
Читают тему
(гостей: 1)