gifts2017

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

Опубликовал Александр Пыров (catsam) в раздел Администрирование - Сервисные утилиты

Незаменимый инструмент администратора БД и программиста: Выполняйте произвольный код из режима 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.

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

Наименование Файл Версия Размер
Exec 3x77 8x3.epf
.epf 243,73Kb
07.12.16
0
.epf 243,73Kb Скачать

См. также

PowerTools от 1 000

Автор запретил комментарии