Обработка "Консоль запросов" предназначена для составления и исполнения запросов 1С:Предприятия в режиме управляемого приложения. Данная обработка предназначена в основном для специалистов по внедрению и опытных пользователей.
Обработка «Консоль запросов» предназначена для составления и исполнения запросов 1С:Предприятия в режиме управляемого приложения. Данная обработка предназначена в основном для специалистов по внедрению и опытных пользователей.
Диалог обработки разбит на три основных блока.
Дерево запросов. В левой верхней части обработки располагается дерево запросов, составленных пользователем. Возможно добавление, удаление, перемещение элементов этого списка. По двойному щелчку мыши по строке дерева происходит выполнение выбранного запроса. Управление деревом осуществляется с помощью блока кнопок командной панели обработки. Созданное дерево запросов можно сохранить в файле с расширением «.sel».
Текст запроса. В правой верхней части обработки располагается непосредственно текст запроса. Отображаемый запрос зависит от текущей строки дерева запросов.
По кнопке «Параметры» вызывается отдельное окно, в котором можно задать список параметров запроса. В первой колонке указывается имя параметра. Во второй колонке указывается признак, позволяющий задать значение параметра выражением на встроенном языке 1С:Предприятия 8. В третьей колонке указывается собственно параметр запроса, который может быть задан непосредственно значением или выражением на встроенном языке. Список параметров текущего запроса можно получить нажатием кнопки «Заполнить из запроса».
Результат запроса можно отображать в трех режимах:
- Список
- Иерархический список
- Дерево
Описание текстов запросов, задания параметров приведено в книге «1С: Предприятие . Руководство разработчика».
Результат запроса. В нижней части диалога располагается результат выполнения запроса.
* Обработку можно использовать, внешнюю для конфигурации
(0) При открытии файла запросов вида .sel ошибка: Недопустимое значение параметра (параметр номер «2»).
раскраска кода планируется?
Я не нарывался на ошибку «При открытии файла запросов вида .sel ошибка: Недопустимое значение параметра (параметр номер «2»).» Предполагаю, что файл запросов был создан из другой консоли… Загрузи заново обработку с сайта — сейчас «висит» обновленная версия.
Про раскраску кода — пока вряд ли. Такой возможности еще не нашел: если воспользоваться свойством управляемой формы «Условное оформление», то функционал не обеспечивает оформление отдельного слова (фрагмента текста) поля текстового документа. Если пытаться установить условие «Содержит» в диалоге упомянутого свойства, то при запуске обработки в режиме 1С:Предприятие сеанс аварийно завершается. Возможно подобная возможность появится в следующих релизах Платформы.
В чем преимущества над аналогами?
Преимущества… Вряд ли можно отметить какие-либо уж очень значимые. Вопрос скорее всего в субъективном отношении: многие привыкли работать с консолью для 8.1, поэтому одной из целью при разработке — привести, к соответствию с ней. Ну, также я реализовал некоторые свои видения. Мне удобнее работать с моей консолью поскольку:
— результат выводится не в табличный документ, а в таблицу формы, отсюда удобнее настраивать ширину колонок (в табличный документ можно вывести стандартными средствами — из подменю «Все действия» командной панели таблицы);
— результаты пакета открываются в отдельных окнах, что позволяет каждый результат просмотреть в полноэкранном режиме;
— только два режима получения результатов: «Получить запрос», «Получить пакет», при этом результаты временных таблиц видны при использовании второго режима.
«Прощупайте» и делайте выводы, а также пишите отзывы… 🙂
(6) Что изменилось в обработке?
Мелочи:
— откорректировал алгоритм сохранения запросов в файл: если путь уже был определен, то при следующем сохранении, диалог выбора каталога не выводится.
— добавил еще несколько кнопок для работы с текстом запросов (не помню, в прошлой опубликованной версии было ли это).
ох, упирался, не хотел, но вот и мне понадобилась консоль для управляемого.
А чего ж упирался?! 🙂
(9)Misanets, на курсах Насипов показывает, как использовать 1с-консоль запросов в управляемом приложении.
Неужели мою консоль?! 🙂
спасибо.пригодится
Не за что! Пользуйся на здоровье! 😉
А у Вас
спина белаякартинки все пропали..Странно! Только проверил — все на месте… 🙂
(16)
Это из кэша вашего броузера. Из дома — тоже не видно. Если не трудно — перегрузите их заново.
Возможно, но маловероятно по следующим причинам:
— модератор не публикует без картинок;
— я регулярно очищаю кэш браузера.
В ближайшее время обновлю картинки… 😉
А я вот, ребята, тоже изобрел — велосипед называется. Многие привыкли пешком ходить, так вот вам мое изобретение. И почему кроме меня никто до этого не додумался?
Ого! Сурьезная заява! 😀
Спасибо, пригодиться!
Рад, что консоль полезна кому-либо!
Не могу добавить параметр списком
ФизЛицо В (&ФизЛицо)
К сожалению, пока еще не реализовал этот функционал (добавления параметра списком) — постараюсь в ближайшее время реализовать.
Авансом! Чтобы было дальнейшее развитие работы! 🙂
Постараюсь, развить… 🙂
То, что обещал — выполнил… 🙂
(6)
плюс за реализацию традиционного интерфейса консоли
и за отображение результата пакетного выполнения.
один вопросик:
как будут выводиться в таблице результата колонки,
если
тип значения поля запроса не доступен на клиенте,
например колонки полей с табличными частями объектов,
имеющие тип «ТаблицаЗначений» ???
Спасибо, за положительный отзыв о моей консоли. Табличные части (таблицы значений) не выводятся в результат — предполагается, что если уж понадобится выборка табличной части, то запрос будет построен с обращением именно к ней. Т.е. если написать запрос вида «ВЫБРАТЬ * ИЗ <ИмяТаблицы>», где ИмяТаблицы — таблица документа, содержащего хотя бы одну таб. часть, то произойдет то, что описано выше. 🙂
(29)
ммм … а именно в каком посте ОпИСАнО ???
🙂
(30)
Вообще-то говоря иногда бывает нужно выбирать табличную часть объекта отдельным полем.
У меня есть практический пример,
в котором выгребаются всевозможные данные по заказам покупателям,
по взаморасчетам с клинтами по этим заказам и …
табличная часть из некоего спрвочника, описывающей условия отсрочки платежей.
Далее в цикле полученная выборка данных обрабатывается
для построения графика платежей клиентов и
вычисления «просроченной» задолженности.
Не полян вопрос… Если вопрос о фрагменте когда, выполняющем проверку, то см. фрагмент кода:
Форма.МодульФормы.ПодготовитьКоллекцию(),
фрагмент:
Для Каждого Колонка Из КоллекцияКолонок Цикл
Если Колонка.ТипЗначения.СодержитТип(Тип(«ТаблицаЗначений»)) Тогда
Продолжить;
КонецЕсли;
…
КонецЦикла;
Нужно будет подумать над этим… 😉
(31)(32)
так, понятно …
надо полагать что такие поля вообще исключается при выгрузке результата запроса в таблицу значений
и стало быть спрашивать о том,
можно ли просмотреть эту «вложенную» таблицу при клике мышью по ячейке
пока рановато.
Тогда спрошу
Можно ли просмотреть при клике мышью значения, запакованные в полях типа «ХранилищеЗначений» ???
🙂
PS:
На вскидку не могу сообразить, что запрос 1С может вернуть,
что не позволено использовать на стороне «управляемого» клиента ?
Объект «ОписаниеТипов» вроде доступен…
в качестве параметра можно сделать массив и МоментВремени?
(35) rasswet,
1. массив нельзя — но вместо него в традиционной консоли используется список значений.
2. момент времени нельзя никак — для него даже нет интерактивных средств выбора…
…единственная возможность:
вычислить перед выполнением запроса значение момента времени из составляющих,
заданных в других параметрах и установить его в качестве параметра как бы «виртуально».
Нормально.
Видно, что делал для себя. Добротно.
Беру в свой инструментарий.
Спасибо! Будет время, еще поработаю над ней — есть еще над чем работать. 🙂
Спасибо за интересную консоль, плюсую
Спасибо,за характеристику моей консоли, как «интересную» — вдохновляет.
Было бы неплохо заставить открывать файл запросов и при работе в режиме клиент-сервера. Сейчас нормальная работа (открытие сохраненных запросов и работа с этим списком) возможна только в файловом режиме (или при работе непосредственно на сервере, что не всегда хорошо).
А в остальном — это одна из лучших (привычная, удобная, кому как нравится) консоль из имеющихся.
Вот, на будущей недельке выйду в отпуск и вполне возможно, что повожусь с консолью — мне тоже некоторые моменты «режут» глаза, но до их отладки пока руки не дошли. 😉
(41) tomvlad,
А в чем проявляется проблема с открытием файла в клиент-серверной базе???
(43) yuraos, не предусмотрена возможность того, что файл может быть открыт на сервере. А сервер может, к примеру, не иметь доступа к расположению файла списка запросов.
(44) tomvlad,
ааааа….дошло на второй день!
—
Для заполнения списка запросов приходится вызывать серверную процедуру
и через нее по простому передаем путь к файлу, выбранный на стороне клиента
…
а на стороне сервера такого пути скорей всего не нету … и не дай-бог если найдется!
(45)
знакомый прикол. тут или сетевой путь выбирать из расшаренной папки
или через загрузку во временное хранилище сам файл передавать.
Отличная консоль для управляемого приложения!!!
Прикручу к ней парсер для разборки-сборки вложенных запросов и буду использовать.
Спасибо за отзыв!
К консоли прицепил пару кнопок «Разобрать» и «Собрать» для распарсивания сложных вложенных запросов.
Действия кнопки «Разобрать»:
1. Внимание!!! Удаляет все подчиненные ветви в дереве запросов.
2. Создает и добавляет подзапросы в виде ветвей текущего запроса.
3. Копирует все параметры в подчиненную ветвь запроса.
4. Рекурсивно раскладывает до последнего вложенного запроса.
Действие кнопки «Собрать»:
1. Заменяет текущие подзапросы запросами из ветвей подчинения первого уровня вложения. Сборка ведется не по именам подзапросов, а позиционно, в том порядке в котором происходила разборка.
2. Внимание!!! Сборка не отслеживает соответствие возвращаемых параметров, при его изменении после разборки.
Практически это выглядит следующим образом:
1. Выкладываем запрос для отладки и корректировки в «Консоль»
2. Указываем все необходимые параметры.
3. Нажимаем кнопку «Разобрать»
4. Находим ветвь с необходимым для отладки подзапросом
5. Вносим необходимые изменения. Выполняем. И если нет ошибок переходим к п.6
6. Поднимаемся на 1 уровень выше, нажимаем «Собрать» и выполняем подзапрос более верхнего уровня.
7. При возникновении ошибок устраняем их и выполняем пункт 6. до тех пор пока не поднимемся до основного запроса.
С данным механизмом я работал и раньше (http://forum.infostart.ru/forum24/topic20163/ сообщение 53) теперь возникла необходимость работы с управляемыми формами…
Преимущество использования методов разборки-сборки при работе со сложными вложенными запросами
1. Возможность отладки на любом уровне вложенности.
2. Простота сборки отлаженных фрагментов.
3. Предоставляется возможность составления своих базовых скриптов как заменяемых блоков в запросе. Необходимо лишь отслеживать идентичность возвращаемых параметров.
Почему у публикации Платформа: 1С:Бухгалтерский учет 7.7 ?
(50) Дмитрий, привет! Исправил.
полезная вещь для каждого дня, сохраню на память.
(41)(42)(45)
—
Возможный вариант решения проблемы:
Считывать текст из файла с сохраненными запросами на стороне клиента
и запоминать его в строковом реквизите формы неограниченной длины:
(53)
затем вызвать серверную процедуру,
восстанавливающую из строкового представления дерево значений:
Показать
(54)
аналогично поступаем при сохранении, но в обратном порядке.
сначала вызываем серверную процедуру,
записывающую в реквизит формы строковое представление дерева списка запросов:
(55)
затем на клиенте записываем строковое значение
из реквизита формы в файл с выбранным путем (доступным на стороне клиента):
(53)
Описанная выше метода
(использование функций «ЗначениеВСтроку» вместо функций «ЗначениеВФайл«)
проверена мной в режиме обычного приложения и прекрасно там работает.
Причем запросы сохраненые «по старому» (функцией ЗначениеВФайл())
прекрасно открываются «по новому«.
—
судя по документации в управляемом приложении тоже должно работать.
Отличная работа. Спасибо
Спасибо!
Только yuraos прав — имеются недоработки для клиент-серверного варианта — руки до этого не доходят.
Извините, но без клиент-серверного варианта «+» не поставлю — не серьезно.
Валится по ошибке при вызове параметров:
{Форма.Форма.Форма(330)}: Ошибка при вызове метода контекста (ПоместитьВоВременноеХранилище)
ДеревоЗапросов.НайтиПоИдентификатору(ИдентификаторСтроки).ПараметрыЗапроса,
по причине:
Переданное значение не может быть помещено во временное хранилище
Пригодилось — так, как в большинстве консолей на управляемых формах — визуально корявый конструктор запросов (особенно в части соединений таблиц-дерево).
А здесь все родное — и по старинке быстренько набросал нужные соединения
Может интереснее будет другая моя консоль:http://infostart.ru/public/619750/: работает в клиент серверном варианте.