Консоль запросов SQL





Иногда возникает желание посмотреть, как информация 1С уложена в базе данных. Данная обработка позволяет показать структуру базы данных, а так же обычными SQL-запросами просмотреть содержимое таблиц MsSQL.

Обработка использует SQLOLEDB-провайдер от Microsoft. Обычно в системе этот провайдер уже установлен и называется SQLSERV32.DLL. Драйвер называется обычно просто «SQL Server». Просмотреть установленные драйвера можно вызвав:

c:windowssyswow64odbcad32.exe — для х86 версии сервера предприятия, или

c:windowssystem32odbcad32.exe — для х64 версии сервера предприятия.

Подключение выполняется следующим кодом:

 СтрокаПодключения =
"Provider=SQLOLEDB.1;
|User ID=" + Пользователь + ";
|Pwd=" + Пароль + ";
|Data Source=" + Сервер + ";
|Initial Catalog=" + База + ";
|MultipleActiveResultSets=True";//наша database

Если Соединение = Неопределено Тогда
Connection  = Новый COMОбъект("ADODB.Connection");
Иначе
Connection  = Соединение;
КонецЕсли;

Для того, что бы обработка заработала, необходимо установить параметры соединения с SQL-сервером по кнопке настройка. Естественно, нужно знать пользователя и пароль, которые имеют соответствующие разрешения на работу с СУБД.

А в остальном — пробуйте.

PS: И как я сразу не догадался такую штуку сделать. В форме запросов я добавил возможность показать сам объект при двойном щелчке на ссылку объекта. Там всё просто. Ссылка преобразуется в УИД, а потом тупо перебираются все возможные объекты метаданных. Есть идеи, как ускорить алгоритм, но меня производительность пока и так устраивает.

7 Comments

  1. Gilev.Vyacheslav

    количество строк при этом как то учитывается?

    Reply ↓
  2. igel9780

    (1) Gilev.Vyacheslav, Штатно при двойном клике на таблице, генерируется запрос типа SELECT TOP 100 %FIELDLIST% FROM %TABLENAME%. Потому как можно и не дождаться, пока таблица выкачается. Опять же, ADO выдает COMSafeArray для всех идентификаторов. Его приходится переводить в строку, что тоже не добавляет быстродействия.

    Reply ↓
  3. igel9780

    Добавил возможность по двойному щелчку на поле идентификатора открывать соответствующий объект базы данных.

    Reply ↓
  4. LavinVadik

    почему не указано что под управляемые формы или не управляемый?

    под не управляемый не открывается под управляемые ругается!!!

    не рабочая.!!!

    прошу вернуть мне обратно мои 1 стартмани !!!

    Ошибка инициализации модуля: ВнешняяОбработка.КонсольSQL.Форма.Форма.Форма
    по причине:
    {ВнешняяОбработка.КонсольSQL.Форма.Форма.Форма(119,26)}: Переменная не определена (ЭтотОбъект)
    Для Каждого Реквизит Из <<?>>ЭтотОбъект.ПолучитьРеквизиты(«Объект») Цикл
    {ВнешняяОбработка.КонсольSQL.Форма.Форма.Форма(134,26)}: Переменная не определена (ЭтотОбъект)
    Для Каждого Реквизит Из <<?>>ЭтотОбъект.ПолучитьРеквизиты(«Объект») Цикл
    
    Reply ↓
  5. Kaspirovsky

    в толстом клиенте пробовал?

    Reply ↓
  6. Bukaska

    (4)ВЫ бы хоть смотрели когда скачивали, в конце 2016 года и платформа была другая. Конечно пытаться открыть на текущей платформе наработке двухгодовой давности, когда правило программирования на каждом релизе меняется и выдает очередные заморочки. Сочувствую.. Обратитесь в техподдержку. Впредь смотрите дату публикации

    Reply ↓
  7. LavinVadik

    дата публикации тут ни при чем,

    разобрался, че к чему

    сделана под УФ

    на УФ тонком клиент на БП 30 и ЗУП 31 — работает

    на УПП в обычных формах не работает. пробывал открыть в УФ УПП тоже не взлетела.

    (4)

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *