Конвертер для преобразования текстов запросов и планов SQL в представления языка 1С

20.01.23

Разработка - Инструментарий разработчика

Преобразует текст запроса на языке SQL или план запроса, подставляя представления метаданных конфигурации для удобства последующего анализа.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Конвертер для преобразования текстов запросов и планов SQL в представления языка 1С:
.epf 32,36Kb ver:2023.01.03
217
217 Скачать (2 SM) Купить за 2 150 руб.

При анализе запроса на языке SQL или плана выполнения запроса основную сложность вызывают представления таблиц и полей в терминах базы данных. Учитывая что наименования таблиц БД не несут особой логической и смысловой нагрузки, то выполнение анализа представляет собой сложную задачу. Мы в процессе оптимизации конфигураций на платформе 1С под СУБД MS SQL и Pstgres написали простую, но многократно облегчающую данную работу обработку. Она значительно повышает скорость и удобство решения подобных задач. Также мы будем использовать этот инструмент в последующих статьях посвященных вопросам анализа и решения проблем быстродействия.

Обработка является частью Фреймворка "Мониторинг производительности" - https://github.com/Polyplastic/1c-parsing-tech-log.

Внимание! Запускать обработку для анализа обязательно в целевой базе и конфигурации!

Возможности:

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

Процесс работы простой. Вставляете текст запроса из логов технологического журнала, профайлера MS SQL или лога базы Postgres. Жмете кнопку "преобразовать".

 

 

- Преобразование текстов планов запросов MS SQL и Postgres. Выполняет преобразование подстановкой таблиц, реквизитов и наименований индексов в тексты планов запросов. Для планов запросов реализован интерфейс передачи и получения ссылки на веб-ресурс анализа планов запросов https://explain.tensor.ru/

Процесс работы заключается в следующем - вставляете текст плана Postgres или план MS SQL, указывайте флаг "это план запроса" и жмете кнопку преобразовать.

Если это план запроса Postgres, то после выполнения преобразования жмите на кнопку "Explain план запроса" и переходите по ссылке.

Если это план запроса MS SQL, то данные из файла плана помещаете в поле "текст запроса SQL", преобразуете, а затем результат преобразования файла сохраняете в новом файле формата "SQLPlan". Затем открываете в "SQL Sentry Plan Explorer".

 

 

Пример формы преобразования плана запроса.

 

 

На рисунках ниже приведены примеры планов запросов в формате. На первом приведен пример для MS SQL Server.

 

 

Представление плана запроса для Postgres

 

 

- Поиск и просмотр таблицы представлений в терминах БД и конфигурации 1С. Доступна таблица поиска и навигации по связи представлениям терминов БД и названий метаданных языка 1С.

 

 

Полезные ссылки:

 

Обработка протестирована на платформе 1С 8.3.16 и 8.3.19.

план запросов SQL Postgres MS

См. также

SALE! 15%

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    159651    875    399    

862

SALE! 15%

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7856    58    23    

69

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    23488    68    45    

117

SALE! 15%

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8500 руб.

10.11.2023    10460    36    25    

61

SALE! 15%

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 19980 руб.

06.10.2023    15424    35    7    

70

SALE! 35%

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3120 руб.

14.01.2013    188041    1140    0    

912

SALE! 15%

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 12750 руб.

07.10.2021    17317    6    32    

42

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

1800 руб.

21.02.2023    7715    8    35    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. logarifm 1122 07.02.22 15:41 Сейчас в теме
2. VKislitsin 1013 08.02.22 08:11 Сейчас в теме
Хорошее дело! У меня есть feature request. Даже два :)
1) подстановка номеров параметров "p_0", "p_1", "p_2" и т.д. вместо "?" в текст запроса (очень уж неудобно высчитывать когда параметров много).
2) для параметров ссылочного типа (0x8C76E5A8C09BC9114E49E36A717AC118) заменять значение на представление (а еще лучше, дополнять навиг.ссылкой).
Артано; Shmell; w.r.; +3 Ответить
3. ivanov660 4578 08.02.22 09:20 Сейчас в теме
(2) #75зарегистрировал ваше предложение в трекере на сайте проекта
VKislitsin; +1 Ответить
4. Артано 795 11.02.22 09:04 Сейчас в теме
Спасибо! Где же были раньше?! (риторический вопрос)

P.S. Поддержу предложение из (2).
5. GKG 22 16.02.22 14:38 Сейчас в теме
Классная обработка !

маленькие идеи:

Не транслирует слово Having

и теоретически вместо Tn имен таблиц можно подставить имена основных таблиц где это возможно конечно
а так удобно анализировать тексты запросов.
6. Дмитрий74Чел 239 28.07.22 16:26 Сейчас в теме
Добрый день.
А почему решили создавать что-то свое, ведь уже есть подобные инструменты (как минимум преобразования текстов запросов) других авторов. Те же Инструменты разработчика.
Какова была цель? Только создать свое в своей экосистеме (фреймворке)? Или проводился какой-то анализ аналогов, может что-то улучшили?
Пишу не ради критики, хочу просто понять. Если что читал описание не очень внимательно, можно пинать.
tormozit; +1 Ответить
7. ivanov660 4578 28.07.22 18:00 Сейчас в теме
(6)
1. Сделали удобный инструмент для решения требуемых задач, более ничего не понравилось и не нашел. Поделились с коллегами.
2. Не сравнивал с инструментами разработчика по функционалу, если есть желание сравните. Но я сходу не помню чтобы у автора был подобный функционал. Из запроса 1С в MS SQL был у автора ИР и в других консолях тоже, а вот обратно не припомню.
3. Если Вас не затруднит накидайте список подобных приложений, буду признателен, будет интересно.
8. tormozit 7230 15.06.23 08:27 Сейчас в теме
(7) В ИР уже давно есть конвертор текста БД в термины метаданных в составе инструмента "Анализ техножурнала". Он в частности умеет форматировать текст запроса, выявлять использованные в нем таблицы БД, конвертировать параметры и вставлять их в сам запрос.
Пример исходного текста
INS ERT INTO #tt3 WITH(TABLOCK) (_Q_000_F_000RRef, _Q_000_F_001RRef, _Q_000_F_002RRef) SEL ECT
T1._IDRRef,
T3._Document209_IDRRef,
T2._Document209_IDRRef
FR OM dbo._Document209 T1
LEFT OUTER JOIN dbo._Document209_VT2775 T2
INNER JOIN dbo._Document209_VT2677 T3
ON (T3._Document209_IDRRef = T2._Document209_IDRRef)
ON (T2._Document209_IDRRef = T1._IDRRef)
WHERE (T2._Fld2779 = ?)
p_0: 0N
Показать

Сконвертированный текст
INS ERT IN TO #tt3 WITH(TABLOCK) (_Q_000_F_000RRef, _Q_000_F_001RRef, _Q_000_F_002RRef)
SELE CT
	АвансовыйОтчет_T1.Ссылка AS _Q_000_F_000RRef,
	Товары_T3.Ссылка AS _Q_000_F_001RRef,
	ВозвратнаяТара_T2.Ссылка AS _Q_000_F_002RRef
FR OM
	dbo.Документ.АвансовыйОтчет AS АвансовыйОтчет_T1
	LEFT JOIN dbo.Документ.АвансовыйОтчет.ВозвратнаяТара AS ВозвратнаяТара_T2
		INNER JOIN dbo.Документ.АвансовыйОтчет.Товары AS Товары_T3
		ON Товары_T3.Ссылка = ВозвратнаяТара_T2.Ссылка
	ON ВозвратнаяТара_T2.Ссылка = АвансовыйОтчет_T1.Ссылка
WH ERE
	ВозвратнаяТара_T2.Цена = ?p_0
Показать
Прикрепленные файлы:
tetraren; NorraSaltolinen; Bassgood; Silver0030; +4 Ответить
Оставьте свое сообщение