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

20.01.23

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

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

Скачать файл

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

Наименование SM По подписке [?] Купить один файл
Конвертер для преобразования текстов запросов и планов SQL в представления языка 1С:
.epf 32,36Kb
202
202
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

См. также

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

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

10000 руб.

02.09.2020    141242    775    391    

803

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

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

18000 руб.

06.10.2023    11696    31    6    

62

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

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

5400 руб.

17.05.2024    14289    36    29    

80

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

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

10000 руб.

10.11.2023    7359    27    4    

51

SALE! %

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

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

3600 2880 руб.

14.01.2013    182091    1104    0    

876

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    101217    243    97    

304

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

В процессе работы в 1С часто возникает потребность получить данные из другой базы. Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение для 1С, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    24551    17    15    

34

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

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    19503    7    8    

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

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

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

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

и теоретически вместо Tn имен таблиц можно подставить имена основных таблиц где это возможно конечно
а так удобно анализировать тексты запросов.
6. Дмитрий74Чел 237 28.07.22 16:26 Сейчас в теме
Добрый день.
А почему решили создавать что-то свое, ведь уже есть подобные инструменты (как минимум преобразования текстов запросов) других авторов. Те же Инструменты разработчика.
Какова была цель? Только создать свое в своей экосистеме (фреймворке)? Или проводился какой-то анализ аналогов, может что-то улучшили?
Пишу не ради критики, хочу просто понять. Если что читал описание не очень внимательно, можно пинать.
tormozit; +1 Ответить
7. ivanov660 4547 28.07.22 18:00 Сейчас в теме
(6)
1. Сделали удобный инструмент для решения требуемых задач, более ничего не понравилось и не нашел. Поделились с коллегами.
2. Не сравнивал с инструментами разработчика по функционалу, если есть желание сравните. Но я сходу не помню чтобы у автора был подобный функционал. Из запроса 1С в MS SQL был у автора ИР и в других консолях тоже, а вот обратно не припомню.
3. Если Вас не затруднит накидайте список подобных приложений, буду признателен, будет интересно.
8. tormozit 7194 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 Ответить
Оставьте свое сообщение