BitNike
35 - 25.05.2009 - 01:04
|
Пример использования 1CPP.dll //Глобальный модуль Перем ГлСоединение Экспорт; Перем глМетаСПП Экспорт; Перем глRS Экспорт; Функция глЗапросСПП(СЗ,Табло="",Соединение=0,Очистить=0) Экспорт Если (Соединение=0) Тогда глRS.УстБД1С(); Иначе Если СокрЛП(Соединение)="ODBCDatabase" Тогда глRS.УстБД(Соединение); Иначе ConnectionString=Соединение.ConnectionString; ConnectionString=Сред(ConnectionString,Найти(ConnectionString,"""")+1); ConnectionString=Лев(ConnectionString,Найти(ConnectionString,"""")-1); Соединение=СоздатьОбъект("ODBCDatabase"); Если Соединение.Соединение(ConnectionString)=1 Тогда глRS.УстБД(Соединение); Иначе База=Сред(Соединение.ConnectionString,Найти(Соединение.ConnectionString,"DATABASE")); База=Лев(База,Найти(База,"""")-1); Сообщить("Не удалось установить соединение:"+База); Возврат 0; КонецЕсли; КонецЕсли; КонецЕсли; глRS.ВыполнитьИнструкцию(СЗ,Табло,Очистить); Возврат 1; КонецФункции
Функция УстановитьГлСоединение() Верн=""; Если МонопольныйРежим()=0 Тогда ГлСоединение = СоздатьОбъект("ADODB.Connection"); Попытка ConnectionString = "driver={SQL Server}; server=<Имя сервера>; uid=<имя пользователя>; pwd=<Пароль>; Database =<Имя базы>; Initial Catalog = <Каталог>"; ГлСоединение.ConnectionTimeOut =150; ГлСоединение.CursorLocation = 3; ГлСоединение.Mode = 1; ГлСоединение.Open(ConnectionString); Верн="Д"; Исключение ГлСоединение = ""; Верн="Н"; КонецПопытки; КонецЕсли; Возврат Верн; КонецФункции
Процедура ПриНачалеРаботыСистемы() Если ЗагрузитьВнешнююКомпоненту("1CPP.dll")=0 Тогда Предупреждение("Не найден необходимый файл 1CPP.dll, | работа системы невозможна",5); СтатусВозврата(0); Возврат; КонецЕсли; глМетаСПП=СоздатьОбъект("MetaDataWork"); глRS = СоздатьОбъект("ODBCRecordset"); УстановитьГлСоединение(); ... ... КонецПроцедуры //Пример внешней обработки Процедура Сформировать() Таб=СоздатьОбъект("ТаблицаЗначений"); Таб.НоваяКолонка("Цена"); Таб.НоваяКолонка("Дат", "Дата"); СтрЗапроса="Select | og.price as money, | oi.data as [Dat $Дата] /*допустим что в таблице oi есть поле data типа date*/ |From | orders as o |inner join | orderitem as oi on (o.idorder = oi.idorder) and (oi.deleted is null) |inner join | ordergood as og on oi.idorderitem = og.idorderitem |Where | (o.deleted is null) and | (oi.data BETWEEN :Дата1 AND :Дата2~)"; глRS.УстановитьТекстовыйПараметр("Дата1", Дата1); глRS.УстановитьТекстовыйПараметр("Дата2", Дата2); глЗапросСПП(СтрЗапроса, Таб, ГлСоединение); Таб.Выгрузить(ТаблицаФормы); КонецПроцедуры |