Exec — Выполнение кода, консоль запросов и не только!




Незаменимый инструмент администратора БД и программиста:
Выполняйте произвольный код из режима 1С Предприятие; сохраняйте/загружайте часто используемые скрипты; выполняйте запросы с замером производительности запроса в целом и каждой из временных таблиц в частности, а также с просмотром содержимого временных таблиц; произвольным образом изменяйте любые объекты БД, редактируя даже не вынесенные на формы реквизиты и записывая изменения в режиме «ОбменДанными.Загрузка = Истина»; легко узнавайте ИД объектов БД; выполняйте прямые запросы к SQL с замером производительности и не только!

Это облегченный частичный аналог ИР_мобильного. Меньше тормозов, но и функционала меньше.

Описание (также включено в саму обработку):

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

Exec, features:

Реквизиты:

— СтруктураПараметров. Произвольный. Используется для хранения параметров текущего окна исполнения.

— СтруктураСтрокиСоединения. Произвольный. Используется для хранения строки соединения ADODB.

Основная форма:

«Страница исполнения» (доступна в управляемом режиме)

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

Функционал:

— Окно редактирования исполняемого кода со следующими доп. возможностями:

  • Добавление/удаление страниц исполнения (страницы и их параметры сохраняются при закрытии обработки).
  • Простой «интеллисенс» (вызывается по Ctrl+Пробел). Умеет:

o    Определять тип переменных, включая работу через точку, используя вставленный в обработку «справочник типов», представляющий собой кучу макетов, по одному на каждый тип значения (в том числе существует макет, содержащий служебные процедуры, функции и переменные локального контекста этой обработки).

o    Получать список реквизитов, общих реквизитов, стандартных реквизитов, табличных частей, стандартных табличных частей, измерений, ресурсов.

НЕ умеет, и не будет уметь:

o    Получать функции/процедуры общих модулей, объектов и менеджеров объектов.

Пока что НЕ умеет, но будет уметь:

o    Получать реквизиты табличных частей.

o    Получать список типов в предложении «Новый».

  • Замер производительности (в миллисекундах):

o    Для начала замера необходимо вставить в код вызов процедуры «НачатьЗамерПроизводительности();». Данная функция возвращает новый уровень замера. Уровни замеров начинаются с 0.

o    Для завершения замера необходимо вызвать функцию «ЗавершитьЗамерПроизводительности(бСообщитьВремя = Ложь);». Если передать в параметре функции «Истина», то функция самостоятельно выдаст сообщение пользователю о завершении замера. Можно производить вложенные замеры. Уровень вложенности не ограничен. Функция возвращает массив, где первым значением идет время замера, вторым — отформатированное время замера строкой, а третьим — уровень замера.

o Также существует возможность выполнения запросов в коде (на странице исполнения кода) с замером производительности запроса как в консоли запросов. Фактически, это возможность выполнить запрос из кода так, как будто он выполнен на странице консоли запросов. Для этого необходимо вызвать процедуру ВыполнитьЗапросСЗамеромПоВТ(Запрос). Для работы с результатом запроса в этом случае можно использовать переменную МассивИменноРезультатовЗапроса.

Например:

КрайнийРезультат = МассивИменноРезультатовЗапроса[МассивИменноРезультатовЗапроса.ВГраница()];

  • Простейший функционал обработки ожидания. Работает так:

o    есть процедура ВыполнитьКодОбработчикОжидания(); она вызывает «как бы» нажатие кнопки «Выполнить» на странице исполнения кода; но перед этим она вставляет в структуру параметров свойство «бВыполняетсяВОбработчикеОжидания»; сама процедура выполнения кода, если находит это свойство в структуре параметров, удаляет его оттуда. Таким образом, можно выполнить примерно такой код:

ПодключитьОбработчикОжидания("ВыполнитьКодОбработчикОжидания", 3, Истина);

Если СтруктураПараметров.Свойство("бВыполняетсяВОбработчикеОжидания") Тогда

Сообщить("Ура!");

КонецЕсли;

Он, фактически, означает, что через 3 секунды и каждые три последующих будет выведено сообщение «Ура!». Если, конечно, не переключаться на другие страницы панели исполнения кода.

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

В дальнейшем, данный функционал планируется совершенствовать (например, отвязать его от текущей страницы панели исполнения кода).

— Таблица используемых параметров (просмотр, перетаскивание в окно редактирования, изменение имени параметра)

— Командная панель, которая содержит:

  • кнопку сохранения параметров и текста в файл с расширением «|*.exec» (Ctrl+S)
  • кнопку загрузки параметров и текста из файла с расширением «|*.exec» (Ctrl+O)
  • кнопку вызова формы редактирования параметров
  • кнопку управления видимостью таблицы параметров
  • кнопку помещения в исполняемый код имен таблицы/дерева результата запроса или массива таблиц результатов пакета
  • (атавизм, возможно, в будущих версиях обработки будет исключено — или переделано в кнопку открытия списка свойств
  • и методов контекста обработки)

— Форма редактирования параметров.

  • Форма предназначена для редактирования параметров которые впоследствие можно использовать в исполняемом коде.

Например задав параметр «СсылкаДокумента» и выбрав конкретную ссылку на документ,

в исполняемом коде становится доступна переменная СсылкаДокумента содержащая выранное значение.

На имя параметра наложено ограничение ключа структуры.

«Страница изменения» (доступна в управляемом режиме)

Страница предназначена для выбора объекта из базы данных и просмотра (редактирования) его свойств.
Функционал:

— Поле выбора изменяемого объекта

— Поле отображения идентификатора изменяемого объекта

— Кнопка копирования идентификатора изменяемого объекта в буфер

— Возможность открытия произвольной формы объекта изменения

— Дерево имен и значений реквизитов выбранного объекта (с возможностью изменения или очистки)

— Кнопки изменения состава строк табличных частей выбранного объекта

— Кнопки изменения порядка следования строк табличных частей выбранного объекта

— Кнопки пометки на удаление и непосредственного удаления объекта

«Страница консоли запросов»

Страница предназначена для выполнения запросов к базе используя встроенный язык запросов.
Функционал:

— Дерево запросов

— Командную панель, которая содержит:

  • кнопка сохранения дерева запросов в файл с расширением «|*.exsel» (Ctrl+S)
  • кнопка загрузки дерева запросов из файла с расширением «|*.exsel» (Ctrl+O)
  • кнопка редактирования параметров запроса
  • кнопка экспорта текста запроса в буфер обмена (подставляются двойные кавычки и символы переноса строки)
  • кнопка вставки текста запроса из буфера обмена (убираются двойные кавычки и символы переноса строки)

— Окно редактирования запроса на встроенном языке, с возможностью использования конструктора запросов

— Таблица результата исполнения запроса в виде таблицы, дерева или сводной таблицы.

Доступны как переменные «ТаблицаРезультатаЗапроса», «ДеревоРезультатаЗапроса» и «СводнаяТаблицаЗапроса» соответственно в окне исполнения.

— Все результаты выполнения пакетного запроса в виде списка временных таблиц с именами.

Доступны как массив, содержащий таблицы в порядке их следования в запросе. Имя массива: МассивВременныхТаблицЗапроса.

«Страница запросов SQL»

Страница предназначена для выполнения прямых запросов к SQL базам используя ADODB.
Функционал:

— Строка соединения (редактируется в специальном окне)

— Командную панель, которая содержит:

  • кнопка сохранения строки соединения и текста запроса в файл с расширением «|*.exsql» (Ctrl+S)
  • кнопка загрузки строки соединения и текста запроса из файла с расширением «|*.exsql» (Ctrl+O)

— Окно редактирования запроса к SQL

— Таблица результата исполнения запроса к SQL.

Доступна как переменная «ТаблицаРезультатаSQL» в окне исполнения.

«Соответствие имен объектов с SQL»

Страница предназначена для получения соответствий имен объектов метаданных с именами таблиц и полей хранения этих объектов в SQL.

«Страница обмена данными» (доступна в управляемом режиме)

Страница предназначена для выполнения выгрузки (загрузки) данных между идентичными конфигурациями.
Функционал:

— Поля выбора типа и вида объекта для выгрузки (загрузки)

— Поле выбора имени файла обмена

В планах дальнейшей разработки:

— Перевод страниц в управляемый режим:

«Страница запросов (© consquery8.*)»

«Страница прямых запросов к SQL»

«Соответствие имен объектов с SQL» 

— Унифицированная работа с параметрами (для страниц исполнения и запросов)

— Доступ к описанию внутренних переменных в режиме предприятия

«Страница прямых запросов к SQL»

 — возможность просмотра внутренней структуры хранения данных 1С (только для базы MS SQL Server)

 — конвертация имен метаданных в имена таблиц хранения данных 1С (только для базы MS SQL Server)

«Страница обмена данными»

— возможность настраиваемой выгрузки объекта по набору свойств (для каждого свойства возможна установка правила выгрузки значения, правила выгружаются в отдельный файл)

— возможность настраиваемой загрузки объекта по набору свойств (для каждого свойства возможна установка правила загрузки значения, правила загружаются из отдельного файла)

— возможность указания списка объектов для выгрузки

— возможность выгружать ссылочные данные

 — and more…

Авторы ©обирайта: LordKim и CatSam.

Leave a Comment

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