OLE объекты. Запросы. Как передать дату в запросе?

Новая тема
"Данный запрос работает замечательно:<br><br>Запрос = V7.CreateObject("Запрос");<br>ТекстЗапроса= "<br>|Период с  '01.01.2005';<br>|Док= Документ.ПКО.ТекущийДокумент;<br>|ГРУППИРОВКА Док;<br>|"; <br>Запрос.выполнить(ТекстЗапроса);<br><br>Но как передать дату???<br>Следующий запрос уже не работает :-(<br>"ошибка в выражении  'Дата1'"<br><br><br>Дата1 = '01.01.2005';<br>ТекстЗапроса= "<br>|Период с Дата1;<br>|Док= Документ.ПКО.ТекущийДокумент;<br>|ГРУППИРОВКА Док;<br>|"; <br>"
"Добрый день.<br>Попробуйте так:<br>Дата1 = Дата(01.01.2005);<br>ТекстЗапроса= "<br>|Период с Дата1;<br>|Док= Документ.ПКО.ТекущийДокумент;<br>|ГРУППИРОВКА Док;<br>|"; "
Я тоже заметил, что OLE-объекты "по-умолчанию" или "упрощенных" значений не понимают. Если, например, написано в конфигураторе "Можно не ставить, по умолчанию значение такое-то...". На OLE это может не работать. Тоже самое с типом значения.
"Очень просто. Дата в OLE передается напрямую, хотя я передавал и более сложные типы данных.<br>В данном случае рекомендую<br>ТекстЗапроса= "<br>|Период с '"+Строка(Дата1)+"';<br>|Док= Документ.ПКО.ТекущийДокумент;<br>|ГРУППИРОВКА Док;<br>|";"
"Кстати тип значения в OLE можно получить обращаясь к процедуре ЗначениеВСтроку, а не ТипЗначения или ТипЗначенияСтр.<br>Например:<br>ТипОбъектаТорговли = """";<br>ВидОбъектаТорговли = """";  <br>ПредставлениеТорговли = """";<br>ЭтоГруппаВТорговли = 0;<br>СтрокаТипа = СтрЗаменить(глБаза.ЗначениеВСтроку(ОбъектТорговли),"""","""");<br>Если (СтрЧислоВхождений(СтрокаТипа,"{") > 1) или (СтрокаТипа = "{}") Тогда<br>// Объект в торговли либо типа Списка значений, таблица Значений и прочих составных типов<br>// или Неопределенного типа - А также периодический реквизит<br> Возврат ПустойОбъект;<br>КонецЕсли;  <br>СтрокаТипа = СтрЗаменить(СтрокаТипа,"{","""");<br>СтрокаТипа = СтрЗаменить(СтрокаТипа,"}","""");<br>СписокТипов = СоздатьОбъект("СписокЗначений");<br>Для Инд = 1 По СтрЧислоВхождений(СтрокаТипа,",")+1 Цикл<br> Позиция = Найти(СтрокаТипа,",");<br> Если Позиция=0 Тогда<br> СписокТипов.ДобавитьЗначение(СтрокаТипа);<br> Прервать;<br> КонецЕсли;<br> СписокТипов.ДобавитьЗначение(Лев(СтрокаТипа,Позиция-1));<br> СтрокаТипа = Сред(СтрокаТипа,Позиция+1);<br>КонецЦикла;<br>ТипОбъектаТорговли = СписокТипов.ПолучитьЗначение(1);<br>Если СписокТипов.РазмерСписка() > 1 Тогда<br> ВидОбъектаТорговли = СписокТипов.ПолучитьЗначение(2);<br>КонецЕсли;<br>Если СписокТипов.РазмерСписка() > 2 Тогда<br> ПредставлениеТорговли = СписокТипов.ПолучитьЗначение(3);<br>КонецЕсли;<br>Если (ТипОбъектаТорговли  = "Справочник") или ((ТипОбъектаТорговли  = "Документ")) Тогда<br> ВидОбъектаТорговли = ОбъектТорговли.Вид();<br>КонецЕсли; <br>"
Читают тему
(гостей: 1)

Быстрый переход