gifts2017

Консоль запросов для УФ с подсветкой синтаксиса и обработкой результата

Опубликовал Василий Пупкин (BurningChrome) в раздел Программирование - Инструментарий

Самая быстрая консоль запросов для управляемых форм с подсветкой синтаксиса и обработкой результата

Полностью переработанная консоль отчетов. Именно такая, какой она должна была быть с самого начала. Без оверхеда. Без лишних серверных вызовов. Без лишних «РеквизитФормыВЗначение».

Проверена корректная работа в Веб-интерфейсе.

Производительность

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

Данная обработка не страдает подобными недостатками. Выигрыш по скорости уже видно невооруженным глазом на выводе более 100 элементов. При выводе более 1000 элементов скорость в некоторых существующих консолях отстает не порядки.

Подсветка синтаксиса

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

Обработка результата

Консоль в большей степени – универсальный инструмент и, нередко, нужна для быстрой обработки справочников или документов по отбору. Для этого предусмотрена возможность выполнения произвольного кода над результатом запроса. Созданы простые шаблоны для справочника/документа/регистра/ Все делается буквально в пару кликов В обработке результата можно использовать параметры текущего запроса. Можно даже добавить свой произвольный параметр и использовать его для обработки результата.

Выбор типа параметра

Вместе с подсветкой синтаксиса был убран человеческий выбор типа. Что ж, пришлось переписать. Теперь тип можно снова выбирать как в прежние времена и даже лучше.

Корректная работа с параметрами типа «Таблица значений», «Граница», «Момент времени». Многие существующие консоли страдают теми или иными проблемами с этими параметрами.

Интерфейс

Вся консоль – одна закладка. Не нужно никуда переключаться. Если не нужен список запросов – просто отожмите кнопку «Запросы», то же и для панелей «Параметры» и «Запрос».

Можно просматривать результаты промежуточных временных таблиц в один клик не засоряя интерфейс как это сделано в ИТС-подобный обработках.

Теперь можно открыть результат запроса сразу в Excel без вывода в какие-то промежуточные окна (не работает в Веб-интерфейсе).

Можно сортировать колонки результата в один клик. Не нужно переделывать запрос. Удобно, например если нужно найти одинаковые или пустые строки.

Текст для конфигуратора

Нормальный, человеческий текст запроса для вставки в конфигуратор. Который просто – работает! Переносятся все параметры запроса, и вы получите точно такой же результат, как в консоли.

 

UPD:

Добавлена версия для платформы 8.3.5 и ниже (без поддержки асинхронных вызовов). Спасибо тов. dj_serega

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

Наименование Файл Версия Размер
Консоль запросов (8.3.6 и выше) 298
.epf 77,68Kb
23.03.16
298
.epf 2.1 77,68Kb Скачать
Консоль запросов (8.3.5 и ниже) 10
.epf 77,75Kb
22.04.16
10
.epf 2.1 77,75Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Moolex.ru (moolex) 08.01.16 12:55
Удобно, красиво.
Еще бы добавить минимальный вариант обработки результатов запроса (пометить на удаление, перепровести, очистить поле какое нить) и вообще супер.
(и маленький недочет - Конструктор запросов открывается на заднем плане в неактивном окне)
2. Василий Пупкин (BurningChrome) 08.01.16 13:36
(1) moolex, Обработку планирую добавить. Как и выбор параметров в виде произвольных выражений и еще по мелочам.
Проблема возврата фокуса в основное окно возникает на поле форматированного документа в режиме Такси или "Формы в закладках". Если отключить раскраску то все нормально. Это поведение платформы и я пока не знаю как побороть без отключения видимости. Надо подумать будет. Опять костыль какой-то городить придется :(
3. Василий Пупкин (BurningChrome) 08.01.16 14:01
(1) moolex, В общем прилепил костыль в новой версии - будет доступна когда модераторы одобрят.
В принципе можно самому поправить:
&НаКлиенте
Процедура ОткрытьКонструкторЗапроса(Команда)

	Если РаскрашиватьТекстЗапроса Тогда
		Элементы.ТекстЗапроса_ФД.Видимость = Ложь;
	КонецЕсли;
	
	Если ПустаяСтрока(ТекущийЗапрос_Текст) Тогда 
		КонструкторЗапроса = Новый КонструкторЗапроса();
	Иначе
		КонструкторЗапроса = Новый КонструкторЗапроса(ТекущийЗапрос_Текст);
	КонецЕсли;	
	КонструкторЗапроса.Показать(Новый ОписаниеОповещения("ПриЗакрытииКонструктораЗапроса", ЭтотОбъект));
	
	Если РаскрашиватьТекстЗапроса Тогда
		ПодключитьОбработчикОжидания("ТекстЗапроса_ФД_Видимость", 0.5, Истина);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ТекстЗапроса_ФД_Видимость()
	Элементы.ТекстЗапроса_ФД.Видимость = Истина;
КонецПроцедуры
...Показать Скрыть
4. борян петров (TODD22) 08.01.16 14:17
А как у неё с модальными окнами? Асинхронностью ?
А то так скачаешь консоль то в тонком клиенте не работает , то работает только в типовых, то нет возможности анализа временных таблиц, то потом закрыть не можешь потому что модальные диалоги запрещены.
У вас с этим как? Работает на любой конфе(типовой, нетиповой, без БСП) ?
5. Василий Пупкин (BurningChrome) 08.01.16 14:43
(4) TODD22,
Все работает как в модальном так и в немодальном режиме. Как с отключенным, так и с включенным использованием синхронных вызовов. Работает даже в веб клиенте.
Единственное могут быть проблемы на версиях ниже 8.3.3 где функций подобных "ПоказатьВопрос" вообще не было.
Никаких типовых модулей не используется, можно запускать в любой конфе.
6. Евгений Мартыненков (JohnyDeath) 08.01.16 19:54
При ручном изменении текста запроса (не в конструкторе) ничего не меняется. Меняется только видимый текст запроса, что очень не хорошо. Очень часто в запросе надо подправлять одно-два поля, вызывать для этого конструктор не хочется совсем
7. Василий Пупкин (BurningChrome) 08.01.16 20:12
(6) JohnyDeath, Это я тестировал и залил с закомментированным кодом :( Файл перезалил.
Если вручную, то - надо просто раскомментировать код в процедуре "ТекстЗапросаПриИзменении(Элемент)".
Заодно поправил баг с параметрами - нужно в процедуре "ЗаполнитьПараметрыКлиент" заменить "ОбновитьОтображение" на "УстановитьТекущиеПараметры":
&НаКлиенте
Процедура ЗаполнитьПараметрыКлиент(Удалять = Истина)

	Если ЗначениеЗаполнено(ТекущийЗапрос_Текст) Тогда
		
		СчитатьПараметрыЗапроса(ТекущийЗапрос_Текст, Удалять);
		
		Если Модифицированность Тогда
			УстановитьТекущиеПараметры();
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры
...Показать Скрыть

Все эти правки учтены в обработке (не знаю, одобряют ли его модераторы или сразу файл обновляется).
8. Евгений Мартыненков (JohnyDeath) 08.01.16 20:27
(7) Обновилось, теперь все хорошо. Приятная консоль и кнопочки с временными таблицами тоже понравились
9. Андрей Акулов (DrAku1a) 11.01.16 08:50
За раскраску кода/текста запросов - огромный респект сразу! Остальное - потестим.
10. Василий Тёркин (1С_Мастер) 11.01.16 09:22
Не думали над тем, чтобы повесить раскраску кода на обработчик ожидания?
11. Андрей Акулов (DrAku1a) 11.01.16 09:35
(10) 1С_Мастер, плохая идея, ИМХО. Нужно как-то получать событие "Документ изменен" на JavaScript и передавать его в 1С (например, имитировать переход по ссылке и обрабатывать этот переход).
Ну а в идеале - форматировать непосредственно с помощью JS.
12. Максим *** (premier) 11.01.16 10:38
(0), не работает в тонком клиенте ((( Платформа 8.3.6.2076. Скриншот с описанием ошибок прикрепляю.
Прикрепленные файлы:
13. Максим *** (premier) 11.01.16 10:54
(0), заменил конструкцию ЭтотОбъект на Объект, форма открылась. Но при попытке вызвать конструктор запроса опять ошибка: "Не найден экспортируемый метод: ПриЗакрытииКонструктораЗапроса" ((( Это только у меня эта обработка работать не хочет?
14. Максим *** (premier) 11.01.16 11:23
(0), а ну вот разобрался. В конструкторах оповещений, второй параметр был указан как ЭтотОбъект, заменил его на ЭтаФорма и всё корректно, вроде бы отработалось. Может, различия в версиях платформ-клиентов?
Только вот подсветка синтаксиса, всё же как-то странно работает. В форматированном документе обработки кода пытаюсь вставить знак табуляции в строку. А он (документ) вставляет табуляцию в начало каждой строки кода.... И подсветка работает только при нажатии кнопки "Обновить подсветку синтаксиса", что не очень-то и удобно ((. Так и должно быть?
15. VVV (V_V_V) 11.01.16 12:18
А список запросов в виде дерева выводится?
16. Никита Грызлов (nixel) 11.01.16 12:33
(12) premier, у вас на конфе какой режим совместимости стоит?
17. Василий Пупкин (BurningChrome) 11.01.16 13:30
(10) 1С_Мастер, можно подумать. Только придется запоминать позицию курсора, потом заново восстанавливать и все мигать будет при этом.
(11) я с js не силен. Думал воткнут, но пока не смогу полноценный раскрасник сделать на js.
(12) premier, у тебя режим совместимости включен. Можно почитать тут: http://its.1c.ru/db/metod8dev#content:5293:hdoc. В принципе можно и везде поставить "ЭтаФорма", только не уверен что это правильно будет с точки зрения 8.3 и дальнейших версий платформы.(14) premier, Это поведение форматированного документа. Тут я ничего не могу поделать :( То же и с подсветкой - у поля нет события "при нажатии кнопки", а событие "при изменении" возникает только при переходе фокуса на другой элемент формы.
(15) V_V_V, Нет. Была у меня консоль с деревом. Ни разу за много лет не использовал. Бесполезный функционал, только запутывает.
18. Максим *** (premier) 11.01.16 15:09
(16) (17) режим совместимости установлен - не использовать. Платформа 8.3 тоже не такая уж древняя, так что свойство ЭтотОбъект должно быть в принципе доступно для чтения.
В общем-непонятная какая-то ситуация.
С форматированным документом тоже ситуация печальная (((.
19. Максим *** (premier) 11.01.16 15:13
(0) Вот в чём дело-то оказалось:
ЭтотОбъект (ThisObject)
Использование:
Только чтение.
Описание:
Тип: ОбработкаОбъект.
Содержит данный объект обработки. Свойство предназначено для получения объекта в модуле объекта или модуле формы.

Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

А я обработку под тонким клиентом запускал. Вот она и не взлетела.
20. Никита Грызлов (nixel) 11.01.16 15:30
(19) premier, вы не то свойство смотрите. помимо ЭтотОбъект в модуле обработки есть еще ЭтотОбъект в модуле формы.

УправляемаяФорма (ManagedForm)
ЭтотОбъект (ThisObject)
Использование:

Только чтение.
Описание:

Тип: УправляемаяФорма.
Содержит данную форму. Может быть использовано в модуле формы для получения данной формы и передачи ее в качестве параметра в другие формы, глобальные процедуры и функции и т.д.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.
21. Максим *** (premier) 11.01.16 15:57
(20) nixel, что-то видимо проглядел в справке, но тем не менее, ошибки на скриншоте явно указывают на то, что проблема в обращении к этому реквизиту. На досуге мат.часть подучу ))
22. Василий Пупкин (BurningChrome) 11.01.16 17:00
(21) premier, если с "ЭтаФорма" работает, то это точно проблема в совместимости, потому что по ссылке из (17) написано:
Перевод конфигураций на платформе "1С:Предприятие 8.2" на платформу "1С:Предприятие 8.3" без режима совместимости с версией 8.2
Новое свойство ЭтотОбъект в управляемых формах и общих модулях.
Таблица 1. Переименования методов и свойств в версии 8.3:
Что переименовано - Старое наименование - Новое наименование
Свойство управляемой формы - ЭтаФорма (ThisForm) - ЭтотОбъект (ThisObject)
23. Андрей Акулов (DrAku1a) 12.01.16 02:39
(17) Да я тоже не силен в JS - тут поиск в интернете помогает.
Как я понял, основная проблема: в том, что событие "onchange" ("ПриИзменении") - имеется только у поля ввода, многострочного поля ввода и поля списка выбора, а внутри этих полей раскраска HTML не работает. Предлагают такую идею: сделать два слоя один под другим, на нижнем слое расположить многострочное поле ввода (textarea), а на верхнем - отрисовывать раскрашенное содержимое этого поля ввода. При этом, пользователь будет видеть верхний слой, а текст вводить в нижний (не видимый ему). Тут ещё нужно позаботиться о грамотной передаче фокуса и отрисовке курсора... В общем, задачка сложная, но вроде как - решаемая.
24. Алексей Трофименко (Lok`Tar) 13.01.16 09:00
Спасибо огромное, консоль шикарна:)
25. Владимир Глебов (vowg) 13.01.16 09:16
Много еще конфигураций с режимом совместимости 8.2, может в формах проверять не совместимость текущей конфигурации и использовать в зависимости от этого "ЭтаФорма" или "ЭтотОбъект"? Вроде ничего сложного.
26. Denis (DnsRzv) 13.01.16 10:34
Здравствуйте!

В типовой ЗУП 3.0 (Зарплата и управление персоналом, редакция 3.0 (3.0.23.148))

Делаю запрос по документу начальная штатная расстановка:

ВЫБРАТЬ
    НачальнаяШтатнаяРасстановка.Ссылка КАК Ссылка,
    НачальнаяШтатнаяРасстановка.ВерсияДанных КАК ВерсияДанных,
    НачальнаяШтатнаяРасстановка.ПометкаУдаления КАК ПометкаУдаления,
    НачальнаяШтатнаяРасстановка.Номер КАК Номер,
    НачальнаяШтатнаяРасстановка.Дата КАК Дата,
    НачальнаяШтатнаяРасстановка.Проведен КАК Проведен,
    НачальнаяШтатнаяРасстановка.Месяц КАК МЕСЯЦ,
    НачальнаяШтатнаяРасстановка.Организация КАК Организация,
    НачальнаяШтатнаяРасстановка.Подразделение КАК Подразделение,
    НачальнаяШтатнаяРасстановка.ВидДоговора КАК ВидДоговора,
    НачальнаяШтатнаяРасстановка.КраткийСоставДокумента КАК КраткийСоставДокумента,
    НачальнаяШтатнаяРасстановка.Ответственный КАК Ответственный,
    НачальнаяШтатнаяРасстановка.Комментарий КАК Комментарий,
    НачальнаяШтатнаяРасстановка.Сотрудники.(
        Ссылка КАК Ссылка,
        НомерСтроки КАК НомерСтроки,
        Сотрудник КАК Сотрудник,
        Подразделение КАК Подразделение,
        Должность КАК Должность,
        ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию,
        КоличествоСтавок КАК КоличествоСтавок,
        ГрафикРаботы КАК ГрафикРаботы,
        СпособРасчетаАванса КАК СпособРасчетаАванса,
        Аванс КАК Аванс,
        ВидЗанятости КАК ВидЗанятости,
        ДатаПриема КАК ДатаПриема,
        ПорядокРасчетаСтоимостиЕдиницыВремени КАК ПорядокРасчетаСтоимостиЕдиницыВремени,
        СовокупнаяТарифнаяСтавка КАК СовокупнаяТарифнаяСтавка,
        ВидТарифнойСтавки КАК ВидТарифнойСтавки,
        РазрядКатегория КАК РазрядКатегория,
        Грейд КАК Грейд
    ),
    НачальнаяШтатнаяРасстановка.Начисления.(
        Ссылка КАК Ссылка,
        НомерСтроки КАК НомерСтроки,
        Сотрудник КАК Сотрудник,
        Начисление КАК Начисление,
        ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
        Размер КАК Размер
    ),
    НачальнаяШтатнаяРасстановка.Показатели.(
        Ссылка КАК Ссылка,
        НомерСтроки КАК НомерСтроки,
        Сотрудник КАК Сотрудник,
        ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
        Показатель КАК Показатель,
        ЗНАЧЕНИЕ КАК ЗНАЧЕНИЕ
    ),
    НачальнаяШтатнаяРасстановка.ЕжегодныеОтпуска.(
        Ссылка КАК Ссылка,
        НомерСтроки КАК НомерСтроки,
        Сотрудник КАК Сотрудник,
        ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска,
        КоличествоДнейВГод КАК КоличествоДнейВГод,
        ДатаОстатка КАК ДатаОстатка,
        УдалитьРабочийГодНачало КАК УдалитьРабочийГодНачало,
        УдалитьРабочийГодОкончание КАК УдалитьРабочийГодОкончание,
        КоличествоДней КАК КоличествоДней
    ),
    НачальнаяШтатнаяРасстановка.ФизическиеЛица.(
        Ссылка КАК Ссылка,
        НомерСтроки КАК НомерСтроки,
        ФизическоеЛицо КАК ФизическоеЛицо
    ),
    НачальнаяШтатнаяРасстановка.Льготы.(
        Ссылка КАК Ссылка,
        НомерСтроки КАК НомерСтроки,
        Сотрудник КАК Сотрудник,
        Льгота КАК Льгота,
        ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
        Размер КАК Размер
    ),
    НачальнаяШтатнаяРасстановка.ОстаткиОтпусковПоРабочимГодам.(
        Ссылка КАК Ссылка,
        НомерСтроки КАК НомерСтроки,
        Сотрудник КАК Сотрудник,
        ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска,
        ДатаОстатка КАК ДатаОстатка,
        РабочийГодНачало КАК РабочийГодНачало,
        РабочийГодОкончание КАК РабочийГодОкончание,
        Остаток КАК Остаток
    ),
    НачальнаяШтатнаяРасстановка.Представление КАК ПРЕДСТАВЛЕНИЕ
ИЗ
    Документ.НачальнаяШтатнаяРасстановка КАК НачальнаяШтатнаяРасстановка
...Показать Скрыть




В результате выдается сообщение об ошибке (Недопостимое значение) подробнее:

{Форма.Форма.Форма(1050)}: Ошибка при установке значения атрибута контекста (ПутьКДанным)
ЭлементКолонка.ПутьКДанным = ИмяРеквизитаФормы + "." + КолонкаИмя;
по причине:
Недопустимое значение

Подскажите, что делать.
27. Никита Грызлов (nixel) 13.01.16 11:32
(26) DnsRzv, вероятно это из-за ТЧ в запросе.
28. Василий Пупкин (BurningChrome) 13.01.16 12:11
(26) DnsRzv, Не надо выводить табличные части в результат.
В моей практике не разу такого не потребовалось. Если вы выводите в результат табличную часть, то что-то делаете не так. Как вы планируете анализировать такой результат?
29. Николай Больсунов (boln) 13.01.16 12:54
Не надо выводить табличные части в результат.
В моей практике не разу такого не потребовалось. Если вы выводите в результат табличную часть, то что-то делаете не так. Как вы планируете анализировать такой результат?

Подобные заявления отнюдь не делают разработчику чести. Лучше подумать, как решить эту проблему.
30. Василий Пупкин (BurningChrome) 13.01.16 12:57
(29) boln, может сначала ответить на вопрос?
31. Никита Грызлов (nixel) 13.01.16 13:40
(28) BurningChrome,
Если вы выводите в результат табличную часть, то что-то делаете не так. Как вы планируете анализировать такой результат?

Однако я не видел ни одну консоль, которая бы от этого падала. Вы лидируете.
32. Василий Пупкин (BurningChrome) 13.01.16 14:27
(31) nixel, не охота заморачиваться тем, что никогда не используется
33. Николай Больсунов (boln) 13.01.16 14:40
(32) BurningChrome,
не охота заморачиваться тем, что никогда не используется
Используется в типовых. Взять хотя бы конфигурацию ЗУП 3.0 - поиск по комбинации .( дает представительный результат.
JohnyDeath; +1 Ответить 1
34. Никита Грызлов (nixel) 13.01.16 14:41
(32) BurningChrome, у вас не используется, у других используется.
Т.е. вы согласны, что вы делаете мега крутой и универсальный инструмент, который не может прожевать самый простой запрос из первых глав Радченко?
35. Василий Пупкин (BurningChrome) 13.01.16 19:51
(33) boln, вопрос был - "как вы планируете анализировать такой результат", а не "где используется". Вы будете просматривать 500сторк результата с 6 колонками типа "таблица значений"? Вы в каждую строку и колонку будете кликать? Какой практический смысл выводить таблицы значений к колонках?
36. борян петров (TODD22) 13.01.16 20:03
(35) BurningChrome,
Вы в каждую строку и колонку будете кликать? Какой практический смысл выводить таблицы значений к колонках?

Практический смысл в том что в консоли не только анализируют и кликают по колонкам но ещё и пишут запросы и иногда довольно большие. Может человеку не надо анализировать сами значения. Он их потом программно обработает когда запрос в конфигуратор выгрузит.
37. Николай Больсунов (boln) 13.01.16 20:05
(35) BurningChrome,
Вы будете просматривать 500сторк результата с 6 колонками типа "таблица значений"? Вы в каждую строку и колонку будете кликать?
А Вы сначала хотя бы для одной такой колонки задачу решите :)

38. Василий Пупкин (BurningChrome) 13.01.16 20:21
(37) boln, сделать то, сами не знаете для чего?
39. Евгений Мартыненков (JohnyDeath) 13.01.16 22:08
Поддерживаю boln.
Надо б сделать так, чтоб не падало и нормально проглатывало. Пусть в колонках будет какое-нибудь псевдо-значение <ТаблицаЗначений>, но как минимум выполнится такой запрос должен.
Я тоже в типовых и не очень встречал такое не раз. И не важно что потом с результатом такого запроса происходит. Я, как разработчик, хочу доработать его в режиме предприятия и без лишних телодвижений по убиранию и обратной вставке таких вот полей-Таблиц.
40. Denis (DnsRzv) 14.01.16 23:04
(35) BurningChrome, спросил для удобства анализа документа у которого в форме не выведены все табличные части. А было бы удобно, вот например в другой консоли:


Двойным щелчком по ячейке в колонке сотрудники открывается расшифровка:

41. Василий Пупкин (BurningChrome) 15.01.16 12:35
(40) DnsRzv, в чем удобство? 500 раз кликать по ячейкам? В чем тут удобство?
42. Никита Грызлов (nixel) 15.01.16 13:32
(41) BurningChrome, да причем тут удобство.

Ваша консоль запросов, не может выполнить элементарный запрос.
Это баг, а не "не надо так делать".
Steelvan; so-quest; dj_serega; JohnyDeath; boln; +5 Ответить 1
43. Никита Грызлов (nixel) 15.01.16 13:33
В конце концов
Выбрать * Из Документ.БлаБлаБла

тоже упадет с ошибкой.
44. Василий Пупкин (BurningChrome) 15.01.16 15:02
(42) nixel, ты не знаешь зачем это делаешь и зачем тебе это нужно. Это просто академический интерес. Тебе просто "хочется чтоб было"
45. Николай Больсунов (boln) 15.01.16 15:22
(44) BurningChrome,
nixel, ты не знаешь зачем это делаешь и зачем тебе это нужно. Это просто академический интерес. Тебе просто "хочется чтоб было"
Еще раз: выборка табличных частей как полей широко используется в типовых конфигурациях. Так что это совсем не "академический интерес".
premier; gigapevt; +2 Ответить
46. Никита Грызлов (nixel) 15.01.16 17:57
(44) BurningChrome,
что значит "академический интерес"?

Как разработчик, я хочу быть уверенным, что когда я напишу в консоли запросов "Выбрать * Из Документ.РеализацияТоваровИУслуг", я не словлю необъяснимую ошибку.

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

Ей богу, проще форкнуть, пофиксить самому и перевыложить.
47. Василий Пупкин (BurningChrome) 15.01.16 19:03
Хватит ныть, запилил я вам таблицы значений. Можно тестить.
48. Николай Больсунов (boln) 15.01.16 19:34
(47) BurningChrome,
Хватит ныть, запилил я вам таблицы значений. Можно тестить.
Вот, теперь респект!
Только для уточнения: это поле в результате запроса имеет тип не ТаблицаЗначений, а РезультатЗапроса.
49. Denis (DnsRzv) 17.01.16 15:01
(47) BurningChrome, Спасибо, заработало.
Не могли бы Вы ещё и под такой запрос подправить консоль, для пущей универсальности:

ВЫБРАТЬ
НачальнаяШтатнаяРасстановка.МоментВремени
ИЗ
Документ.НачальнаяШтатнаяРасстановка КАК НачальнаяШтатнаяРасстановка


Вылетает с ошибкой:

{Форма.Форма.Форма(1392)}: Ошибка при вызове метода контекста (ИзменитьРеквизиты)
ИзменитьРеквизиты(МассивНовыхРеквизитов, МассивУдаляемыхРеквизитов);
по причине:
Недопустимый тип реквизита. Имя: "МоментВремени"
50. Юрий Патласов (NoRazum) 17.01.16 16:46
Как консоль работает с внешним источником данных?
51. Vladimir Savelyev (gigapevt) 18.01.16 08:22
Закладка "Построитель" так и не появилась. Текст запроса почему то пропадает, при открытии конструктора запроса. Что-то здесь не доработано.
52. Василий Пупкин (BurningChrome) 18.01.16 12:58
(50) NoRazum, так же как и с обычными таблицами.
(51) gigapevt, а кто обещал что она появится? Ее нет в стандартном конструкторе запросов. По поводу исчезновения текста - можно подробнее? Ошибку выдает какую-то?
53. Николай Больсунов (boln) 18.01.16 13:08
(51) gigapevt,
Закладка "Построитель" так и не появилась.

Закладка Построитель имеется только в обычном Конструкторе запроса, который работает в толстом клиенте. Автор использует Конструктор запроса для тонкого клиента, в котором закладки Построитель нет.
54. Василий Пупкин (BurningChrome) 18.01.16 13:54
Если кто хочет закладку "Построитель" - выколупайте стандартный конструктор запросов отсюда: http://infostart.ru/public/369487/ и добавьте закладку :))
55. Николай Больсунов (boln) 18.01.16 14:53
(54) BurningChrome,
Если кто хочет закладку "Построитель" - выколупайте стандартный конструктор запросов отсюда: http://infostart.ru/public/369487/ и добавьте закладку :))
Не выйдет! :)
Он опирается на объект СхемаЗапроса (QuerySchema), а там не предусмотрена работа с конструкциями препроцессора языка запросов ("в фигурных скобках").
56. Василий Пупкин (BurningChrome) 18.01.16 16:29
(55) boln, всегда можно свой велосипед изобрести :)
57. Николай Больсунов (boln) 18.01.16 17:24
(56) BurningChrome, ну, это кому охота.
На форуме из-за этого к 1С серьезные предъявы идут: чел хочет через Схему запроса добавить в запрос расширения для Построителя и СКД, а нельзя.
58. Василий Пупкин (BurningChrome) 18.01.16 18:01
59. Denis (DnsRzv) 19.01.16 23:34
(58) BurningChrome, Спасибо! Работает!
60. Сергей Галюк (dj_serega) 28.01.16 12:29
(28) BurningChrome,
Не надо выводить табличные части в результат.
В моей практике не разу такого не потребовалось. Если вы выводите в результат табличную часть, то что-то делаете не так. Как вы планируете анализировать такой результат?

Я иногда использую такую конструкцию.
Даже пример могу дать :)

"Выбрать
|Ссылка Док,
|Ссылка.ТЧТовары (НомерСтроки, Номенклатура) ТЧТовары"

В обработке результата пишу:
Если Результат.Док = НужныйДок Тогда
ТЧДокумента = Результат.ТЧТовары.Выгрузить();
КонецЕсли;

В результате (Как мне кажется) данные выгружаются запросом в память, и не нужно дергать ИБ при получении данных ТЧ.


upd: дальше видел что сделали. Ок :) Спасибо. Ща буду тестить :)
61. Сергей Галюк (dj_serega) 28.01.16 12:41
С виду понравилась. Скачал и на тебе :( На 8.3.5.1248 не работает.

{Форма.Форма.Форма(896,3)}: Процедура или функция с указанным именем не определена (НачатьПолучениеФайлов)
<<?>>НачатьПолучениеФайлов(ОписаниеОповещенияПолученияФайлов, ПолучаемыеФайлы, Объект.ИмяФайла, Ложь); (Проверка: Тонкий клиент)
{Форма.Форма.Форма(907,2)}: Процедура или функция с указанным именем не определена (НачатьПодключениеРасширенияРаботыСФайлами)
<<?>>НачатьПодключениеРасширенияРаботыСФайлами(Оповещение); (Проверка: Тонкий клиент)
{Форма.Форма.Форма(1028,2)}: Процедура или функция с указанным именем не определена (НачатьПомещениеФайлов)
<<?>>НачатьПомещениеФайлов(Оповещение,,Диалог,Истина, УникальныйИдентификатор); (Проверка: Толстый клиент (обычное приложение))

Нужно переписать под "ПолучитьФайлы", "ПодключитьРасширениеРаботыСФайлами" и "ПоместитьФайлы" соответственно.
Дорабатывать имеете желание или прислать доработанный вариант?

Приложил скрин свойств конфы.
Прикрепленные файлы:
62. Сергей Галюк (dj_serega) 28.01.16 13:09
Для себя переписал, работает. Пока работает шустренько. Будем дальше "тыкать" =)

1. Нет выбора списков параметра :(
ВЫБРАТЬ * ИЗ Справочник.банки
ГДЕ ссылка В (&Ссылки)
63. Василий Пупкин (BurningChrome) 29.01.16 18:56
(62) dj_serega, можно нажать в параметрах на крестик (очистить) и выбрать тип "Список значений", дальше уже можно указывать любые значения в этом списке. Да, конечно, можно доработать чтобы автоматом список типизировался. Но пока нет времени на это.
64. Иванов Иван (slauter77) 03.02.16 08:56
Сильно тормозит на больших запросах, приходится раскраску отключать :(
65. LordPhoenix Klishin (LordPhoenix) 20.03.16 15:23
Скачал. Запустил(УФ, Толстый клиент). Не запустилась. Выдала следующие ошибки:

Форма.Форма.Форма(894,3)}: Процедура или функция с указанным именем не определена (НачатьПолучениеФайлов)
		<<?>>НачатьПолучениеФайлов(ОписаниеОповещенияПолученияФайлов, ПолучаемыеФайлы, Диалог, Истина);
{Форма.Форма.Форма(896,3)}: Процедура или функция с указанным именем не определена (НачатьПолучениеФайлов)
		<<?>>НачатьПолучениеФайлов(ОписаниеОповещенияПолученияФайлов, ПолучаемыеФайлы, Объект.ИмяФайла, Ложь);
{Форма.Форма.Форма(907,2)}: Процедура или функция с указанным именем не определена (НачатьПодключениеРасширенияРаботыСФайлами)
	<<?>>НачатьПодключениеРасширенияРаботыСФайлами(Оповещение);
{Форма.Форма.Форма(915,2)}: Процедура или функция с указанным именем не определена (НачатьПодключениеРасширенияРаботыСФайлами)
	<<?>>НачатьПодключениеРасширенияРаботыСФайлами(Оповещение);
{Форма.Форма.Форма(981,2)}: Процедура или функция с указанным именем не определена (НачатьПодключениеРасширенияРаботыСФайлами)
	<<?>>НачатьПодключениеРасширенияРаботыСФайлами(Оповещение);
{Форма.Форма.Форма(1046,2)}: Процедура или функция с указанным именем не определена (НачатьПодключениеРасширенияРаботыСФайлами)
	<<?>>НачатьПодключениеРасширенияРаботыСФайлами(Оповещение);
{Форма.Форма.Форма(1009,2)}: Процедура или функция с указанным именем не определена (НачатьПомещениеФайлов)
	<<?>>НачатьПомещениеФайлов(Оповещение,,Диалог,Истина, УникальныйИдентификатор);
{Форма.Форма.Форма(1023,2)}: Процедура или функция с указанным именем не определена (НачатьПомещениеФайлов)
	<<?>>НачатьПомещениеФайлов(Оповещение,ПомещаемыеФайлы,,Ложь, УникальныйИдентификатор);
{Форма.Форма.Форма(2181,3)}: Процедура или функция с указанным именем не определена (НачатьЗапускПриложения)
		<<?>>НачатьЗапускПриложения(Новый ОписаниеОповещения("ОткрытьВExcel_Заверешение", ЭтотОбъект), ВремФайл);

...Показать Скрыть


+Вопрос по вкладке связи:
У меня одного она такая?
http://wlinks.ru/uploads/2016/03/i407byfhh7.png
Нельзя как то сделать так:
http://wlinks.ru/uploads/2016/03/i408b3lhb1.png
______
Сможете ли Вы это исправить? Придется ли перекачивать обработку снова и тратить $M, или же Вы можете прислать её на mail ?
66. Никита Грызлов (nixel) 23.03.16 14:22
(65) LordPhoenix, вы бы хоть версию платформы указали
67. Василий Пупкин (BurningChrome) 23.03.16 17:37
(65) LordPhoenix, добавил версию для платформы 8.3.5 и ниже. (файл "Консоль запросов (до 8.3.6)") (спасибо тов. dj_serega).
По поводу вкладки связи, то этого никак не поменять - это типовой конструктор для тонкого клиента. Писать свой конструктор запроса я не планирую.
68. LordPhoenix Klishin (LordPhoenix) 24.03.16 23:44
(67) Спасибо за версию для 3.5) Конструктор запроса поправил сам)
69. Ольга (Ольга_tmp) 27.06.16 15:21
обработка результата не работает, нельзя ни скопировать/ни вставить, подсветки нет, платформа 8.3.6
70. Алексей - (viplelik) 12.11.16 14:13
Добрый день!

На платформе 8.2.19.130 - не запустилась.
На платформе 8.3.9.1818 - запустилась но:
Запускаю базу УТ 11.1.2.22
В свойствах конфигурации:
Режим совместимости интерфейса - Версия 8.2
Режим совместимости - Версия 8.2.16
Видимо из-за этого ошибка.
Переменная не определена (ЭтотОбъект)
Заменил во всех формах в модулях "ЭтотОбъект" на "ЭтаФорма", кроме Модуля объекта
Обработка открылась.
Еще одна ошибка.
Выбираю конструктор запроса, создаю запрос. Нажимаю ОК.
Появляется ошибка:
На этой странице произошла ошибка сценария.
Строка: 570
Символ: 17

См. скриншот вложении.

Как победить эту ошибку?
Спасибо.
Прикрепленные файлы:
71. Алексей - (viplelik) 13.11.16 01:19
Василий, как побороть эту ошибку?
Сбросил настройки IE, переустановил Java
Галку в свойствах IE "Отключить отладку сценариев" убирал.
Ничего не помогает.
И еще, запрос выполняется автоматически, без нажатия кнопки выполнить. Это так задумано????