Транслятор запросов 1С в SQL

Публикация № 1175954

Администрирование - Производительность и оптимизация (HighLoad)

SQL трансляция диагностика производительность план запроса оптимизация инструмент 1СtoSQL перевод

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

Назначение и возможности

Инструмент "Транслятор запросов 1С в SQL" предназначен для быстрого и удобного получения SQL-запросов, которые генерируются платформой 1С в различных ситуациях: либо выполнение конкретного запроса на языке 1С, либо запуск кода встроенного языка, который также может формировать SQL-запросы к базе данных. Кроме этого, по полученным запросам можно посмотреть дополнительную информацию для диагностики их работы (затраченные ресурсы, планы запроса и другое). Ниже на анимации Вы можете видеть длинный пример работы транслятора. О каждой функции инструмента ниже будет рассказано подробнее.

Основными возможностями инструмента являются:

  • Перевод запроса 1С в SQL с учетом всех особенностей работы платформы. Например, если выполнять запрос к виртуальной таблице "Движения с субконто", то фактически будет выполнен не 1 запрос, а целая серия вспомогательных запросов. Инструмент это покажет. Также будут собраны все связанные служебные запросы (получение информации о метаданных, создание и очистка временных таблиц и др.).
  • Перевод запросов платформы 1С в SQL при выполнении конструкций кода встроенного языка. Вам когда-нибудь было интересно как работает функция "НайтиПоНаименованию(...)"? С помощью этой обработки Вы найдете ответы на все вопросы.
  • Получение информации о затраченных ресурсах каждого отловленного запроса. Для каждого запроса будут получены показатели использования CPU, логических и физических чтений, операций записи и количество возвращенных записей в запросе.
  • Возможность посмотреть план для каждого собранного запроса (если такой план есть на стороне СУБД). Вы можете сразу открыть его в SQL Server Management Studio или же сохранить его на диск в формате "*.sqlplan".
  • Инструмент может быть использован как на тестовом , так и на рабочем окружении. Сам сбор информации о запросах создает минимальную нагрузку на сервер. Подробнее о принципах работы инструмента Вы можете прочитать ниже.

Требования к работе:

  • Платформа 1С версии 8.3.5 и выше.
  • СУБД Microsoft SQL Server 2012 и выше.
  • Возможность подключения через ADO c сервера 1С к экземпляру SQL Server с правами "sysadmin".
  • Только управляемые формы. Для использования в обычном приложении используйте известные обходные пути.

Таким образом, данная разработка может оказаться отличным инструментом для диагностики работы запросов и кода встроенного языка в части взаимодействия с СУБД, а также для изучения работы платформы 1С с СУБД. Тем более если диагностику нужно выполнить на рабочем окружении!

Принцип работы

Код обработки открыт и Вы можете самостоятельно его изучить. Сейчас же опишем общий принцип работы инструмента:

  1. Начинаем серверный вызов, в контексте которого и будет выполняться сбор информации.
  2. Определяем идентификатор соединения с СУБД, которое выделено платформой 1С из пула соединений для текущего сеанса (серверного вызова). Т.к. платформа использует пул соединений, то для гарантии того, что это соединение не будет использоваться другими сеансами 1С выполняется несколько трюков с временными таблицами.
  3. После того как мы определили идентификатор соединения, запускаем сессию Extended Events для сбора данных о выполняемых запросах с фильтром по базе данных и по соединению.
  4. Выполняем запросы или конструкции кода встроенного языка для анализа.
  5. Обрабатываем собранные данные и завершаем сессии сбора данных.
  6. Очистка от служебных данных.

Профит! Вся информация получена. За счет "точечной" фильтрации по соединению мы можем собирать данные в многопользовательской среде, т.к. такие фильтры и подход сбора информации практически исключает попадание лишних запросов других сеансов в собранные данные.

Да, для сбора информации НЕ используется технологический журнал. Все базируется на расширенных событиях SQL Server, которые позволяют достаточно эффективно собирать данные для анализа, не мешая основной работе приложения. Об этом мы уже говорили в статье "Мониторинг SQL Server с помощью Extended Events (и не только) для 1С. Как держать руку на пульсе?". Единственный минус такого подхода - то, что запрос / конструкции кода все же выполняются, поэтому если в них будет запущено что-то тяжелое, то именно они и могут повлиять на производительность и стабильность работы. Это стоит учитывать, если Вы пользуетесь инструментом на рабочем окружении.

Примеры использования

Рассмотрим несколько небольших кейсов использования инструмента.

Начало работы

Первое, что нужно сделать для продолжения работы - это настроить подключение к базе данных с правами "sysadmin". Если этого не сделать, то продолжение работы будет недоступно.

 
 Настройка подключения

А теперь в путь!

Что скрывается за простым запросом

Теперь можно попробовать транслировать простой запрос. Как на счет вот такого запроса.

 
 Пример простого запроса

Теперь выполним его через инструмент.

 
 Транслируем простой запрос

Итого, у нас есть:

 
 Транслированный запрос
 
 Информация об использовании ресурсов

Перейдем к примерам интереснее.

Найти по наименованию

Запрос транслировать хорошо. А можно ли отловить запросы к базе данных при выполнении кода встроенного языка? Можно! Как на счет такого простого примера.

 
 Найти по наименованию

Результат получим следующий.

 
 Запросы

Первый запрос - это поиск по наименованию, а второй - получение представления найденного элемента. Как и в прошлом примере, мы получили информацию о затраченных ресурсах.

Таким же способом Вы можете сделать проведение конкретного документа или любую другую операцию из кода встроенного языка, а после отловить тяжелые запросы на стороне базы данных для дальнейшей оптимизации. Попробуйте!

Сложный запрос

Можно пойти дальше и выполнить запрос сложнее, чем обычный SELECT. Как на счет запрос к одной из виртуальных таблиц регистра бухгалтерии.

 
 Запрос к виртуальной таблице

И тут также трансляция будет работать как надо. Плюс посмотрим план запроса.

 
 Трансляция и план запроса

Вроде ничего сложного.

Hardcore!

А теперь что-нибудь особенное. Вас когда-нибудь интересовал вопрос как платформа 1С выполняет пересчет итогов? А вот как!

 
 Что скрывается за пересчетом итогов

Осталось только разобрать что каждый запрос делает, но это уже другая история.

Некоторые настройки

Описание некоторых настроек:

  • Подавлять сообщения пользователю - если включено, то при выполнении кода встроенного языка для анализа все сообщения пользователю будут "заглушены" и Вы их не увидите.
  • Показать результат запроса - если включено, то результат запроса 1С будет выведен в табличный документ.
  • На вкладке "Дополнительно" можно добавить обработчики некоторых событий при трансляции. Может быть полезно в особых случаях. Обычно это:
    • Дополнительное логирование
    • Переопределение результатов собранных данных (удаление запросов без плана и др.)
    • Особым случаем может быть использование Softpoint Data Cluster, в этом случае в событиях можно явно указывать на каком узле должен выполняться запрос для его отслеживания.

Пока что все.

Вместо заключения

Инструмент специфический, но может пригодиться как для диагностики запросов и поведения платформы 1С, так и для исследования и изучения ее работы. Вместе с отчетом "Просмотр и анализ структуры базы данных (отчет на СКД)" может послужить для решения множества проблем производительности.

Это только первая версия, в будущем он будет развиваться.

 
 Планы для версии 2.0

Есть что сказать? Добро пожаловать в комментарии!

Авторские разработки

Другие ссылки

Скачать файлы

Наименование Файл Версия Размер
Транслятор запросов 1С в SQL:
.epf 37,25Kb
02.01.20
35
.epf 1.0.0.0 37,25Kb 35 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. pm74 163 07.01.20 21:34 Сейчас в теме
СУБД Microsoft SQL Server 2012 и выше.

с 2008 "не взлетит" ?
YPermitin; +1 Ответить
2. YPermitin 7241 07.01.20 21:36 Сейчас в теме
(1) нет, к сожалению. Это только в будущих версиях. В конце публикации писал об этом:

В версии 2.0 будут следующие изменения:
- Поддержка SQL Server 2008
- Поддержка PostgreSQL
- Поддержка файловых баз
- Добавление комментариев к частям SQL-запроса для сопоставления с метаданными 1С и удобного чтения текста запросов.
- Оптимизации для SQL Server 2016 и выше.
- И много другое.
Выход 2 версии будет не раньше, чем во второй половине 2020 года :).

2008 версия особая и сильно устаревшая уже. Поэтому под нее допиливать отдельно не стал пока что.
tormozit; Il; 3vs; pm74; +4 Ответить
3. pm74 163 07.01.20 21:46 Сейчас в теме
(2) жаль , у меня 2 рабочих базы крутятся на 2008
все равно утащил в избранное
а транслятор в t-sql зависит от номера версии ?
4. YPermitin 7241 07.01.20 21:51 Сейчас в теме
(3)
а транслятор в t-sql зависит от номера версии ?


Имеете ввиду номер редакции SQL Server?

Если да, то там дело в работе механизмов Extended Events, на которых все простроено.
Много функционала не доступна в редакции 2008, т.к. он еще находился тогда в начальной стадии развития.
Обходные пути есть, но там надо многое с 0 проверять, пилить.


(3)
все равно утащил в избранное


Спасибо :)
5. logarifm 1069 08.01.20 10:57 Сейчас в теме
Труд - согласен, просто мне для себя чтобы понимать, а за что во-первых 10 стартманей? Когда есть вот https://infostart.ru/public/295356/ и за один стартманей и там аналогичный функционал.
YPermitin; +1 Ответить
6. YPermitin 7241 08.01.20 12:20 Сейчас в теме
(5) вопрос хороший. Не рекламы ради, но Вы дали ссылку на консоль запросов, а этот инструмент ни в коем случае не консоль.

Консоль https://infostart.ru/public/295356/ надо скорее сравнивать с управляемой консолью https://infostart.ru/public/835718/.
Я раньше пользовался запросником, а теперь практически полностью перешел на управляемую консоль. Рекомендую.

Что касается этого инструмента - он необходим для трансляции запросов на языке 1С и выражений встроенного языка (кода) в SQL-запросы, которые генерирует платформа. Отличие от запросника в том, что:
1. Запросник использует технологический журнал, я использую встроенные средства диагностики SQL Server - Extended Events.
2. Запросник "повесит" нагруженную базу если Вы начнете использовать эти функции на продакшене. Да даже не нагруженную подвесит, ибо получение планов запросов через ТЖ довольно трудоемкая операция.
3. Данный инструмент получит ВСЕ запросы, которые генерирует платформа. В том числе и служебные (установка уровня изоляций, создание временных таблиц, очистка, запросы к информации по метаданным.
4. Запросник только получает информацию для запросов, а этот инструмент еще и сгенерированные запросы кодом 1С отлавливает.
5. Т.к. платформа 1С использует пул соединений с СУБД, то запросник может в при многопользовательской работе ошибиться и отловить лишние запросы. Этот инструмент максимально от этого защищен. Но полных гарантий нет, но на моей практике еще не было сбоев.
6. Ну и как результат - запросник только для локальной базы разработчика. Этот инструмент можно использовать и на продакшене.
7. Плюс запросник не всегда получает запросы как есть с СУБД или всю серию сгенерированных запросов платформой.

В общем, это совершенно два разных инструмента и для разных целей.
Запросник - отличный инструмент. Жаль он не обновляется уже с 2017 года :(

Что касается цены. 10 SM - это ~750 руб. 750 руб. - это 2 пиццы во таких (https://tiumen.leverans.ru/dostavka/pitstsa/pizza-express/pitstsa-32-sm/pepperoni-ostraia/) :) Цена символическая за инструмент, аналогов которого я еще не видел. Плюс я буду развивать его дальше для PostgreSQL и файловых баз. 10 SM для меня как стимул. К тому же инструмент очень специфический и вряд ли будет какой-то массовый спрос, а так 2-3 скачивания и мотивация не пропадет. За 1 SM отдавать как-то уж совсем свой труд не ценить.

Надеюсь я был объективным :)
Lansi; RocKeR_13; mike1970; aspirin4eg; gradi; 3vs; ids79; Evg-Lylyk; DarkAn; tunesoft; Il; triviumfan; +12 Ответить
16. triviumfan 13 08.01.20 23:34 Сейчас в теме
(6)
2. Запросник "повесит" нагруженную базу если Вы начнете использовать эти функции на продакшене. Да даже не нагруженную подвесит, ибо получение планов запросов через ТЖ довольно трудоемкая операция.

PS: "транслятор запросов 1с" через xevents... в целом - интересно :) Вот заработаю на две пиццы - куплю.
Прикрепленные файлы:
YPermitin; +1 Ответить
23. DarkAn 922 09.01.20 10:02 Сейчас в теме
(5) Как мне кажется, Вы задаете не корректный вопрос. Автор в праве поставить ту цену какую считает адекватной за свою работу.
Скажите спасибо, что за $m, а не за рубли. т.к. вещь действительно полезная.

Утащил в избранное(жду 2.0, т.к. стоит SQL 2008 :()
Fox-trot; YPermitin; +2 Ответить
24. DarkAn 922 09.01.20 10:06 Сейчас в теме
(23)
Автору бы посоветовал выставить обработку и за $m и за рубли, например 3000, не с целью наживы, а с целью расширить аудиторию, т.к. Infostart начисляет кэшбэк 25% за купленные продукты 1С. На счет покупателям падают рубли которые они не могут вывести, но могут потратить на такие вот разработки, а 3000 руб, это меньше, чем покупка сгораемых 10$m у Infostart.

P.S. Если будет я взял бы за рубли :)
YPermitin; +1 Ответить
26. YPermitin 7241 09.01.20 10:09 Сейчас в теме
(24) а про рублевую схему не знал. Надо подумать и правила почитать. Взять консультации :)

За идею спасибо)
27. DarkAn 922 09.01.20 10:12 Сейчас в теме
(26) Кроме того, покупая за рубли покупатель может скачивать обновления в течении года без дополнительной оплаты, а за $m только если обновление выйдет в течении месяца с момента приобретения.

Я уже консультировался, поэтому и сообщаю :)
YPermitin; +1 Ответить
28. YPermitin 7241 09.01.20 10:18 Сейчас в теме
25. YPermitin 7241 09.01.20 10:08 Сейчас в теме
(23) про цену спрашивать - это нормально. Но по мне цена адекватная. :) Лояльная сообществу, я бы так сказал.
Fox-trot; DarkAn; +2 Ответить
7. logarifm 1069 08.01.20 12:53 Сейчас в теме
Тогда надо ждать финального релиза от Вас. А то как оно получается, выйдет обнова и опять 10 СМ :)
YPermitin; +1 Ответить
8. YPermitin 7241 08.01.20 13:02 Сейчас в теме
(7) это дело каждого :)

Если Вы готовы ждать до ноября/ декабря 2020, то конечно. А потом ведь будет следующая версия запланирована:D

Как с процессорами. Ждем выхода i7. Вышел i7, тогда ждем i9 и т.д. :)))
9. logarifm 1069 08.01.20 13:15 Сейчас в теме
Инструмент интересен но мне пока что он без крайней необходимости не понадобится.
В основном при оптимизации исползую (не для рекламы не в коем случае) ЦУП. Трасировщик стандартный. Оптимизация это вообще бесконечная тема. И каждый случай уникальный по своему. Где-то достаточно только обновить платформу. А вот в основном приходится кропотливо и изрядно попотеть и помагает этому не одно решение, а целые кейсы.
Но Ваша работа заинтриговала и конечно же как только надо будет вот что-то раследовать я его скачаю.
10. YPermitin 7241 08.01.20 13:23 Сейчас в теме
(9) ЦУП почти уже не использую.

Воспользуюсь случаем узнать. А он обновляется или там все также по старому?
Слышал версию 2.0 вроде планировали выпускать, но не понятно когда.
11. logarifm 1069 08.01.20 13:28 Сейчас в теме
(10) на УФ есть но механика аналогичная.
Поиск тяжолых запросов (впрниципе он хорошо справляется со своей задачей). А дальше надо всеравно все перепроверять. Не ну конечно можно напилить свое что-то как это сделал Гилев. Но не вижу в этом особого смысла.

Хороший инструментарий у Андрея Бурмистрова имеется. По этому и говорю для решения проблем с оптимизацией необходимы целые кейсы. Никогда не поможет какое-то одно решение. И не всегда достаточно найти тяжолый запрос (это мог быть отчет коотрый запустили раз в месяц).
12. YPermitin 7241 08.01.20 13:29 Сейчас в теме
(11) посмотрите в сторону PerfExpert еще, лучше инструмента не видел. Но он больше под SQL Server ориентирован.
https://www.perfexpert.ru/

Походит на рекламу, но я просто поделился)
15. logarifm 1069 08.01.20 13:30 Сейчас в теме
(12) Да, согласен - эти ребята знают толк в своем деле!
19. tunesoft 221 09.01.20 08:30 Сейчас в теме
(10) да, ЦУП обновляется и развивается. Не рекламы ради расскажу. Пару месяцев назад сдал экзамен 1С:Эксперт, плотно изучал тему. В последней версии есть оффлайн импорт замеров. ЦУПом удобно анализировать и исправлять дедлоки и ожидания на блокировках. Можно и регулярными выражениями ТЖ парсить, кому как удобнее.
YPermitin; +1 Ответить
20. YPermitin 7241 09.01.20 08:36 Сейчас в теме
(19) а сейчас он также поддерживает только SQL Server?
21. tunesoft 221 09.01.20 09:18 Сейчас в теме
22. YPermitin 7241 09.01.20 09:21 Сейчас в теме
(21) Вы вернули мне интерес к ЦУП)
Нало по возможности будет посмотреть изменения)
29. DarkAn 922 09.01.20 10:18 Сейчас в теме
(9) Как рассказывает Виктор Богачев, на своем курсе, по оптимизации, он уже давно не пользуется ЦУПом, только регулярки, т.к. быстрее и функциональнее.
YPermitin; +1 Ответить
13. logarifm 1069 08.01.20 13:29 Сейчас в теме
А Ваша рабоа тоже займет достойное место среди инструментов. Впрочем как и все остальные Ваши труды, стараюсь всегда прочитать.
YPermitin; +1 Ответить
14. YPermitin 7241 08.01.20 13:30 Сейчас в теме
17. dmitrydemenew 435 09.01.20 07:41 Сейчас в теме
Очень полезный и удобный инструмент. Всем советую, а автору - большое спасибо!
YPermitin; +1 Ответить
18. YPermitin 7241 09.01.20 07:43 Сейчас в теме
(17) Вам спасибо огромное за отзыв!
36. 3vs 09.01.20 21:01 Сейчас в теме
(18)Юрий, Вам надо как-то скорефаниться с dmitrydemenew и разрабатывать какой-то свой инструментарий! :-)
Два крутых профессионала могли бы создать что-то действительно полезное сообществу!

Если
10 SM - это ~750 руб.
, то это не так много за такие разработки.
YPermitin; +1 Ответить
30. Evg-Lylyk 2780 09.01.20 11:03 Сейчас в теме
(0) Классная работа. Большое движение вперед идейно и функционально,
Пытался реализовать аналогичное, но не смог отфильтровать запросы из кучи.
Получение плана из кода хорошая идея

Жду если это не трудоемко:
В версии 2.0 будут следующие изменения:
Поддержка SQL Server 2008
YPermitin; +1 Ответить
31. YPermitin 7241 09.01.20 11:33 Сейчас в теме
(30) спасибо!

Идей еще много. Вот бы найти время все реализовать.

По поводу 2008 редакции. Не думал что она на столько популярна. Может и правда выпустить версию. Надо подумать, спланировать.
32. logarifm 1069 09.01.20 12:21 Сейчас в теме
(31) Я бы на вашем месте не стал бы этого делать. Этак можно дойти и СКЛ 2005 который еще на 1С 7.7 держиться. Если только действительно за рубли будете продавать обработку. А иначе теряется смысл. Сам майкрософт отказывается от своих продуктов какой смысл поддерживать то, что уже давно не поддерживаемо. Поотому что ленивцам лень обновиться до новых релизов СКЛ. Ведь там не только понт в номере, СКЛ в новых релизах стал намного функциональней и это как минимум так что пускай задумуются те кто еще работает на воде и переходят на авиатопливо.
Evg-Lylyk; Fox-trot; YPermitin; +3 Ответить
33. YPermitin 7241 09.01.20 12:29 Сейчас в теме
(32) так оно.

Есть коллеги, которые с уверенностью говорят, что разницы между 2008 / 2012 / 2014 / 2016 / и т.д. нет, а Microsoft просто гребет деньги лопатой.
Не часто удается донести информацию, что это не так.

Да за деньги вроде и не планирую, только если как альтернативу поддержки проекта. То есть и за SM будет, и за рубли. То что Иван Филимонов посоветовал в (27)
Evg-Lylyk; acanta; +2 Ответить
34. Fox-trot 109 09.01.20 12:46 Сейчас в теме
(32) замечу лишь только, что проблема можетбыть не только в елни
к примеру невозможность сменить платформу на более новую, которую надо тестировать на совместимость и баги
и не факт, что все взлетит как есть
опять таки нужны деньги и ресурсы на переход, и возможно это бизнесу и не нужно
YPermitin; +1 Ответить
35. YPermitin 7241 09.01.20 12:48 Сейчас в теме
(34) так и есть.

А если еще к этому добавить стоимость лицензий на СУБД, если это по ядрам особенно, то вопрос может вообще быть убран из повестки :)
37. 3vs 09.01.20 21:05 Сейчас в теме
(35)
А если еще к этому добавить стоимость лицензий на СУБД, если это по ядрам особенно

Да уж, ребята из Postgres Professional от скромности не умрут... :-)
YPermitin; +1 Ответить
38. YPermitin 7241 09.01.20 21:06 Сейчас в теме
39. 3vs 10.01.20 07:19 Сейчас в теме
(38)Умеете Вы, Юрий, заинтриговать народ!:-)
Набор слова в Яндекс:
Прикрепленные файлы:
YPermitin; +1 Ответить
40. YPermitin 7241 10.01.20 07:24 Сейчас в теме
41. novandrey_84 16.01.20 10:22 Сейчас в теме
С помощью вашего транслятора можно ли получить текст sql-запроса СУБД без выполнения самого запроса на 1С?
YPermitin; +1 Ответить
42. YPermitin 7241 16.01.20 10:34 Сейчас в теме
(41) нет, но если нужно получить без нагрузки на базу, то я использую такой подход:
1. Беру исходный запрос
2. В тексте запроса ставлю условия-заглушки везде где возможно (Ложь например).
3. Запрос получается дешковесным и можно получить текст.
4. Из полученного текста исключаю заглушки.

Как-тот так.
43. novandrey_84 16.01.20 12:42 Сейчас в теме
(42)
Спасибо, я так и думал)
YPermitin; +1 Ответить
44. YPermitin 7241 16.01.20 12:49 Сейчас в теме
(43) я бы хотел написать транслятор без выполнения. Но легкого пути не вижу)))
45. novandrey_84 16.01.20 13:37 Сейчас в теме
(44)
Ваше решение пока единственное, которое выдает полный пул запросов. И это касается больших 1С-запросов, включающих временные таблицы и прочий синтаксис. Для моей задачи по BI осталось решить вопрос с получением значений перечислений (хочу организовать прямую передачу данных из одной БД в другую без участия 1С). Объемы данных по одной выгрузке - более 4 млн. записей, на 1С я реализовал выгрузку в посредством параллелизма за 15-20 минут (часто отваливаются rphost'ы) в БД на sql-сервер. Код оптимизирован, но бизнесу такое время не устраивает. Поэтому буду переходить на прямые выгрузки между базами.
Спасибо еще раз!
Evg-Lylyk; YPermitin; +2 Ответить
46. YPermitin 7241 16.01.20 13:43 Сейчас в теме
(45) вам спасибо за отзыв!

Делал что-то подобное. Но для слодных запросов выгрузки создавал View'шку или функцию если там все сложно было.

Но суперсложных запросов там не было.
47. YPermitin 7241 24.01.20 14:29 Сейчас в теме
(45)
Для моей задачи по BI осталось решить вопрос с получением значений перечислений (хочу организовать прямую передачу данных из одной БД в другую без участия 1С)


Если вопрос в получении GUID'ов значений перечислений, то можно вот здесь посмотреть.
https://infostart.ru/public/1183874/
48. Infector 147 24.01.20 15:46 Сейчас в теме
Принцип работы в перехвате запроса на SQL-сервере?
Вообще есть мечта идиота - получить SQL -версию запроса, но не в таком виде, как они выполняются в СУБД, а с "человеческими" (т.е. аналогичными отображаемым платформой или в транслит-интерпритации) псевдонимами таблиц и полей.
acanta; YPermitin; +2 Ответить
50. YPermitin 7241 24.01.20 15:50 Сейчас в теме
(48) Все так, перехват. Нет лучше транслятора, чем сама платформа.

По поводу аналогичного отображения текста запроса. У меня есть для этого наработки, но они сырые. В планах сделать есть, но это не скоро. Не хочу поделки непонятные показывать. Мне будет стыдно :)

А так мне вроде даже удалось в некоторых случаях даже поля временных таблиц распознать. В общем, нужно время.
49. Evg-Lylyk 2780 24.01.20 15:49 Сейчас в теме
(48) Реализовано уже давно в типовой консоли ИТС анализа планов
Вот более продвинутый вариант https://infostart.ru/public/940250/
51. Infector 147 24.01.20 16:45 Сейчас в теме
(49) Пощупал, все-таки не то:

Выполняю:

ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка,
Номенклатура.Код КАК Код,
Номенклатура.Наименование КАК Наименование,
Номенклатура.Артикул КАК Артикул
ИЗ
Справочник.Номенклатура КАК Номенклатура

Получаю результат в двух вариантах:

1 (SQL не выполняет)

SELECT
T1.Ссылка,
T1.Код,
T1.Наименование,
T1.Артикул
FROM Справочник.Номенклатура T1

2 (SQL выполняет, но что это не ясно)

SELECT
T1._IDRRef,
T1._Code,
T1._Description,
T1._Fld644
FROM dbo._Reference32 T1

3. Хочется видеть приблизительно такое (SQL выполняет, читается глазами, выдается иностранцам из головной компании для интеграций):

SELECT

Номенклатура._IDRRef as Ссылка,
Номенклатура._Code as Код,
Номенклатура._Description as Наименование,
Номенклатура._Fld644 as Артикул

FROM dbo._Reference32 Номенклатура
52. Evg-Lylyk 2780 24.01.20 17:03 Сейчас в теме
(51) прямой доступ к базу sql, исключительный вариант
YPermitin; +1 Ответить
55. Infector 147 24.01.20 17:12 Сейчас в теме
(52) но это проще чем учить иноземцев (исключая большую часть постсоветского пространства) конфигурировать УПП или тащить на себя плюсом 100500 задач. А так готовим запрос в 1с, а иноземцы качают в свою иноземную базу справочники, движения и все что им интересно.
54. YPermitin 7241 24.01.20 17:11 Сейчас в теме
(51) да, как-то вы решили сурово решить задачу выгрузки данных.

На счет вашего предложения по трансформации текста запроса. Оно уже в работе. Но сроков нет :)
56. Infector 147 24.01.20 17:16 Сейчас в теме
(54)был у нас иноземный гость, он и решал. Еще и пару сисадминов в свою веру обратить успел до того как уволился и уехал. Вот плоды моих экспериментов. Есть еще сырые варианты с попытками конверсии, но это не для публики. Однако пару сортов виртуальных таблиц разложить удалось. Хотите, могу поделиться.https://infostart.ru/public/849139/
57. acanta 73 24.01.20 17:24 Сейчас в теме
В свое время нашему отделу ит была интересна мысль использования рабочей базы 1с как внешнего источника данных. Ради скорости предполагалось из файловой сделать postgres с прямым доступом к СУБД. Но.. не хватило образования.
53. YPermitin 7241 24.01.20 17:10 Сейчас в теме
(49) В версии, что в разработке, подобное есть. Но этот функционал еще не точно отрабатывает для большинства запросов, просто потому что служебные запросы платформы совсем не такие как на языке 1С. Те же запросы получения настроек регистров, метаданных, временные таблицы со слежебными именами и прочее.

Вот когда я это завершу до конца, тогда это появится в рабочей версии.

Но делать из транслятора консоль не планируется :)
Возможно транслятор превратится в инструмент диагностики, если я совмещу его с разрабатываемым профайлером кода встроенного языка. Но это уже другая история...
58. Дмитрий74Чел 183 17.02.20 17:13 Сейчас в теме
Не работает http://prntscr.com/r3kblp
"У пользователя нет разрешений на выполнение данного действия"
Какие права нужны для выполнения обработки?
YPermitin; +1 Ответить
59. YPermitin 7241 17.02.20 18:02 Сейчас в теме
(58) день добрый.

Для запуска или остановки сеанса расширенных событий требуется разрешение ALTER ANY EVENT SESSION. Транслятор как-раз работает на основе XEvent. Поэтому нужно, чтобы у пользователя были такие разрешения. Подробнее на MSDN: https://docs.microsoft.com/ru-ru/sql/relational-databases/extended-events/manage-event-sessions-in-the-object-explorer?view=sql-server-ver15

Либо подключитесь под пользователем с правами sysadm, если такое позволяется.
Оставьте свое сообщение

См. также

Код разработчика в зависимости от опыта работы

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования

Пятничный пост! Как меняется код разработчика в зависимости от опыта работы.

14.02.2020    4503    YPermitin    201       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

Простая параллельная обработка данных

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Производительность и оптимизация (HighLoad) Прочие инструменты разработчика

Предлагаю способ быстрой параллельной обработки "неких" данных. Методика проста как дважды два. Предварительно подготовленная обработка запускается вручную в нескольких сеансах, и каждый сеанс занимается обработкой своей части (случайного диапазона). Может пригодиться для ускоренной обработки данных. К примеру, необходимо заполнить реквизит большого справочника, заполнение в один поток идёт долго, а сроки поджимают.

1 стартмани

10.02.2020    543    Amadeus007    8       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Zabbix: Мониторинг рабочих процессов

Статья Системный администратор Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Zabbix

Мониторинг памяти, потребляемой рабочими процессами, средствами Zabbix. Создание пользовательских LLD правил с помощью One Script

1 стартмани

07.02.2020    1473    EShchavleva    5       

Мастер полнотекстового поиска

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Windows Абонемент ($m) Поиск данных

Набор инструментов для работы с полнотекстовым индексом платформы 1С. Стандартные и расширенные возможности.

2 стартмани

07.02.2020    1700    11    YPermitin    21       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

Изменение имени домена для выбранных пользователей информационной базы

Инструменты и обработки Системный администратор Программист Архив с данными v8 1cv8.cf Россия Абонемент ($m) Администрирование СУБД

Предлагаю Вашему вниманию обработку используемую в реальном производственном процессе на нашем предприятии. Задача переименования доменов возникла при реорганизации предприятия, имена некоторых доменов для удобства решено было изменить, но при таком количестве пользователей изменение имен доменов штатными средствами выглядело нереально. Было решено создать обработку для изменения имен доменов Информационной базы. Обработка предназначена для работы в клиент-серверных базах и тестировалась на платформе 8.3.14.1854. Работает в режиме внешней обработки.

1 стартмани

30.01.2020    407    bryantsev.yury    0       

Сдача регламентированной отчетности из программ 1С Промо

Сдача регламентированной отчетности из программ "1С" во все контролирующие органы без выгрузок и загрузок в другие программы. Для групп компаний действуют специальные предложения.

от 1500 руб.

Проверка SQL базы данных 1С 8.1, 8.2, 8.3

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf MS SQL Абонемент ($m) Администрирование СУБД

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

2 стартмани

25.12.2019    3931    33    dgonson    19       

На время отключаем контроль остатков и проверку документов

Статья Системный администратор Программист Расширение (cfe) v8 ERP2 УТ11 КА2 Абонемент ($m) Администрирование СУБД

На время сеанса отключаем контроль остатков и проверку документов в ERP, КА, УТ типовыми средствами и простым расширением.

1 стартмани

24.12.2019    3314    3    sapervodichka    2       

INFOSTART MEETUP Krasnodar. 14 февраля 2020 г. Промо

Краснодар станет первым в 2020 году местом, где пройдет региональная встреча IT-специалистов сообщества Инфостарт. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Стоимость участия - 5000 рублей. Цена действительна до 26.12.2019.

Тест серверного оборудования на допустимое количество пользователей: как это использовать?

Статья Системный администратор Программист Архив с данными v8 1cv8.cf Абонемент ($m) Администрирование СУБД Нагрузочное тестирование Сервера

Выполнил 3 разных теста для проверки серверного оборудования (тест 1С, тесты gilev) на возможное число 1С онлайн-пользователей одновременно работающих на нем и интерпретировал результаты тестов через легких, средних и тяжелых пользователей с помощью таблицы с профилями реальных пользователей.

3 стартмани

17.12.2019    6566    7    sapervodichka    3       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Очистка кэша нескольких баз прямо из 1С

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Абонемент ($m) Администрирование СУБД

Обработка предназначена для очистка кэша нескольких баз непосредственно из 1С (только в обычном режиме).

1 стартмани

04.12.2019    1816    15    r.moschenskiy    2       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Работа с базами данных 1С в SQL Server Management Studio (Расширение для SSMS)

Инструменты и обработки Системный администратор Программист Архив с данными v8 Windows Абонемент ($m) Администрирование СУБД Производительность и оптимизация (HighLoad) Администрирование данных 1С Структура метаданных

Расширение позволяет просматривать связи объектов метаданных и таблиц БД, сгруппированные данные (по группам метаданных) об используемом дисковом пространстве и выполнять трансляцию SQL текста запроса в термины 1С. И бонусом - при наведении курсора мыши на таблицу или поле показывает назначение объекта в терминах 1С.

10 стартмани

27.11.2019    6725    29    akpaevj    43       

Мониторинг количества использованных программных лицензий, выданных выделенным сервером лицензирования

Инструменты и обработки Системный администратор Архив с данными v8 Linux Абонемент ($m) Zabbix

Следим за утилизацией программных клиентских лицензий на выделенном сервере лицензирования в разрезе кластеров 1С Предприятия, в состав которых включен данный сервер лицензирования

1 стартмани

22.11.2019    1616    Sloth    0       

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Быстрая реструктуризация базы данных

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Производительность и оптимизация (HighLoad) Конфигурирование 1С

Внешняя обработка для быстрой реструктуризации клиент-серверной базы данных. Способ ускорения реструктуризации - замена таблиц большого объема пустыми копиями перед проведением обновления БД и возврат к исходным таблицам после обновления с предварительной корректировкой их структуры. Полностью автоматизировано создание и выполнение всех требуемых скриптов SQL. Представлены версии обработки для обычных форм (1С:Предприятие 8.2 (8.2.19.130)) и управляемого приложения (1С:Предприятие 8.3 (8.3.9.1818)).

1 стартмани

05.11.2019    7243    20    dmitrydemenew    35       

Базовый курс по управлению ИТ-проектами. Курс проходит с 26 февраля по 22 апреля 2020 года. Промо

Отличительная черта курса - органичное сочетание трех вещей: 1.Теория проектного управления (PMI®+Agile Alliance+Российские ГОСТ+Методологии от 1С); 2. Опыт внедрения продуктов 1С (опыт франчайзи и успешных компаний + тренды Infostart Event и Agile Days); 3. Разбор реальных проблем и рекомендации экспертов по проектам слушателей. Мы будем фиксироваться на тех инструментах, которые реально оказываются полезными в практике руководителей проектов внедрения. Ведущая курса - Мария Темчина.

от 11000 рублей

Влияние БСП на производительность базы 1С с добавленными метаданными

Инструменты и обработки Программист Расширение (cfe) v8 УТ11 Абонемент ($m) Производительность и оптимизация (HighLoad) Адаптация типовых решений БСП (Библиотека стандартных подсистем)

Повод для статьи — заметное снижение быстродействия при переводе учета с УТ 11.1 на 11.4 по «нашим» не стандартным метаданным (регламенты работы с массовым заполнением/проведением документов/регистров). Предварительно причину увидел во влиянии БСП. Была создана тестовая подсистема, быстродействие которой оцениваем в демобазе "Управление торговлей". С включенными и выключенными подписками БСП.

5 стартмани

04.11.2019    2675    2    VsHome    1       

INFOSTART MEETUP Kazan. 13 марта 2020 г. Промо

Инфостарт продолжает путешествие по России. Следующая остановка - Казань. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Ждем всех: докладчиков и участников! Стоимость участия - 5 500 рублей. Цена действительна до 30.01.2020

5 500

Обозреватель криптографии

Инструменты и обработки Системный администратор Программист Внешний отчет (ert,erf) v8 Windows Абонемент ($m) Инструментарий разработчика Защита ПО

Отчет для просмотра доступных провайдеров и сертификатов криптографии на сервере и клиенте.

2 стартмани

21.10.2019    4943    6    YPermitin    10       

CF & SQL : конструктор прямых запросов к БД 1С

Инструменты и обработки Системный администратор Программист Архив с данными v8 1cv8.cf Россия MS SQL Абонемент ($m) Инструментарий разработчика Администрирование СУБД

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

1 стартмани

02.10.2019    9115    137    dmitrydemenew    35       

Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо

Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.

от 13000 рублей

Закрытие незавершенных сеансов

Инструменты и обработки Системный администратор Внешняя обработка (ert,epf) v8 1cv8.cf Россия Абонемент ($m) Сервисные утилиты Администрирование СУБД

Как удалять потерянные сеансы пользователей, чтобы они не мешали работе. Обработка протестирована на платформе версии 8.3.13.1644.

1 стартмани

20.09.2019    6072    28    AnatolPopov    8       

Кто круче: "ИЛИ" или "ОБЪЕДИНИТЬ ВСЕ" в запросе?

Статья Программист Внешний отчет (ert,erf) v8 v8::СПР v8::Запросы ЗУП2.5 MySQL Абонемент ($m) Производительность и оптимизация (HighLoad)

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

1 стартмани

14.09.2019    3349    azazana    27       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Оптимизация прав ролей

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8::УФ v8::Права 1cv8.cf Россия Windows Абонемент ($m) Производительность и оптимизация (HighLoad) Роли и права

Решение вопроса по неоптимальной настройке (избыточной) ролей, влияющей на производительность системы (потребление оперативной памяти). Алгоритм работы следующий: Выгрузка конфигурации в файлы - Обработка (изменение) файлов прав ролей - Загрузка измененных прав в конфигурацию. Проверено на платформе начиная с 8.3.12.

1 стартмани

09.09.2019    3989    3    toxilamer    11       

Еще один тест 1C: Postgres SQL 11 Pro Enterpise против MSSQL 14 под Windows 2012 Server R2

Статья Системный администратор Архив с данными v8 Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

Проработав 15 лет с MSSQL в 2017 начал активно СУБД Postgres SQL. За два года успел поработать в 9 версии Postgres и в 10-ой. И пришел к выводу, что существуют реальное замедление работы баз после перехода на Postgres. Недавно вышла 11 версия Postgres Pro Enterpise, которая обещает почти 2-х кратное ускорение над 11 Pro Standart и 10-ой версией. Закупив лицензию Postgres 11 Pro Enterpise Это я и решил проверить на 1С.

1 стартмани

05.09.2019    8521    27    ogidni    96