Консоль запросов для 1С Предприятие 8.2 (Управляемое приложение)

Программирование - Инструментарий

Консоль запросов для 1С:Предприятие  (Управляемое приложение):

Обработка "Консоль запросов" предназначена для составления и исполнения запросов 1С:Предприятия  в режиме управляемого приложения. Данная обработка предназначена в основном для специалистов по внедрению и опытных пользователей.

Обработка "Консоль запросов" предназначена для составления и исполнения запросов 1С:Предприятия в режиме управляемого приложения. Данная обработка предназначена в основном для специалистов по внедрению и опытных пользователей.

Диалог обработки разбит на три основных блока.

 

Дерево запросов. В левой верхней части обработки располагается дерево запросов, составленных пользователем. Возможно добавление, удаление, перемещение элементов этого списка. По двойному щелчку мыши по строке дерева происходит выполнение выбранного запроса. Управление деревом осуществляется с помощью блока кнопок командной панели обработки. Созданное дерево запросов можно сохранить в файле с расширением ".sel".

 

Текст запроса. В правой верхней части обработки располагается непосредственно текст запроса. Отображаемый запрос зависит от текущей строки дерева запросов.

По кнопке "Параметры" вызывается отдельное окно, в котором можно задать список параметров запроса. В первой колонке указывается имя параметра. Во второй колонке указывается признак, позволяющий задать значение параметра выражением на встроенном языке 1С:Предприятия 8. В третьей колонке указывается собственно параметр запроса, который может быть задан непосредственно значением или выражением на встроенном языке. Список параметров текущего запроса можно получить нажатием кнопки "Заполнить из запроса".

 

Результат запроса можно отображать в трех режимах:

  • Список
  • Иерархический список
  • Дерево

 

Описание текстов запросов, задания параметров приведено в книге "1С: Предприятие . Руководство разработчика".

 

Результат запроса. В нижней части диалога располагается результат выполнения запроса.

 

* Обработку можно использовать, внешнюю для конфигурации

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

Наименование Файл Версия Размер
Обработка "Консоль запросов для 1С:Предприятие 8.2 (Управляемое приложение)"
.epf 44,46Kb
27.06.13
651
.epf 44,46Kb 651 Скачать

См. также

Комментарии
1. Сергей Ожерельев (Поручик) 3564 17.05.12 23:47 Сейчас в теме
(0) При открытии файла запросов вида .sel ошибка: Недопустимое значение параметра (параметр номер "2").
2. andrewks 1197 18.05.12 08:22 Сейчас в теме
раскраска кода планируется?
3. Анатолий Кичук (anatoliy.kichuk) 75 19.05.12 12:35 Сейчас в теме
Я не нарывался на ошибку "При открытии файла запросов вида .sel ошибка: Недопустимое значение параметра (параметр номер "2")." Предполагаю, что файл запросов был создан из другой консоли... Загрузи заново обработку с сайта - сейчас "висит" обновленная версия.
4. Анатолий Кичук (anatoliy.kichuk) 75 19.05.12 12:40 Сейчас в теме
Про раскраску кода - пока вряд ли. Такой возможности еще не нашел: если воспользоваться свойством управляемой формы "Условное оформление", то функционал не обеспечивает оформление отдельного слова (фрагмента текста) поля текстового документа. Если пытаться установить условие "Содержит" в диалоге упомянутого свойства, то при запуске обработки в режиме 1С:Предприятие сеанс аварийно завершается. Возможно подобная возможность появится в следующих релизах Платформы.
5. Василий Антонов (khaoos) 238 21.05.12 06:42 Сейчас в теме
В чем преимущества над аналогами?
6. Анатолий Кичук (anatoliy.kichuk) 75 21.05.12 08:44 Сейчас в теме
Преимущества... Вряд ли можно отметить какие-либо уж очень значимые. Вопрос скорее всего в субъективном отношении: многие привыкли работать с консолью для 8.1, поэтому одной из целью при разработке - привести, к соответствию с ней. Ну, также я реализовал некоторые свои видения. Мне удобнее работать с моей консолью поскольку:
- результат выводится не в табличный документ, а в таблицу формы, отсюда удобнее настраивать ширину колонок (в табличный документ можно вывести стандартными средствами - из подменю "Все действия" командной панели таблицы);
- результаты пакета открываются в отдельных окнах, что позволяет каждый результат просмотреть в полноэкранном режиме;
- только два режима получения результатов: "Получить запрос", "Получить пакет", при этом результаты временных таблиц видны при использовании второго режима.

"Прощупайте" и делайте выводы, а также пишите отзывы... :-)
7. Сергей Ожерельев (Поручик) 3564 05.06.12 15:20 Сейчас в теме
(6) Что изменилось в обработке?
8. Анатолий Кичук (anatoliy.kichuk) 75 05.06.12 16:12 Сейчас в теме
Мелочи:
- откорректировал алгоритм сохранения запросов в файл: если путь уже был определен, то при следующем сохранении, диалог выбора каталога не выводится.
- добавил еще несколько кнопок для работы с текстом запросов (не помню, в прошлой опубликованной версии было ли это).
9. Alex Misanets (Misanets) 334 06.06.12 15:40 Сейчас в теме
ох, упирался, не хотел, но вот и мне понадобилась консоль для управляемого.
10. Анатолий Кичук (anatoliy.kichuk) 75 06.06.12 16:15 Сейчас в теме
11. Наталья Болотнова (bol) 7 07.06.12 06:21 Сейчас в теме
(9)Misanets, на курсах Насипов показывает, как использовать 1с-консоль запросов в управляемом приложении.
12. Анатолий Кичук (anatoliy.kichuk) 75 07.06.12 09:37 Сейчас в теме
Неужели мою консоль?! :-)
aleksey.kubovtsov; +1 Ответить
13. Алексей Кубовцов (aleksey.kubovtsov) 49 22.06.12 10:02 Сейчас в теме
14. Анатолий Кичук (anatoliy.kichuk) 75 22.06.12 10:33 Сейчас в теме
Не за что! Пользуйся на здоровье! ;-)
15. kiril lipatov (kilokilo) 17 05.08.12 15:45 Сейчас в теме
А у Вас спина белая картинки все пропали..
16. Анатолий Кичук (anatoliy.kichuk) 75 05.08.12 20:56 Сейчас в теме
Странно! Только проверил - все на месте... :-)
17. kiril lipatov (kilokilo) 17 08.08.12 18:36 Сейчас в теме
(16) anatoliy.kichuk,
Это из кэша вашего броузера. Из дома - тоже не видно. Если не трудно - перегрузите их заново.
18. Анатолий Кичук (anatoliy.kichuk) 75 09.08.12 09:46 Сейчас в теме
Возможно, но маловероятно по следующим причинам:
- модератор не публикует без картинок;
- я регулярно очищаю кэш браузера.
В ближайшее время обновлю картинки... ;-)
19. Николай Больсунов (boln) 923 07.09.12 23:22 Сейчас в теме
А я вот, ребята, тоже изобрел - велосипед называется. Многие привыкли пешком ходить, так вот вам мое изобретение. И почему кроме меня никто до этого не додумался?
20. Анатолий Кичук (anatoliy.kichuk) 75 09.09.12 10:44 Сейчас в теме
21. Максим (maxim305) 18 14.11.12 10:31 Сейчас в теме
22. Анатолий Кичук (anatoliy.kichuk) 75 14.11.12 10:41 Сейчас в теме
Рад, что консоль полезна кому-либо!
23. Вадим Хасанов (vaZum) 19 14.11.12 23:38 Сейчас в теме
Не могу добавить параметр списком
ФизЛицо В (&ФизЛицо)
24. Анатолий Кичук (anatoliy.kichuk) 75 15.11.12 09:43 Сейчас в теме
К сожалению, пока еще не реализовал этот функционал (добавления параметра списком) - постараюсь в ближайшее время реализовать.
25. Алексей Роза (DoctorRoza) 15.11.12 09:54 Сейчас в теме
Авансом! Чтобы было дальнейшее развитие работы! :)
26. Анатолий Кичук (anatoliy.kichuk) 75 15.11.12 10:01 Сейчас в теме
Постараюсь, развить... :-)
27. Анатолий Кичук (anatoliy.kichuk) 75 09.01.13 11:01 Сейчас в теме
То, что обещал - выполнил... :-)
28. Юрий Осипов (yuraos) 891 10.03.13 06:50 Сейчас в теме
(6) anatoliy.kichuk,
плюс за реализацию традиционного интерфейса консоли
и за отображение результата пакетного выполнения.

один вопросик:
как будут выводиться в таблице результата колонки,
если
тип значения поля запроса не доступен на клиенте,
например колонки полей с табличными частями объектов,
имеющие тип "ТаблицаЗначений" ???
29. Анатолий Кичук (anatoliy.kichuk) 75 10.03.13 12:11 Сейчас в теме
Спасибо, за положительный отзыв о моей консоли. Табличные части (таблицы значений) не выводятся в результат - предполагается, что если уж понадобится выборка табличной части, то запрос будет построен с обращением именно к ней. Т.е. если написать запрос вида "ВЫБРАТЬ * ИЗ <ИмяТаблицы>", где ИмяТаблицы - таблица документа, содержащего хотя бы одну таб. часть, то произойдет то, что описано выше. :-)
30. Юрий Осипов (yuraos) 891 10.03.13 12:53 Сейчас в теме
(29) anatoliy.kichuk,
ммм ... а именно в каком посте ОпИСАнО ???
:)
31. Юрий Осипов (yuraos) 891 10.03.13 12:59 Сейчас в теме
(30)
Вообще-то говоря иногда бывает нужно выбирать табличную часть объекта отдельным полем.

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

Далее в цикле полученная выборка данных обрабатывается
для построения графика платежей клиентов и
вычисления "просроченной" задолженности.
32. Анатолий Кичук (anatoliy.kichuk) 75 10.03.13 13:05 Сейчас в теме
Не полян вопрос... Если вопрос о фрагменте когда, выполняющем проверку, то см. фрагмент кода:

Форма.МодульФормы.ПодготовитьКоллекцию(),

фрагмент:

Для Каждого Колонка Из КоллекцияКолонок Цикл
Если Колонка.ТипЗначения.СодержитТип(Тип("ТаблицаЗначений")) Тогда
Продолжить;
КонецЕсли;
...
КонецЦикла;
33. Анатолий Кичук (anatoliy.kichuk) 75 10.03.13 13:10 Сейчас в теме
Нужно будет подумать над этим... ;-)
34. Юрий Осипов (yuraos) 891 10.03.13 16:30 Сейчас в теме
(31)(32)
так, понятно ...
надо полагать что такие поля вообще исключается при выгрузке результата запроса в таблицу значений
и стало быть спрашивать о том,
можно ли просмотреть эту "вложенную" таблицу при клике мышью по ячейке
пока рановато.
Тогда спрошу
Можно ли просмотреть при клике мышью значения, запакованные в полях типа "ХранилищеЗначений" ???
:)

PS:
На вскидку не могу сообразить, что запрос 1С может вернуть,
что не позволено использовать на стороне "управляемого" клиента ?
Объект "ОписаниеТипов" вроде доступен...
35. rasswet (rasswet) 80 22.03.13 17:28 Сейчас в теме
в качестве параметра можно сделать массив и МоментВремени?
36. Юрий Осипов (yuraos) 891 07.05.13 06:31 Сейчас в теме
(35) rasswet,
1. массив нельзя - но вместо него в традиционной консоли используется список значений.
2. момент времени нельзя никак - для него даже нет интерактивных средств выбора...
...единственная возможность:
вычислить перед выполнением запроса значение момента времени из составляющих,
заданных в других параметрах и установить его в качестве параметра как бы "виртуально".
37. alean alean (alean) 35 23.05.13 11:27 Сейчас в теме
Нормально.
Видно, что делал для себя. Добротно.
Беру в свой инструментарий.
38. Анатолий Кичук (anatoliy.kichuk) 75 23.05.13 12:24 Сейчас в теме
Спасибо! Будет время, еще поработаю над ней - есть еще над чем работать. :-)
39. Ирек Вафин (Irek-kazan) 23.05.13 12:27 Сейчас в теме
Спасибо за интересную консоль, плюсую
40. Анатолий Кичук (anatoliy.kichuk) 75 24.05.13 00:40 Сейчас в теме
Спасибо,за характеристику моей консоли, как "интересную" - вдохновляет.
41. Владислав Томашевич (tomvlad) 3609 29.05.13 09:00 Сейчас в теме
Было бы неплохо заставить открывать файл запросов и при работе в режиме клиент-сервера. Сейчас нормальная работа (открытие сохраненных запросов и работа с этим списком) возможна только в файловом режиме (или при работе непосредственно на сервере, что не всегда хорошо).

А в остальном - это одна из лучших (привычная, удобная, кому как нравится) консоль из имеющихся.
42. Анатолий Кичук (anatoliy.kichuk) 75 29.05.13 09:11 Сейчас в теме
Вот, на будущей недельке выйду в отпуск и вполне возможно, что повожусь с консолью - мне тоже некоторые моменты "режут" глаза, но до их отладки пока руки не дошли. ;-)
43. Юрий Осипов (yuraos) 891 29.05.13 17:30 Сейчас в теме
(41) tomvlad,
А в чем проявляется проблема с открытием файла в клиент-серверной базе???
44. Владислав Томашевич (tomvlad) 3609 31.05.13 09:53 Сейчас в теме
(43) yuraos, не предусмотрена возможность того, что файл может быть открыт на сервере. А сервер может, к примеру, не иметь доступа к расположению файла списка запросов.
45. Юрий Осипов (yuraos) 891 01.06.13 09:16 Сейчас в теме
(44) tomvlad,
ааааа....дошло на второй день!

---
Для заполнения списка запросов приходится вызывать серверную процедуру
и через нее по простому передаем путь к файлу, выбранный на стороне клиента
...
а на стороне сервера такого пути скорей всего не нету ... и не дай-бог если найдется!
46. Юрий Осипов (yuraos) 891 01.06.13 09:20 Сейчас в теме
(45)
знакомый прикол. тут или сетевой путь выбирать из расшаренной папки
или через загрузку во временное хранилище сам файл передавать.
47. Павел Иванов (blockcode) 28 19.06.13 15:43 Сейчас в теме
Отличная консоль для управляемого приложения!!!
Прикручу к ней парсер для разборки-сборки вложенных запросов и буду использовать.
48. Анатолий Кичук (anatoliy.kichuk) 75 19.06.13 15:47 Сейчас в теме
49. Павел Иванов (blockcode) 28 26.06.13 16:30 Сейчас в теме
К консоли прицепил пару кнопок "Разобрать" и "Собрать" для распарсивания сложных вложенных запросов.

Действия кнопки "Разобрать":
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С Предприятие 8.2 (Управляемое приложение).epf
50. Дмитрий Рудаков (Дмитрий Рудаков) 161 27.06.13 07:39 Сейчас в теме
Почему у публикации Платформа: 1С:Бухгалтерский учет 7.7 ?
51. Анатолий Кичук (anatoliy.kichuk) 75 28.06.13 13:45 Сейчас в теме
(50) Дмитрий, привет! Исправил.
52. candy_sk (candy_sk) 28.06.13 22:08 Сейчас в теме
полезная вещь для каждого дня, сохраню на память.
53. Юрий Осипов (yuraos) 891 23.07.13 08:55 Сейчас в теме
(41)(42)(45)
---
Возможный вариант решения проблемы:
Считывать текст из файла с сохраненными запросами на стороне клиента
и запоминать его в строковом реквизите формы неограниченной длины:

ТекстОбъект = Новый ЧтениеТекста(ПутьКФайлуЗапросов);
ДеревоЗапросовСтрокой = ТекстОбъект.Прочитать();
54. Юрий Осипов (yuraos) 891 23.07.13 09:01 Сейчас в теме
(53)
затем вызвать серверную процедуру,
восстанавливающую из строкового представления дерево значений:
&НаСервере
Процедура ЗагрузитьЗапросыИзСтроки()
  Попытка
      ЗначениеВДанныеФормы(ЗначениеИзСтрокиВнутр(ДеревоЗапросовСтрокой), ДеревоЗапросов);
  Исключение
      Сообщить("Не соответствие формата исходного файла!", СтатусСообщения.Важное);
  КонецПопытки;
  Модифицированность = Ложь;
КонецПроцедуры 


...Показать Скрыть
55. Юрий Осипов (yuraos) 891 23.07.13 09:09 Сейчас в теме
(54)
аналогично поступаем при сохранении, но в обратном порядке.
сначала вызываем серверную процедуру,
записывающую в реквизит формы строковое представление дерева списка запросов:
&НаСервере
Процедура ДеревоЗапросовВСтроку()
  ДеревоЗапросовСтрокой = ЗначениеВСтрокуВнутр(ДанныеФормыВЗначение(ДеревоЗапросов, Тип("ДеревоЗначений")));
КонецПроцедуры 

...Показать Скрыть
56. Юрий Осипов (yuraos) 891 23.07.13 09:13 Сейчас в теме
(55)
затем на клиенте записываем строковое значение
из реквизита формы в файл с выбранным путем (доступным на стороне клиента):
ТекстОбъект = Новый ЗаписьТекста(ПутьКФайлуЗапросов);
ТекстОбъект.Записать(ДеревоЗапросовСтрокой ;

...Показать Скрыть
57. Юрий Осипов (yuraos) 891 23.07.13 09:17 Сейчас в теме
(53)
Описанная выше метода
(использование функций "ЗначениеВСтроку" вместо функций "ЗначениеВФайл")
проверена мной в режиме обычного приложения и прекрасно там работает.

Причем запросы сохраненые "по старому" (функцией ЗначениеВФайл())
прекрасно открываются "по новому".

---
судя по документации в управляемом приложении тоже должно работать.
58. McCoy77 5 04.11.13 00:19 Сейчас в теме
Отличная работа. Спасибо
59. Анатолий Кичук (anatoliy.kichuk) 75 04.11.13 11:43 Сейчас в теме
Спасибо!
Только yuraos прав - имеются недоработки для клиент-серверного варианта - руки до этого не доходят.
60. Дмитрий Колесников (EastGuy) 52 06.01.14 11:19 Сейчас в теме
Извините, но без клиент-серверного варианта "+" не поставлю - не серьезно.

Валится по ошибке при вызове параметров:

{Форма.Форма.Форма(330)}: Ошибка при вызове метода контекста (ПоместитьВоВременноеХранилище)
ДеревоЗапросов.НайтиПоИдентификатору(ИдентификаторСтроки).ПараметрыЗапроса,
по причине:
Переданное значение не может быть помещено во временное хранилище
61. Константин Куликов (Светлый ум) 202 06.11.16 20:03 Сейчас в теме
Пригодилось - так, как в большинстве консолей на управляемых формах - визуально корявый конструктор запросов (особенно в части соединений таблиц-дерево).
А здесь все родное - и по старинке быстренько набросал нужные соединения
Оставьте свое сообщение