Работа с запросом и СКД,
Полная поддержка пакетных запросов, временных таблиц,
Сравнение результатов, текстов,
Разбор структуры запроса в виде дерева,
Анализ плана запроса,
Групповая обработка
Сегодня 2 года проекту, события за год:
Вышла Топ1-2 (загрузок), получила 1С-Совместимо, были доклады на Event 2019, Meetup Krasnodar 2020
Скачиваний: 1722 (всего), рост за год 430%
Плюсов: 438 (всего), рост за год 213%
За рубли продано: 16 копий (~16*2500р = 40000р)
Последние месяцы выпускаю только исправление ошибок,
активно ведется работа над новыми инструментами (все хорошо, большой уровень готовности)
К моменту запуска будет много новых возможностей которые должны приятно удивить
Скачал Вашу консоль, внешне мне больше нравится, чем консоль Кораблева и работает на порядок шустрее. Все в привычных мне местах и интуитивно понятно. Сразу могу работать с результатов запроса, не надо не нажимать ни каких кнопок, чтобы свернуть панели параметров и структуры запроса. за неделю работы устал от его консоли. За минимализм в интерфейсе огромный +.
Подскажите как мне как мне задать в параметре границу включая дату? Если ли возможность задать отбор по полю во временной таблице не меняя запрос?
Отличная версия! Особенно при работе с большими данными. Удобно регулировать кол-во строк к результате + отличии от все остальных не подвисает на больших данных!!!
Если в наборе данных СКД не сразу запрос, а объединение, в которое вложенны запросы, то эти запросы нельзя проанализировать.
И еще было бы удобно видеть параметры со значениями, которые при компоновки были заполнены. И совсем уж удобно - перенос этого всего в обычный запрос с анализом выборки)
(291) В новых инструментах реализовано анализ исполняемых запросов СКД с параметрами
Значения параметров действуют на все запросы схемы, нет возможности получить их для набора
Приложил скриншот
(645) Мне кажется удобней таблицу с параметрами расположить слева под списком наборов, так как наборов вряд ли будет много. А экраны сейчас и дальше будут становится широкими. Но это мое личное мнение.
В Конфе есть расширение. В расширении справочник. Справочник регистрируется в полный обмен. В конструкторе обработки при нажатии кнопки "Отображать таблицы изменений" появляются таблицы с зарегистрированными объектами. Но! У типовых объектов есть поля Узел, НомерСообщения, Ссылка, а у объекта из расширения только Ссылка. В конфигураторе в конструкторе видны все поля.
(293) Конструктор запроса объект платформы. Их 2 один для тонкого клиента один для толстого они сильно отличаются
Возможно поможет запуск в толстом клиенте
(296) Наверное это:
На мисте была тема https://forum.mista.ru/topic.php?id=839994&page=1 Выход был запускать конструктор тонкого клиента, чтобы в толстом клиенте запускался конструктор тонкого в настройках есть галочка Использовать конструктор толстого клиента ее снять.
(299) Спасибо, нашел. Возник еще вопросик - если у схемы компоновки уже заданы несколько вариантов - как их все подгрузить, чтобы в дереве они появились?
Нашлась проблема при открытии ранее сохраненного файла (версия консоли 3.5.1, при сохранении и восстановлении не менялась).
В запросе создал описание временной таблицы, добавил и указал типы колонок.
Текст запроса:
ВЫБРАТЬ
ТЗ.Сотрудник КАК Сотрудник
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
&ТЗ КАК ТЗ
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВременнаяТаблица.Сотрудник КАК Сотрудник
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
ГДЕ
ВременнаяТаблица.Сотрудник В (&Сотрудники)
Показать
В параметрах ТЗ появляется, в нее гружу с помощью "ЗначениеИзСтрокиВнутр" из файла. Все загружается, запрос выполняется.
Далее вношу изменения в текст запроса, также все работает. Сохраняю в файл- все ок. А вот при открытии из файла получаю ошибку "Ошибка при загрузке файла ПутьКФайлу. Несоответствие типов (параметр номер'1)'
Еще заметил что при повтроном открытии конструктора запросов теряется описание временной таблицы
(305) Это в конструкторе Конструктор это объект платформы у него нет возможности передать описания перед запуском.
Только модифицировать конструктор, а это сложный путь т.к. он зависит от версии платформы, и у него код на английском. Такая идея давно была.
(306) (307) Можно попробовать "подсунуть" ему уже готовый запрос с выборкой всех полей и помещением во временную таблицу. Либо не хитрить, а предусмотреть какую-нибудь кнопку в интерфейсе Вашей консоли для генерации и вставки такого запроса.
(302) В новых инструментах реализовано автоматическое считывание полей и типов из текста запроса и из СКД(объект)
также описания внешних источников передаются в конструктор запроса
Консоль очень функциональная. Помогает отлаживать сложные запросы с кучей временных таблиц из конфигурации.
Сегодня наткнулся на то, что после сохранения запроса в файл из отладки не получается его открыть в консоли. Ругается на типы колонок некоторых временных таблиц: PointOfTime и AccumulationMovementType
В функции УКО_ЧтениеMCR.ЧтениеЗначенияОписанияТипов() добавил замену:
в процедуре УКО_Формы.ДобавитьКолонкуВТаблицуЗначений()
Для некоторых типов (например, ВидДвиженияНакопления) получается Неопределено и операция присваивания падает с ошибкой "Несоответствие типов" (тоже сам поправил для себя).
И вот ещё до кучи: по поводу того, что иногда при сохранении в колонках временных таблиц не указан тип. В моём случае таких было достаточно много. Фактически во всех строках этих колонок записано Неопределено, но платформе нужен тип в таблице значений. Я добавил вот такую процедуру:
Процедура ЗаполнитьПустыеТипыКолонок(ТаблицаЗначений, ИмяТаблицы)
// Обработаем колонки без типов
Для Индекс = 0 по ТаблицаЗначений.Колонки.Количество()-1 цикл
Кол = ТаблицаЗначений.Колонки[Индекс];
Если Кол.ТипЗначения.Типы().Количество() = 0 тогда
// Нашли колонку без типа
// Убедимся, что значений нет
Для каждого Стр из ТаблицаЗначений цикл
Если Стр[Кол.Имя] <> Неопределено тогда
ВызватьИсключение "В таблице """ + ИмяТаблицы + """ в колонке """ + Кол.Имя + """ есть значения, но нет типа";
КонецЕсли;
КонецЦикла;
// Теперь удалим эту колонку и добавим новую с типом Неопределено
ИмяКолонки = Кол.Имя;
ЗаголовокКолонки = Кол.Заголовок;
ШиринаКолонки = Кол.Ширина;
ТипКолонки = Новый ОписаниеТипов("Булево,Дата"); // нужно Неопределено, но для этого нужно 2 любых типа :-(
ТаблицаЗначений.Колонки.Удалить(Индекс);
ТаблицаЗначений.Колонки.Вставить(Индекс, ИмяКолонки, ТипКолонки, ЗаголовокКолонки, ШиринаКолонки);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показать
И вставил её запуск при выгрузке таблицы в файл (функция УКО_ОтложеннаяОтладка.ДанныеЗапросаИзОбъекта, там где идёт загрузка временных таблиц). Хотя лучше, наверное, при чтении из файла это добавить.
После этого всё заработало отлично.
(319) Не понимаю почему так при использовании ВТ обязательно должен стоять тип откуда такие. Тип(неопределено) это все типы почему Булево, Дата
Пока не понимаю что за код и зачем вроде как не нужен
(320) Изначально после сохранения запроса из отладки (с временными таблицами) потом при открытии и выполнении выходила ошибка:
{УправляемаяКонсольОтчетов ОбщийМодуль.УКО_Запрос.Модуль(943)}: Ошибка при вызове метода контекста (Выполнить)
Запрос.Выполнить();
по причине:
{(27, 1)}: Тип не может быть выбран в запросе
<<?>>ДокументРеализации,
потому что были колонки во временных таблицах без типа (см. скрин).
Обход этого я написал.
UPD: Во всех строках в таких таблицах было Неопределено, так что фактически какие типы подставить — не важно. Но типа должно быть хотя бы 2, чтобы возможно было записать Неопределено. Я выбрал 2 самых простых: Дата и Булево :-)
(321) Было уже такое пожелание, постараюсь учесть в будущих версиях, но пока ничего конкретного. Вариант реализации добавить пункты "Данные - Файл - Добавить ...", а для настроек галка в диалоге + в функцию отладки добавить флаг "добавлять". Не хочется перегружать интерфейс.
(322) Понимаю, но как так вроде же нельзя использовать ВТ в запросе без указания типа, видимо они не используются?
(323) В коде были заранее подготовлены временные таблицы. Каким образом — не знаю. Некоторые из них вообще, может, пустые. При выгрузке их данных в файл в таблице там где идёт код:
Для Каждого ВременнаяТаблица Из Объект.МенеджерВременныхТаблиц.Таблицы Цикл
ТаблицаЗначений = ВременнаяТаблица.ПолучитьДанные().Выгрузить();
В таблице значений есть колонки, у которых описание типа пустое. Фактически, думаю, платформа просто динамически его определяет и подставляет Неопределено, если в ней только неопределённые значения. Но если добавить в таблицу колонку
Таблица.Колонки.Добавить("Новая", Новый ОписаниеТипов("Неопределено"))
то у этой таблице описание типов будет пустое и при загрузке данных в запросе из параметра во временную таблицу возникнет описанная ошибка. Тут, понятно, небольшой косяк платформы. Но он легко обходится
Опять попался непредвиденный случай :-)
В типовой КА2 в модуле документа РеализацияТоваровУслуг есть функция ВременныеТаблицыДокумента(). Так вот в ней в параметры запроса помещают табличную часть документа!
При сохранении такого запроса для отладки где-то в УКО_ЗаписьMCR.ЗаписатьПараметрЗапросаВXML() выходила ошибка.
Добавил там это:
ИначеЕсли ТипВсеТабЧасти().СодержитТип(ТипЗнч(Значение)) Тогда
ЗаписатьПолеВXML(ЗаписьXML, "Type", "Table");
ЗаписатьТаблицуЗначенийВXML(ЗаписьXML, Значение.Выгрузить());
...
Функция ТипВсеТабЧасти()
Типы = Новый Массив();
Для каждого МД из Метаданные.Справочники цикл
Для каждого ТЧ из МД.ТабличныеЧасти цикл
Типы.Добавить(Тип("СправочникТабличнаяЧасть." + МД.Имя + "." + ТЧ.Имя));
КонецЦикла;
КонецЦикла;
Для каждого МД из Метаданные.Документы цикл
Для каждого ТЧ из МД.ТабличныеЧасти цикл
Типы.Добавить(Тип("ДокументТабличнаяЧасть." + МД.Имя + "." + ТЧ.Имя));
КонецЦикла;
КонецЦикла;
Возврат Новый ОписаниеТипов(Типы);
КонецФункции
1) есть запрос с временными таблицам (слева дерево временных таблиц развернуто),
2) пользователь вносит вручную изменения в текст запроса и в самом тексте допускает ошибку, но кнопку "Проверить" не нажимает,
3) нажимает на строку временной таблицы (слева, в дереве временных таблиц запроса),
4) видит ошибку:
"{ВнешняяОбработка.УКО_УправляемаяКонсольОтчетов.Форма.Основная.Форма(468)}: Значение не является значением объектного типа (Страница)
Если ЗначениеЗаполнено(ТекущиеДанные.Страница) Тогда".
P.S хотя у меня версия 3.5.1 - может сейчас это и исправлено
А есть версия с совместимостью 8.3.8? Или мне достаточно закомментировать "УстановитьОтключениеБезопасногоРежима(Истина)"?
Хорошо бы программно определять совместимость и либо включать расширенный функционал либо нет. А то открываешь и на тебе - ошибка. Неприятно(
(332) Сожалею, но версии ниже 8.3.10 не планирую поддерживать разработка нацелена на будущее и без того много сложностей.
Пробуйте работать и по мере возникновения проблем поправляйте серьезных сложностей не должно возникнуть.
Новая версия 3.6.0 от 04.09.2019 Улучшена форма выбора типа
* Добавлен поиск
* Использование при задании типа значения колонки
* Оптимизировано время открытия
Добавлена возможность настраивать вывод временных таблиц (Выводить, не выводить, свернуто)
Запуск по Alt + C (только для расширения)
Улучшение пользовательского интерфейса
Исправлены ошибки
Есть проблемы с отображением описания на этой странице.
В разделе "Часто задаваемые вопросы" блоки
"Конструктор запроса какой-то не такой..." и
"При запуске сообщает...".
Нажимаешь на плюсик около этих блоков, а они исчезают.
С другими блоками все нормально, исправьте, пожалуйста.
(345)
Теперь с блоком "Конструктор запроса какой-то не такой..." все нормально, но исчезают блоки
"Чем ваш вариант консоли лучше ..." и "При запуске сообщает...".
Возможно, есть смысл вообще отказаться от вложенных блоков и оставить только внешний
блок "Часто задаваемые вопросы", где прописать все вопросы/ответы.
Отличная обработка! Перешел на неё несколько месяцев назад.
Есть 2 маленьких пожелания по юзабилити:
1. Вынести на панель кнопку Открыть, разместить можно рядом с кнопкой Сохранить. Т.к. действие открыть сохраненные запросы очень частое, а в меню лесть 2 лишних клика (горячие клавиши - отрываться от мышки ещё дольше).
2. Кнопку Проверить сдвинуть влево перед сообщением об ошибки. Середина экрана больше на глазах (особенно при больших мониторах).
(352) не мы же программисты так не делаем, только правка исходников )))
Серьезно даже не подумал, что так просто это можно решить. Деформация уже сознания.
Надо бы требования к платформе поправить в описании. На 8.3.10.2650 выскочило
{ВнешняяОбработка.УКО_УправляемаяКонсольОтчетов.МодульОбъекта(7201)}: Поле объекта не обнаружено (ГоризонтальнаяВсегда)
ГруппаСумма.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда;
Документооборот 8 КОРП, 2.1.13.28
В конфе нет подсистемы Администрирование, есть "НастройкаИАдминистрирование". Можно конечно и руками заменять, но хотелось бы по возможности автоматом
(357) В новых инструментах установка производится добавлением подсистемы
что решает проблему с которой вы столкнулись
также для упрощения установки есть обработка установщик
У меня сейчас версия платформы 8.3.15.1565. И в консоли запросов (откуда она, уже не помню, не ваша) при создании запроса с нуля с помощью конструктора запросов, при нажатии на плюсик в дереве метаданных вылетает ошибка "Ожидается выражение ВЫБРАТЬ" и всё, 1С сдохла, только перезапускать. В вашей консоли такой фигни нет?
(360) Ну так в конфигураторе же нет такой ошибки. И проблема даже не в самой ошибке, а в том, что после неё закрывается 1С. Ладно бы только конструктор запросов вылетел, а консоль запросов продолжила работу и можно было снова его запустить. У вас как консоль себя ведёт в случае такой ошибки?
(361) Это ошибка в конструкторе толстого клиента, в конфигураторе используется конструктор толстого клиента. Если вы запустите консоли в режиме толстого ошибки не будет.
"Ладно бы только конструктор запросов вылетел, а консоль запросов продолжила работу и можно было снова его запустить. У вас как консоль себя ведёт в случае такой ошибки?"
Вы понимаете что это ошибка платформы я не могу ничего с ней сделать. Ведет себя также как и все.
Добрый день. Спасибо за отличную консоль.
Помогите пожалуйста. Мне нужно замерить время выполнения обработки результата.
Я запросом получил коллекцию документов. Для всех выбранных документов я выполняю алгоритм из режима Инструменты - Обработка результата.
Процедура выполняется долго. Замерять время вручную нет возможности. Как можно засечь время начала и конца выполнения обработки результата?
Скачал обработку
1) Если не писать в Тексте запроса ничего и нажать на конструктор - падение 1С
2) Создал 2 запроса . Нажимаю сравнить - ошибка
{ВнешняяОбработка.УКО_УправляемаяКонсольОтчетов.Форма.Основная.Форма(5064)}: Значение не является значением объектного типа (Тип)
Если Строка.Тип = "Перечисление.УКО_ЭлементыДанных.ПодЗапрос" Тогда
Еще - при появлении в тексте запроса инструкции "УНИЧТОЖИТЬ" запрос не выполняется
выдает диагностику по кнопке "Проверить " - "(1,1) Поле объекта не обнаружено (ТаблицаДляПомещения)"
не получается нормально выделить ячейки в результате запроса, выделение в какой-то момент "слетает". Еще, если открывать результат запроса в отдельном окне, то там нельзя временные таблицы сворачивать, хотя значок сворачивания есть
(382) Спасибо за информацию
"не получается нормально выделить ячейки" Попробовал проблемы не обнаружил. Когда выведено несколько таблиц у них разные колонки и при выделение как бы слетает что с этим можно сделать даже не знаю.
Если нужно выделить все можно нажать Ctrl + A
"открывать результат запроса в отдельном окне, то там нельзя временные таблицы сворачивать"
Подтвердилось, буду исправлять