Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 20:33

Перевести запрос 1С в sql

Автор Lis3004, 02 мар 2010, 18:04

0 Пользователей и 1 гость просматривают эту тему.

Lis3004

Приветствую всех!
Подскажите, пожалуйста, есть ли какие-либо обработки, с помощью которых можно легко и быстро :) перевести запрос 1С в запрос SQL?

DDD

У меня очень старая обработка валялась для 7.7
Но по переводу из SQL в 1с ))) Наверно и для 8.1 из 1С в запрос SQL тоже есть готовые... надо поискать на работе  )

DDD

Вот, может это поможет:
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=542797

Помогите написать из 1с запрос SQL с параметрами | Форум поддержки читателей книги "Практическое пособие разработчика. Примеры и типовые приемы"

День добрый.Есть вот такая функция.

Функция ЗапросSQL (SQLServer,Login,Password,ТекстSQL) //Функция выборки данных из SQL сервера и передача во временную таблицу 1С СтрокаСоединения = ("Provider=SQLOLEDB;Driver={SQL Server}; Deleted=No; Data Source = ") + SQLServer + (";UID=") + Login + ("; PWD=") + Password + (";"); Подключение = Новый ComObject("ADODB.Connection"); Подключение.ConnectionString=СтрокаСоединения; Попытка Подключение.Open(СтрокаСоединения); Состояние ("Подключение к серверу SQL..."); Исключение Сообщить(ОписаниеОшибки()); Возврат Ложь; КонецПопытки; СоединениеSQL = Новый COMObject("ADODB.Command"); СоединениеSQL.ActiveConnection = Подключение; СоединениеSQL.NamedParameters = True; СоединениеSQL.CommandText = ТекстSQL; СоединениеSQL.CommandType = 1; //СоединениеSQL.Prepared = Истина; Param1 = СоединениеSQL.CreateParameter("n",3,1,1,1); СоединениеSQL.Parameters.Append(Param1); Param2 = СоединениеSQL.CreateParameter("ДатаПриходаС",200,1,8,Формат(НачалоПериода,"ДФ=ггггММдд"));//Формат(НачалоПериода,"ДФ=ггггММдд")); СоединениеSQL.Parameters.Append(Param2); Param3 = СоединениеSQL.CreateParameter("ДатаПриходаПо",200,1,8,Формат(КонецПериода,"ДФ=ггггММдд")); СоединениеSQL.Parameters.Append(Param3); СоединениеSQL.Parameters.Refresh(); Состояние ("Выполнение запроса SQL..."); ЗаписиSQL = Новый ComObject("ADODB.RecordSet"); ЗаписиSQL = СоединениеSQL.Execute(); Таблица = Новый ТаблицаЗначений; Состояние ("Заполнение временной таблицы..."); Для НомерСтолбца = 0 По ЗаписиSQL.Fields.Count-1 Цикл //Создание и добавление колонок во временную таблицу ИмяСтолбца =ЗаписиSQL.Fields.Item(НомерСтолбца).Name; Таблица.Колонки.Добавить(ИмяСтолбца); Сообщить(ИмяСтолбца); КонецЦикла; Пока ЗаписиSQL.EOF = 0 Цикл // Заполнение созданной таблицы НоваяСтрока = Таблица.Добавить(); Для НомерСтолбца = 0 По ЗаписиSQL.Fields.Count-1 Цикл НоваяСтрока.Установить(НомерСтолбца,ЗаписиSQL.Fields(НомерСтолбца).Value); Сообщить ("Test " + ЗаписиSQL.Fields(ИмяСтолбца).Value + ИмяСтолбца); КонецЦикла; ЗаписиSQL.MoveNext(); КонецЦикла; Состояние ("Закрываем соединение с SQL..."); ЗаписиSQL.Close(); Подключение.Close(); Возврат Таблица; // Возврат таблицы значений запроса SQL КонецФункции

Хочу реализовать запрос SQL c параметрами из 1С8.1.

После добавления параметров СоединениеSQL.Parameters.Count говорит что их нет 0. И соответственно запрос выдает только шапку таблицы, без данных.

Подскажите пожалуйста как правильно сделать.


Lis3004

Не совсем то. Мне просто нужно сделать следующее - есть тест запроса 1С, мне надо просто - получить текст этого запроса на скуле. Пока что то не получается(

Myti

(получить текст этого запроса на скуле.) это нереально там другие конструкции!!!
Другое дело еслиб тибе надо было результат такой же на скуле получить....вот это тема...

Lis3004

Почему не реально то.
Можно с помощью обработки ei, как оказалось (а там с помощью настройки журнала в логах записывается как раз скульный запрос).

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск