Инструменты разработчика 1с 8.3. Простейшая консоль ADO-запросов

Главная Заметки из Зазеркалья

19.04.2013 Новые инструменты для разработчика

Реализовано в версии 8.3.3.641.

Области в редакторе модуля

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

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

Каждой области текста, которую выделяет разработчик, он может дать собственное имя. Это позволяет простым и понятным образом выделять части модуля, имеющие сходный смысл.

Области выделяются с помощью двух новых инструкций препроцессора: #Область и #КонецОбласти . Единственное назначение этих инструкций - обозначить группируемые и сворачиваемые строки модуля.

Области могут быть вложены друг в друга или в другие группируемые конструкции языка. Например, на следующем рисунке внутри области СлужебныеПроцедурыИФункции находятся ещё три области: ИнициализацияИЗаполнение , ВидыЗапасов и Прочее :

При расстановке областей в модуле нужно следить за тем, чтобы области не пересекались между собой и с другими группируемыми конструкциями. Группировка по таким областям работать не будет.

В параметрах конфигуратора можно настроить стандартное поведение (группировка, сворачивание) областей и тех комментариев, которые расположены перед ними.

Методические ссылки в синтакс-помощнике

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

Не только начинающим, но и довольно опытным разработчикам бывает непросто найти необходимую информацию на различных ресурсах фирмы 1С. Поэтому мы создали для разработчиков специальный веб-сервис, позволяющий прямо из конфигуратора получить набор ссылок на методические материалы по интересующему механизму платформы или по конкретному методу, свойству встроенного языка.

В синтакс-помощнике, в конце каждого описания появилась ссылка "Методическая информация":

Эти ссылки ежедневно подбираются из таких источников, как ИТС, партнёрская конференция, база знаний по технологическим вопросам крупных внедрений, сайт 1С:Предприятия 8, конференция начинающих разработчиков и др.

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

Подсистема "Инструменты разработчика" (Старых Сергей, 1С 8.2, 8.3)

2017-02-15T12:53:51+00:00

Инструменты разработчика написаны супер профессиональным программистом Сергеем Старых (связаться с ним) и публикуются с его разрешения.

Описание

Инструменты разработчика - это замечательная коллекция чудо обработок, объединённых в одну подсистему:

  • Удаление объектов с контролем ссылок;
  • Поиск битых ссылок;
  • Поиск ссылок на объект;
  • Подбор и обработка объектов;
  • Поиск дублей и замена ссылок;
  • Редактор пользователей;
  • Консоль кода;
  • Консоль запросов;
  • Структура хранения БД;
  • Анализ технологического журнала;
  • Редактор параметров сеанса;
  • Редактор хранилищ настроек;
  • Анализ журнала регистрации;
  • И множество других инструментов.

Все эти обработки написал и уже много лет поддерживает настоящий профессионал своего дела Сергей Старых .

Как начать работать с инструментами

Инструменты разработчика поддерживаются Сергеем в двух вариантах: основной и портативный .

Основной вариант:

  • Требуется встраивать в конфигурацию базы.
  • Даёт больше возможностей.

Портативный вариант:

  • Не требует изменения конфигурации и открывается как внешняя обработка.
  • Даёт меньше возможностей.

Предлагаю начать с портативного, а если захочется большего - к основному варианту.

Скачиваем архив инструментов

Если есть возможность - качаем прямо с сайта Сергея, вот ссылка .

Если его сайт не работает - вот зеркало инструментов на моём сайте:

Распаковываем архив

Распаковываем скачанный архив, например, в папку "Инструменты разработчика" на рабочем столе:

Открывать из своей базы нужно именно обработку "ирПортативный.epf". Это меню инструментов и уже через него мы будем открывать все остальные обработки:

Запускаем инструменты

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

Возможные проблемы

Портативные инструменты работают только на обычных формах. Это значит, что у вас не получится запустить их на клиенте в режиме управляемого приложения.

Для использования инструментов в такой базе - запускайте её с ключом /RunModeOrdinaryApplication , который запускает толстый клиент в обычном режиме, несмотря на настройки конфигурации и пользователя.

Если вы используете в качестве стартера , то добиться этого эффекта можно:

  • Выделив базу и нажав Ctrl + F3
  • В открывшемся меню нажав кнопку Толстый клиент (ОФ)

Как обновлять инструменты

Чтобы обновить портативные инструменты - нажмите на значок помощи на их панели:

В открывшемся окне воспользуйтесь кнопкой "Обновить на актуальную версию":

Где можно посмотреть обучающие ролики

У Сергея есть свой канал на youtube с обучающими роликами по инструментам разработчика: ссылка

Благодарность

С уважением, Владимир Милькин (преподаватель

«Пф, очередная консоль запросов, еще и без всяких наворотов» – скажете вы. Действительно, ничего нового, ставка сделана на максимальную простоту, определенное удобство работы и скорость.

Перечислю особенности данной консольки:

Возможность выполнять как запросы, так и хранимые процедуры(stored procedure), возвращающие таблицу.

Форма сборки строки подключения с «человеческим лицом»

Возможность выгрузить только первые 100 или больше строк для ускорения выгрузки результата запроса (идея взята из Инструментов разработчика)

Приведу пример использования данной обработки на практике:

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

Данная форма вызывается нажатием на кнопку «…» в строке подключения или клавишей F4. Здесь же можно проверить подключение. Затем вписываем вызов запроса или хранимой процедуры в поле ввода:

Если это хранимая процедура, то формат вызова:

exec ИмяХранимойПроцедуры Параметр1,…,ПараметрN

или если это запрос к таблице или представлению (view):

select * from ИмяТаблицы

Далее жмем кнопку Выполнить, результат будет помещен в таблицу в нижней части формы. Таблицу результата можно сохранить при желании в Excel формате, нажав на «Вывести список…», затем с помощью «Сохранить как…» выбрать нужный формат.

Инструменты разработчика

Если вам нужно что-то более мощное для выполнения запросов к другим SQL базам, посмотрите консоль запросов в инструментах разработчика, один из лучших инструментов в своей нише:

На мой взгляд консоль запросов в ИР обладает некоторыми недостатками:

Требует интеграции в существующую БД (а значит снятия с поддержки). Хотя если использовать консоль в режиме ADO-запросов, можно держать отдельную базу только с ИР. Существует портативный вариант Инструментов разработчика, состоящий из набора внешних обработок и в таком варианте консоль запросов не требует интеграции, при этом её функционал не меньше, чем в полном варианте.

Текст запроса и строка подключения находятся на разных вкладках, при выполнении запроса если надо вспомнить к какой базе он выполняется, приходится переключаться между этими вкладками. К тому же, на мой вкус, консоль запросов ИР сильно загромождена редко используемыми функциями.

Иногда не работает подключение к базе, хотя строка подключения корректна, выдавая сообщение «Login failed for user "user_login"». Есть некоторые баги в конструкторе запросов ИР.

UPD 25.04.2015

В обработку добавлена управляемая форма с аналогичным функционалом

Оптимизировано получение первых N строк, до этого из запроса выгружалась вся таблица, а ограничение работало во время копирования в табличную часть, также убраны промежуточные таблицы.

UPD 05.10.2015

Исправлено некорректное определение типа данных, содержащихся в столбце результата запроса. Раньше тип определялся по типу первого элемента выборки, теперь тип данных столбца анализируется по свойствам com-объекта описания полей результата запроса.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms675318(v=vs.85).aspx

UPD 18.01.2017

Исправлена работа с типами значения adBinary и adLongVarBinary. Тип adBinary возникает например при получении ссылки из базы 1с и для него выводится шестнадцатеричное представление значения. Тип adLongVarBinary возникает например при получении значения типа ХранилищеЗначения из базы 1с и для него выводится строка «» без отображения значения, что сделано в целях оптимизации.

Кратко
Оформлен в виде подсистемы набор некоторых из часто используемых при разработке инструментов:
консоль запросов
консоль построителей отчетов
консоль компоновок данных
справочник алгоритмов
исследователь объектов
интерфейсная панель
универсальные подбор и обработка объектов
универсальный редактор реквизитов
универсальный редактор констант
универсальный редактор параметров сеанса
универсальный список
поиск и замена дублей
проверка базы данных перед усечением типов
контекстная подсказка с синтакс-помощником
менеджер интерфейсов
поиск ссылок на объект
менеджер табличного поля
функции режима отладки

Поддерживаются режимы запуска:
обычное приложение
управляемое приложение Толстый клиент c установленным свойством конфигурации "Использовать обычные формы в толстом клиенте в управляемом режиме"

Подробно

Справочник алгоритмов, где можно хранить и откуда можно выполнять программный код

Интерфейсная панель [необходимо зарегистрироваться для просмотра ссылки] , которая позволяет быстро находить нужный объект метаданных и открывать нужную его форму

Менеджер интерфейсов, раскрывающий возможности платформы по управлению интерфейсами

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

Доработанная консоль запросов
- поддержка пакетных запросов
- поддержка временных таблиц
- конструктор запроса "понимает" запросы с обращениями к существующим временным таблицам (у всех временных таблиц должны быть псевдонимы)
- дерево запроса (для работы режима дерева запроса автоматически регистрируется библиотека (COM-компоненту) GoldParser.DLL)
- в режиме дерева запроса можно редактировать/ смотреть содержимое отдельно каждого узла
- вездесущая контекстная подсказка (если имеются вложенные запросы, то для улучшения ее работы лучше включать режим дерева запроса)
- режим сворачивания вложенных запросов в режиме дерева запроса
- замер времени выполнения
- настройка динамического отбора и порядка в режиме компоновки (в режиме построителя поддерживается настройка только отбора и только с 11-го релиза)
- просмотр результирующего запроса
- обработчики перед выполнением, строки и самого результата
- функции для рефакторинга запроса в режиме дерева запроса: "Перенести в новый запрос" и "Преобразовать в подзапрос"
- вызов из отладчика (через диалог "Вычислить выражение")/из кода через Отладить(Запрос, *Модально) - запрос открывается в консоли с сохранением работоспособности
- переход (по F12) к определению таблицы или во вложенный запрос в режиме дерева запроса
- пошаговое выполнение пакетного запроса (по F10)
- автоматический вывод содержимого созданной временной таблицы
- после большинства операций с текстом запроса параметры извлекаются автоматически

Доработанная консоль построителей отчетов, у которой улучшен редактор текста запроса и редактор выражения параметра; ее можно использовать в режиме отладки - Отладить(ПостроительОтчета, *Модально); исполняемый запрос можно передавать в консоль запросов

Доработанная консоль компоновок данных, у которой улучшен редактор текста запроса набора данных; ее можно использовать в режиме отладки - Отладить(СхемаКомпоновки, *Модально, *НастройкаКомпоновки, *ВнешниеНаборыДанных); исполняемые запросы можно передавать в консоль запросов

Доработанная обработка универсальные подбор и обработка объектов, у которой улучшен редактор произвольного алгоритма

Доработанная обработка поиск и замена дублей [необходимо зарегистрироваться для просмотра ссылки] , помещена в подсистему ввиду несовместимости мобильной версии с самой подсистемой

Обработка проверка базы данных перед усечением типов [необходимо зарегистрироваться для просмотра ссылки] , помещена в подсистему ввиду несовместимости мобильной версии с самой подсистемой

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

Доработанная обработка универсальный редактор реквизитов [необходимо зарегистрироваться для просмотра ссылки] ,

Универсальный редактор констант, позволяющий просматривать и редактировать константы

Универсальный редактор параметров сеанса, позволяющий просматривать и редактировать параметры сеанса

Универсальный список, позволяющий просматривать и редактировать произвольную доступную таблицу БД

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

Функция для изменения значения во время отладки _(Перем1, Перем2), присваивает параметру Перем1 значение параметра Перем2. Например _(Построитель.Текст, "ВЫбрать * Из Константы"). Идея взята отсюда [необходимо зарегистрироваться для просмотра ссылки]

Функция для выполнения произвольного кода во время отладки ДУ(СтрокаВыражения, П1=, П2=, П3=,...) - выполяет код из параметра СтрокаВыражения, где могут применяться параметры П1, П2, П3,... Например ДУ("П1.Текст = П2", Построитель, "ВЫбрать * Из Константы"). Идея взята отсюда [необходимо зарегистрироваться для просмотра ссылки]

Функция для открытия консолей во время отладки Отладить(Объект, *Модально, *НастройкаКомпоновки, *ВнешниеНаборыДанных), удобно вызывать из отладчика (через диалог "Вычислить выражение"); варианты использования:
Отладить(Запрос, *Модально) - открывает запрос в консоли запросов
Отладить(ПостроительЗапроса, *Модально) - открывает результирующий запрос построителя запросов в консоли запросов
Отладить(ПостроительОтчета, *Модально) - открывает построитель отчета в консоли построителей отчетов, откуда можно открыть результирующий запрос построителя отчета в консоли запросов
Отладить(СхемаКомпоновки, *Модально, *НастройкаКомпоновки, *ВнешниеНаборыДанных) - открывает схему компоновки в консоли компоновки данных, откуда можно открыть результирующие (из макета компоновки) запросы в консоли запросов

Компонента контекстная подсказка и синтакс-помощник - все доступные программно редакторы программного кода и текста запроса содержат контекстную подсказку вместе более умным по сравнению с конфигуратором синтакс-помощником; в 8.1 для использования синтакс-помощника требуется в настройках компоненты "контекстная подсказка" указать локальный путь к архиву синтакс-помощника; для корректной работы формы подсказки требуется установленный пакет MS Office 95-2007 (более поздние версии не содержат нужной компоненты); данная функциональность также доступна в виде отдельной подсистемы [необходимо зарегистрироваться для просмотра ссылки].

Порядок установки и обновления

Файл конфигурации подсистемы нужно объединять с целевой конфигурацией. Все объекты подсистемы имеют префикс "ир".

ВАЖНО! При объединении нужно снимать флажки со всех свойств конфигурации. После первого объединения нужно сразу вручную внести текст из соответствующих модулей конфигурации подсистемы в целевую конфигурацию в модули
обычного приложения
управляемого приложения
внешнего соединения

Чтобы предоставить пользователю информационной базы возможность использования подсистемы, ему нужно включить роль ирРазработчик.

Скачать архив с версиями 2.04 и 2.23 (пароль доступен после успешного тестирования, после прочтения правил).