Имя: Пароль:
1C
1С v8
Трассировка запросов 1С
,
0 aoberon
 
02.09.14
21:43
С 1С знаком пару недель.
Уважаемые специалисты, подскажите как узнать текст SQL запроса который уходит в БД (у меня MSSQL), без использования профайлера на стороне БД?

К сожалению, я не могу установить сторонние обработки. Есть доступ только к очень простой консоли скриптов и консоли запросов.

Например, у меня есть запрос
select Контрагент, max(Период) as Период
from РегистрыНакопления.Продажи
group by Контрагент;

Требуется узнать какой запрос к БД создаёт 1С. Это нужно для прямой выгрузки данных из БД.

В 1С v7 это вроде бы можно сделать через ODBCRecordset и метод Отладка(1), но мне нужно это сделать для 1C v8.2.

Осветите пожалуйста вкраце эту тему или где можно почитать про отладку запросов?

Спасибо.
1 Armando
 
02.09.14
21:47
Технологический журнал
2 Armando
 
02.09.14
21:47
"прямой выгрузки данных из БД"
Не кошерно
3 viraboy
 
02.09.14
21:53
(0)Прямая выгрузка возможна, если SQL-сервер не приобретался по программе 1c+SQL, в противном случае - это нарушение лицензионного соглашение. Что мешает сделать выгрузку через COM и т.д.
4 aoberon
 
02.09.14
22:00
У нас есть приложение, которое работает через COM соединение и работает оно крайне медленно, поэтому было бы неплохо научить его работать с базой напрямую, а для этого нужно найти способ преобразовывать запросы 1С в нативный SQL налету. Технологический журнал для этого не очень подходит.

А где можно почитать про лицензию 1c+SQL? И каким образом возможна прямая выгрузка штатными средствами без нарушения лицензии? Хотя подойдёт любой рабочий способ.
5 _fvadim
 
02.09.14
22:45
тут express profiler. не требует установки. запускаешь и смотришь.

http://expressprofiler.codeplex.com/downloads/get/478141

если конечно есть возможность скачать. есть посвежее версии, но сходу не нашёл.
6 Drac0
 
02.09.14
23:10
(0) Зачем знать текст запроса? Достаточно знать имена таблиц и полей. Для этого у 1С есть метод, возвращающий соответствие метаданных и объектов SQL. А дальше, думаю, уже сам разберешься.
7 Dmitry1c
 
03.09.14
00:11
Попробуй веб-сервисы
9 Sammo
 
03.09.14
04:29
Смотри настройку технологического журнала, которая пишет все запросы к базе.
Однако размер технологического журнала при этом быстро увеличивается.
10 strange2007
 
03.09.14
05:09
А зряяяяяяяя. Автор, лезть в СУБД где хозяйничает 1С-ка чревато потерей время*денег. Что-бы была понятней мысль, попробуй представить, что ты себе поставил задачи брать данные из СУБД, в которой копается 1С-ка, прям из файла. Т.е. езучаешь структуру файла, как там СУБД данные хранит, потом изучаешь как 1С там данные представляет... Ну как? Бред? Вот-вот. Уж лучше используй то, что советуют и забудь прямую работу с СУБД.
Но если религия не позволяет, то согласен, структуру СУБД получай средствами 1С и от этого пляши.
11 tdm
 
03.09.14
07:35
(10) человек с 1С знаком пару недель - чего вы хотите)) думаю многие так начинали...
12 strange2007
 
03.09.14
07:36
(11) Да что кривить душой, я как с ассемблера на 1С пересел, тоже с шашкой наголо кидался на глюкавые элементы. Что только не делал... В общем как в первом мультике про Алёшу: "ой дурааааак" (с)
13 YurAnt
 
03.09.14
07:43
(0) погуглите на тему: "ПолучитьСтруктуруХраненияБазыДанных()"
возможно наведет на мысль
14 YurAnt
 
03.09.14
07:47
но как уже писали в (3) - это нарушение лицензионного соглашения, а потому атата :)
15 break
 
03.09.14
08:29
запрос переведенный в T-sql можно смотреть в "Универсальная консоль отчетов" http://infostart.ru/public/16782/
16 Ненавижу 1С
 
гуру
03.09.14
09:10
(15) а где гарантия, что 1С именно так и делает?
17 _fvadim
 
03.09.14
10:12
(16)
названия таблиц и полей вроде определяет, простые запросы похожи на правду.
совсем не разворачивает неявные джойны. т.е.
Контрагенты.Родитель.Наименование = &Родитель
Закон Брукера: Даже маленькая практика стоит большой теории.