1C и SQL какие варианты связи?

Форум 1С: Одинэс.Ру

Найти!

1C и SQL какие варианты связи?

Ch Lexa
22.05.2009 - 06:24
Добрый день, ситуация есть программа учета 1С на SQL2005 и производственная программа так же на SQL 2005 (на этом же сервере), есть потребность вытаскивать данные с производственной проги, как я  понимаю существует несколько вариантов один из них ToySQL но в ней используется свой язык запросов, нет ли механизма использующего стандартный SQL  язык запросов. просто очень много запросов которые уже есть не хотелось бы их перелапачивать... подскажите варианты?
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
27.10.2020 - 17:37
Смотри также:
Ошибка #: -310 при открытии периода
1CBarCod.dll
нужно пособие.....

Re: 1C и SQL какие варианты связи?

ЖКК
32 - 23.05.2009 - 13:35
(30)
Вам же про каст сказали.
А что Вы хотите эти запросом получить? По-русски

Re: 1C и SQL какие варианты связи?

Ch Lexa
33 - 24.05.2009 - 13:02
я не понял про каст,(как я понимаю это что то типа перевода из типа которыый 1С - ка не читает в нужный тип), как раз мне это и надо, сразу же вопрос в какие типы можно переводить и синтаксис команды  каст.. а то что мне надо получить это не важно то есть важно научиться отображать инфу с ее получением проблем нет.. для любого запроса, как наиболее корректно это слделать?

Re: 1C и SQL какие варианты связи?

BitNike
34 - 25.05.2009 - 00:42
Качай 1CPP.dll, с ней проще работать!

Re: 1C и SQL какие варианты связи?

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);
глЗапросСПП(СтрЗапроса, Таб, ГлСоединение);
 
Таб.Выгрузить(ТаблицаФормы);
 
КонецПроцедуры

Re: 1C и SQL какие варианты связи?

Ch Lexa
36 - 25.05.2009 - 12:57
ТекстЗапроса = "
|select cast(og.price as money) as price from orders o
|join orderitem oi on o.idorder = oi.idorder and oi.deleted is null
|join ordergood og on oi.idorderitem = og.idorderitem
|where o.deleted is null";
 
судя из вышесказанного так должно работать, сейчас проверю...но я не понимаю что делает этот каст??? разъесните плиз

Интересные темы

odines.ru
27.10.2020 - 17:37
Смотри также:
Помомгите с кодом (таблица значений)
Как должны выписываться СФ на аванс в 2009 в ПУБ или Комплексной?
ПУБ. Каким документом отразить начисление транспортного налога?

Re: 1C и SQL какие варианты связи?

Uho
37 - 25.05.2009 - 12:59
http://msdn.microsoft.com/ru-ru/library/ms187928.aspx

Re: 1C и SQL какие варианты связи?

Ch Lexa
38 - 25.05.2009 - 13:00
Заработало только ерунда какая то вывалилась, суммы не те что в таблице

Re: 1C и SQL какие варианты связи?

Ch Lexa
39 - 25.05.2009 - 13:05
все получилось получается конструкция:
Cast(имяСтолбца as типЗначенияSQL) as имяСтолбца.
получаетя отображать столбец с типом значения скл как столбец...
 
правильно я все понял?

Re: 1C и SQL какие варианты связи?

Ch Lexa
40 - 25.05.2009 - 13:08
все получилось получается конструкция:
Cast(имяСтолбца as типЗначенияSQL) as имяСтолбца.
получаетя отображать столбец с типом значения скл как столбец...
 
правильно я все понял? в какие типы можно использовать в CASt???

Re: 1C и SQL какие варианты связи?

Uho
41 - 25.05.2009 - 13:17
(40) тебя в (37) забанили?
К списку тем 1 > К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
« Удаленное рабочее место кассира (v7.7 SQL) Модуль на ровном месте стал выдавать ошибку: "Переменная не определена (СуммТаблицаПроизводствРасходов)" »
© 2009 Форум 1С: Одинэс.Ру