При работе с более-менее крупными системами периодически возникают задачи, требующие взаимодействия с базой данных 1С напрямую. В круг таких задач входит расследование проблем производительности и это стало толчком к написанию объекта статьи.
Расширение создано для SSMS 18 версии, в более ранних версиях — не запустится. Тестировалось расширение на платформе 8.3.15.
С частями системы 1С расширение никак не взаимодействует, считывая структуру конфигурации напрямую из базы данных.
Более детально, возможности:
Просмотр структуры конфигурации в терминах метаданных 1С и терминах SQL с возможностью группировки по группам метаданных. Т.е. если у регистра накопления есть несколько таблиц БД (основная таблица, остатки, изменения), то они выводятся в одну группу. Из структуры конфигурации по правому клику мыши возможно перейти к объекту в дереве обозревателя.
Вывод отчета об использованном дисковом пространстве в терминах метаданных 1С. Отчет аналогичен по структуре стандартному отчету студии, но позволяет увидеть сгруппированную информацию в целом по документу, регистру и т.д.
Всплывающие подсказки над названиями таблиц и колонок в терминах метаданных 1С.
Порядок работы:
При подключении к серверу, расширение анализирует все доступные базы данных и выделяет из них те, которые являются базами данных 1С (этот процесс происходит в фоновом режиме, прогресс операции показывается в статусбаре студии). Далее расширение считывает структуру конфигурации из каждой базы данных и формирует кеш соответствий DBMS имен и метаданных 1С. Все возможности расширения для базы данных будут доступны только тогда, когда для этой базы будет сформирован кеш. Команды для вывода структуры конфигурации и отчет доступны в контекстном меню базы данных. Всплывающие подсказки в обозревателе объектов будут заполнены после считывания структуры конфигурации из базы данных. Трансляция текста запроса доступна в контекстном меню окна для ввода текста запроса.
По найденным ошибкам и замечаниям пишите в комментариях, буду исправлять.
Установка:
Поместить папку "OneSToolsSsmsExtension" из архива в каталог "C:Program Files (x86)Microsoft SQL Server Management Studio 18Common7IDEExtensions"
Если в работе с расширением наблюдаются какие-то необъяснимые явления, очистите папку кеша расширения по пути %appdata%/OneSToolsSsmsExtension
Upd 27.11.2024: Исправил небольшую ошибку в релизе, приводящую к к новому циклу обновлению кеша баз при смене контекста сервера.
Upd 29.11.2024: Устранено некорректное поведение программы при удалении базы данных. Добавлено отображение названия и версии конфигурации в нижней части окна отображения структуры.
Upd 04.12.2024: Изменено оформление отчета об использованном дисковом пространстве (выравнивание текста в колонках и выделение групп цифр). Доработан код для возможности работы с расширением при ограниченных правах пользователя на сервере.
У меня версия SSMS 10.50.1600.1 . Какая именно группа цифр должна быть не ниже 18 ?
(1) Первая группа. С 18 версии студия является отдельным приложением, не входящим в пакет MSSQL Server. Можете смело ставить бесплатную версию с сайта Microsoft и пользоваться ей. Ссылка для скачивания —https://docs.microsoft.com/ru-ru/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
(0) Очень интересное решение. Надо как-нибудь потестить.
Добрый день, а исходники данной публикации иметься или там только скомпилированный файл
(4) Исходный код расширения закрыт.
(5) а есть возможность получения исходника? более детально можно в личке
(6) Пока я не готов его открыть. Это было бы неуважением по отношению к тем людям, которые покупают расширение.
(7) но и использовать расширение без понимания насколько оно безопасно никто не будет.
(7) а можешь в публикацию кинуть и исходники? и поставь скажем 15sm
(8) С точки зрения работы с данными БД — ни одного, какого-либо insert запроса в расширении нет. С точки зрения простого недоверия автору — Вы на самом деле у каждого проприетарного ПО требуете исходный код?
(10) а Вы лично на рабочее пространство себе ставите все без проверки безопасности?
Кредита доверия ваше расширение пока не наработало и поэтому вопрос об исходниках звучит нормально, их же никто не просит бесплатно. Не надо так негативно реагировать.
Если у вас на предприятие политика безопасности позволяет ставить любое ПО без согласования, это не значит что у всех такое состояние дел.
(11) К сожалению интонацию не передать, я в очень дружелюбной манере общаюсь. И Вас прекрасно понимаю, но это не повод для открытия исходников. Я работал над ними 2 месяца не просто так, что-бы продать за 3 копейки. Единственное, что могу Вам предложить — поставьте сниффер и проверьте исходящий трафик от приложения, от там отсутствует вовсе.
(9) Ответ на вопрос дал выше, уважаемому Virikus. Какая часть исходников Вас конкретно интересует? Приложение состоит из нескольких составляющих, основные из которых — модуль парсинга внутренних структур 1С и собственно само расширение, добавляющее пункты меню и осуществляющее взаимодействие с GUI студии.
(9) По поводу модуля парсинга — его не выложу. Пакет расширения для SSMS сам по себе очень интересен, так как информация о его написании практически отсутствует в интернете, на этот счет могу написать отдельную статью.
(11) В моей компании все тестируется на серверах разработки и только потом попадает в рабочую среду.
(14) Статья была бы очень интересна по пакету расширения, модуль парсинга легко воспроизвести, там все достаточно просто.
(16) Это уже конструктивный разговор, я подготовлю статью и дам развернутый ответ на Ваши вопросы.
(14) ну как бы это не правда. 4я ссылка в гуглеhttps://www.codeproject.com/Articles/1243356/Create-Your-Own-SQL-Server-Management-Studio-SSMS
(18) Создание пакета аналогично обычному созданию VSPackage (для 18 версии ssms). Разговор шёл не об этом, а о работе с объектами SSMS изнутри пакета.
(19)
Автор статьи в конце даёт ссылки на исходные коды проектов. Если поразбираться, то там можно все найти
(20)на просторах интернета можно найти тучи рекомендаций, описаний, инструкций и т. п., но далеко не у всех есть время и терпение придумать, спроектировать и собрать что-то необычное и полезное. Автору — плюс.
(20) Именно поэтому я и написал что практически отсутствует. Эти несколько проектов и есть те крупицы информации что удалось найти на просторах. Я не считаю пару-тройку проектов, написанных методом тыка, нормальной документацией. Большая часть времени разработки — это тыканье носом и дебаг
(20) Отсутствие нормальных, официальных гайдов серьёзно усложняет и тормозит процесс, приходится многое реверсить.
(0) А есть какая-нибудь бесплатная демоверсия с ограниченным функционалом? Просто попробовать?
(24) Не предусмотрено
(25) понимаю.
Тогда буду копить золото :)))
(26) И древесину) А некоторые и кодами пытаются воспользоваться)
(27) недостаточно материалов для строительства :))))
Подскажите где кэш расширения чистить, пожалуйста. Удалили базу и теперь обновление кэша на ней зависает.
(29) Нашел, спасибо. %AppData%RoamingOneSToolsSsmsExtension
(30) Все правильно, там. Спасибо за кейс, исправлю неправильное поведение и залью новую версию. Не учел такое развитие событий)
А добавленные в расширении объекты никак не распознать? Сейчас эти таблицы отображаются как «СистемнаяТаблица».
(32) На базах с расширением не проверял работу, исправлю некорректное поведение и обновлю статью.
Есть пожелание. В «Использовании дисковой памяти таблицами (1С)» сделайте, пожалуйста, выравнивание цифр по правому краю и с разделителями разрядов.
(34) Сделаю, не проблема
Все сломалось.
Обнаружил, что в последней версии файлов меньше, чем у меня в C:Program Files (x86)Microsoft SQL Server Management Studio 18Common7IDEExtensionsOneSToolsSsmsExtension. Все удалил, чтобы не искать несоответствия. Скопировал заново все файлы из архива и теперь мне SSMS выдает ошибку. Прикрепил к сообщению.
Кеш чистил.
(36) Вернул предыдущую версию и обновил только изменившиеся файлы. Заработало.
(37) Шальная какая-то ошибка, надо логи смотреть, подобного не замечал.