Консоль запросов для УФ универсальная 8.3.2.20

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

Реализован программный вызов консоли для захвата "рваного" запроса и параметров.
В консоли реализована полная поддержка работы с таблицами значений.
Выборочный просмотр пакетов и временных таблиц.
Возможность выборочной выгрузки пакета запроса в ТЗ, с последующим её редактированием, сохранением на диск.
Использование сохранённой ТЗ в качестве параметра для других запросов.
Возможность обхода ТЗ в цикле с выполнением кода.
Отсутствуют ошибки при наличии уничтожения временных таблиц.
Замер времени выполнения каждого пакета запроса.
Приличное окно настройки типа (только для параметров запроса), лёгкое преобразование в список значений и обратно.
Поддержка дополнительных типов: ТЗ, Граница, Момент времени, Вид счёта, Вид движения и т.д.
Форматирование типа значения при выводе запроса (NULL, пустая ссылка, пустая строка и т.п.).
Наверное, самый лучший подбор ширины колонок.
Возможность добавлять листы для вывода результатов запросов.
Генерируется текст для конфигуратора с учётом количества результирующих пакетов, для каждого пакета можно настроить выборку или выгрузку и пересоздать текст....

Короче, лучше один раз увидеть ...

Окно настройки типа значения.
Установив флаг "Список значений" параметр примет соответствующий тип с учётом ограничения типа указанном в дереве. Например, список из документов двух типов РТиУ и ПТиУ.

Окно вызывается кнопкой "Т" расположенной на командной панели над параметрами запроса.

 

Установив флаг "Дополнительные типы" откроется таблица, где можно выбрать дополнительно предложенные типы.

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

Для этого установите флаг "Выгрузить" в соответствующей строке пакета запроса.

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

В результате откроется окно с выгруженной таблицей значений.

 

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

 

Редактирование колонок возможно после нажатия на кнопку "Редактировать колонки".
Откроется табличная часть, где можно изменить имя и тип колонки, добавить новые или удалить ненужные колонки.

ВНИМАНИЕ! Если вы указали в параметре таблицу значений, а таблица пуста, то при открытии формы будет пустое место. Нажмите кнопку "Редактировать колонки" и начинайте создавать новые колонке. В результате появится поле новой таблицы. Или загрузите из файла раннее выгруженную ТЗ.

 

Данные таблицы значений можно выгрузить в табличную часть справочника, документа, обработки или внешней обработки. Для этого нажмите кнопку "Выгрузить в объект" и в открывшемся окне укажите объект, имя и таблицу. Если будет выбрана внешняя обработка, то путь к файлу внешней обработки указывается в поле "Имя объекта".
В нижней табличной части формы будут выведены колонки "таблицы-приёмника".
Первые две колонки (Колонка таблицы приёмника, Тип колонки приёмника) описывают имя и тип колонок приёмника. В колонке "Колонка источник" необходимо указать из какой колонки-источника выгружать данные. При нажатии на строки приёмника и источника, в противоположной таблице будут выделяться строки жирным шрифтом с совпадающими типами значений.

Кнопка "Заполнить автоматически колонки источника" попытается автоматически подобрать соответствующие поля приёмника и источника.
Теперь можно будет нажать "ОК" и перед вами откроется форма заполненного объекта.

Если редактируемая таблица планируется использоваться в качестве параметра для запроса, то можно получить запрос, который будет обращаться к данной таблице. Для этого достаточно нажать на кнопку "Создать текст запроса к ТЧ". В последствии надо будет сохранить ТЗ в файл на диск. Скопировать созданный текст запроса в буфер обмена. Вернуться в главное окно консоли запросов. Создать новую ветку в дереве запросов. Вставить текст запроса и выйти из текстового поля. Консоль автоматически определит параметр и установит тип значения для параметра "Таблица значений". Нажмите на кнопку выбора значения. В результате откроется пустое окно редактора ТЗ. Загрузите, раннее сохранённую ТЗ из файла и нажмите "ОК".

 

Результат выгрузки можно обойти в цикле. Примитивные заготовки текста добавляются в текстовое поле "Модуль" при нажатии на кнопки "Цикл" или "Проведение".

Таблица значений будет помещена в переменную "Результат".

На рисунке изображён другой код, он подправлен вручную для добавления комментария элементам справочника. Здесь можно изменить значения в самой ТЗ. Например, можно с помощью редактора колонок создать колонку "Выполнено" с типом "булево" и в "тексте модуля" в теле цикла добавить "Строка.Выполнено = Истина;" (Этот пример на картинке не изображён).

Нажатие на кнопку "Выполнить" вызовет выполнение кода.

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

 

P.S.: Надеюсь, идеи, реализованные в этой консоли, будут полезны. На данном этапе работы над данной консолью стоит задача протестировать и отладить то, что имеется. В ближайших планах, данная консоль будет модернизироваться. Она изначально задумывалась как консоль-функция для управляемых приложений. Те, кто успел поработать с запросами в бухгалтерии 3.0 и столкнулся с кучей временных таблиц, "рваных запросов" и жонглированием с менеджерами временных таблиц поймут, что для анализа подобного "безобразия" необходим специализированный инструмент. Так вот эта консоль как раз и будет вызываться из кода, собирать переданные в неё параметры запроса, тексты запроса, менеджеры временных таблиц из всех кусков рваного запроса и показывать все данные как на блюдце.

Ваша моральная поддержка ускорит этот процесс!

Версия 2.0


Отдельная благодарность h00k за предоставленный универсальный код для платформ 8.2 и 8.3.
Мне очень понравилась идея предложенная пользователем h00k  - создать на панели кнопку проверки текста запроса, это оказалось очень удобно.

Для табличного документа добавлены команды отображения/скрытия заголовков строк и колонок (удобно выделять строку/колонку целиком).
Добавлена кнопка фиксации заголовков и строк таблицы для прокрутки.

Добавлены некоторые типы значений в форме выбора типов.

Поле редактирования запроса заменил на поле текстового документа.
Доработал процедуры комментирования текста.

Часть ошибок запроса выводится не типовым сообщением, а в специальном поле под текстом запроса.

Доработана форма выгрузки в объект.
Форма выбора границы.

В форме для редактирования таблицы значений добавлена кнопка "Уникальный идентификатор" которая выводит текст получения соответствующего значения.

Пока на этом всё. Делитесь впечатлениями и пожеланиями.

 

Версия 8.3.2.1

Добавлена кнопка выполнения нескольких запросов с одним менеджером временных таблиц. Обход выделенной ветки происходит иерархически.
Удаление выгруженных ТЗ (пакеты) из сохраняемых параметров в системе перед закрытием консоли. Для файла опция не реализована.
Отображение времени выполнения пакета в ТЧ временных таблиц.
Кнопки "скопировать в буфер" и "вставить из буфера" появляются когда функционал доступен.
Новые кнопки для окрашивания фона ячеек табличного документа, шрифта и рамок.
Добавлена кнопка сворачивания и разворачивания групп табличного документа.
Запрос выполняется по F5

Исправлены ошибки при загрузке файла.
Исправлены ошибки при отказе от загрузки файла.
Исправлено отображение ошибки в запросе при нажатии на гиперссылку с описанием ошибки.
Исправлена ошибка при удалении ветки дерева без родителя и др.

Пример программного вызова консоли для захвата "рваного" запроса и параметров.

Сначала создаётся объект обработки:

ВнешниеОбработки.Создать("C:\КонсольЗапросовУФ.epf", Ложь)

Потом вызывается экспортная процедура, в которую передаётся запрос и имя файла.

.ОбработатьВнешнийЗапрос(Запрос, "ИмяФайла");

Новый файл будет сохранён в ту же папку, из которой вызвана консоль.

По умолчанию имя файла = "РезультатыЗапроса".

Файл накапливает результаты вызовов при каждом вызове в новую ветку.

После чего, можно открыть файл в консоли и выполнить эти запросы собранные в одну ветку с использованием общего МВТ.

!!! ЕСЛИ БАЗА ДАННЫХ НАХОДИТСЯ НА СЕРВЕРЕ, ТО УКАЗЫВАЙТЕ ПУТЬ ДОСТУПНЫЙ С СЕРВЕРА !!!

Функция  НашаПроцедура1()

	Запрос = Новый Запрос();
	МВТ = Новый МенеджерВременныхТаблиц;
	Запрос.МенеджерВременныхТаблиц = МВТ;
	
	Запрос.Текст = ПолучетьТекстЗапроса1();
	Запрос.УстановитьПараметр("Ххх", "ххх");
	
	Запрос.Выполнить();
	ВнешниеОбработки.Создать("C:\КонсольЗапросовУФ.epf", Ложь).ОбработатьВнешнийЗапрос(Запрос, "ИмяФайла");
	
	НашаПроцедура2(МВТ);
	
	Запрос.Текст = ПолучетьТекстЗапроса3();

	Запрос.Выполнить();
	ВнешниеОбработки.Создать("C:\КонсольЗапросовУФ.epf", Ложь).ОбработатьВнешнийЗапрос(Запрос, "ИмяФайла");
	
	Возврат НашаФункция(Запрос);

КонецФункции

Процедура НашаПроцедура2(МВТ)

	Запрос = Новый Запрос();
	Запрос.МенеджерВременныхТаблиц = МВТ;
	
	Запрос.Текст = ПолучетьТекстЗапроса2();
	Запрос.УстановитьПараметр("Yyy", "yyy");

	Запрос.Выполнить();
	ВнешниеОбработки.Создать("C:\КонсольЗапросовУФ.epf", Ложь).ОбработатьВнешнийЗапрос(Запрос, "ИмяФайла");
	
КонецПроцедуры

Функция НашаФункция(Запрос)

	Запрос.Текст = ПолучетьТекстЗапроса4();
	Запрос.УстановитьПараметр("Zzz", "zzz");

	ВнешниеОбработки.Создать("C:\КонсольЗапросовУФ.epf", Ложь).ОбработатьВнешнийЗапрос(Запрос, "ИмяФайла");
	Возврат Запрос.Выполнить();
	
КонецФункции.
 

Версия 8.3.2.2

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

 

Версия 8.3.2.3

Добавлено дерево функций языка запросов. Поддерживается перетаскивание мышью.
Закомментировать - Ctrl+Num /
Убрать комментарий - Ctrl+Shift+Num /
Запрос проверяется не всегда, а только по кнопке или вызовом по грячим клавишам, смене ветки запроса.

Решена проблема сохранением дерева запросов и их параметров. (по крайней мере на моих тестовых базах).
Исправлена ошибка после нажатия "Вывод текста запроса".

 

 

Версия 8.3.2.4

Не выкладывал, т.к. обнаружил кучу ошибок.

Версия 8.3.2.5

Добавлена команда для открытия 'файла дерева запроса' указав путь c 'сервера приложения'.
Поиск текста в табличном документе.
Команда для просмотра предопределённых значений. Она удобна для просмотра бухгалтерских счетов, узнать номер. Требуется редко, но "дорога ложка к обеду".
Свернуть/развернуть результат - Ctrl + R
Свернуть/развернуть текст запроса - Ctrl + T
Кнопки для свернуть/развернуть ТД и ТЧ перенёс на командную панель ДЗ.
Пока убрал видимость кнопки 'Свернуть/развернуть параметры'.
Исправление ошибок
Открытие 'Дерева запросов' и сохранение реализовано через хранилище.
Загрузка 'Таблиц значений' и сохранение реализовано через хранилище.
Исправлена ошибка в 8.2 возникающая при окрашивании ячеек/текста/границ




 

Версия 8.3.2.6

 
В окне выбора файла на 'сервере приложения' добавлено 'дерево каталогов'.

Доработки сделанные пользователем h00k:
В окне генерации текста модуля добавлена опция "Проверить результат запроса".
В окне генерации текста модуля в ТЧ добавлена колонка "Итератор" для обозначения переменной итератора при обходе выгрузки.
Добавлена функция авторегистрации внешней обработки.

Отдельное спасибо пользователю dj_serega за тестирование и подсказки.

Версия 8.3.2.7

 
 
 

В окне функций добавлены новые заготовки.
Добавлена форма для получения предопределенных значений или имён объектов:
- Справочники,
- Документы,
- Перечисления,
- Планы видов характеристик,
- Планы счетов,
- Планы видов расчёта,
- Бизнес-процессы
- Задачи.

1. Выделить замещаемый текст,
2. Нажать на кнопку "Получить предопределённое значение",
3. Заполнить поля открывшегося диалогового окна.
4. Нажать "ОК".

Исправлена ошибка:
Перед выполнением запроса применяются изменения сделанные вручную.


ВЕРСИЯ 8.3.2.8


Добавлены кнопки:

  • - Сохранение в Excel,
  • - Удаление страницы (первая страница не удаляется!).

Исправлены ошибки:

  • - 138. dj_serega. Внёс все предложенные исправления.
  • - 142. StepByStep. {Форма.ФормаТаблицаЗначений.Форма(251,9)} Переименовал ПолучитьФайл(), в ПолучитьФайл_()
  • - 139. klinval. Если удалить неиспользуемый параметр через Del, то он "возвращается" после изменения запроса. Удаление через кнопку работает корректно.
  • - 133. sommid . Доработана очистка параметров запроса, теперь система не падает.
  • - Очистка параметров при удалении ветки в дереве запросов.
  • - И некоторые другие ошибки.





 

ВЕРСИЯ 8.3.2.9


Релиз содержит обновление от tristarr1:

  • В параметр можно подставить любое значение получаемое произвольным исполняемым кодом. Значение присваивается пременной "Параметр".





ВЕРСИЯ 8.3.2.10

Исправлены ошибки:

  • 156. tristarr1 Значение Параметра с типом "Граница" не преобразуется в пустую дату при выполнении запроса.
  • 160. dj_serega Корректно работает табличное поле "Временные таблицы" при попытке просмотреть выгруженную таблицу.

ВЕРСИЯ 8.3.2.11

 

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

Модификация от dj_serega: В форме выбора предопределённых элементов добавлен флаг "ЗНАЧЕНИЕ(<...>).

Исправление ошибок:

  • 165 snikers44 Устранена ошибка при выводе в табличный документ результата запроса.
  • dj_serega исправил ошибку - "дата без времени в параметрах".

ВЕРСИЯ 8.3.2.12

Модификации:

  • Поддержка английского синтаксиса.
  • Перевод Ру-En и En-Ру. Коструктор запроса всегда возвращает синтасис на русском.


ВЕРСИЯ 8.3.2.13


Модификация от tristarr1: оптимизоравно открытие формы выбора типа.

Исправлен ряд ошибок связанных с формой выбора типа.


ВЕРСИЯ 8.3.2.14


Изменена форма выбора типа.

При выборе "Выражение параметра" текстовое поле заполняется шаблоном текста.

Добавлена простая панель редактирования.


Исправлены некоторые ошибки связанные с изменением типа параметра при выполнении/проверке запроса.


ВЕРСИЯ 8.3.2.15


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


ВЕРСИЯ 8.3.2.16


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

Добавлена примитивная проверка в тексте 'выражения параметра', проверка смотрит, есть ли в 'выражении парамера' имена испоьзуемых переменных.

 


 

ВЕРСИЯ 8.3.2.17

 


Доработки:
1. При нулевом значении вместо пустой ячейки отображается: "<0>".


2. Новая команда "Создать код установки значений переменным параметров".

Откроется окно с таким текстом:


3. Добавлены два шаблона кода для обработки в цикле результатов выгрузки в таблицу:
    

а. "Создать текст получения уникального идентификатора + добавить колонку в ТЗ".
   


б. "Создать текст обработки движений регистра бухгалтерии".


Исправлены ошибки:
1. При создании текста запроса удалены лишние кавычки.
2. Сохраняется текст модуля в форме "Работа с таблицей значений".

 

ВЕРСИЯ 8.3.2.18

 

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

 

ВЕРСИЯ 8.3.2.19

 

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

 

 

ВЕРСИЯ 8.3.2.20

 

 Добавлена возможность выгружать/загружать данные через XML.

 Значение сериализуется процедурой -

 ЗаписатьXML(<ЗаписьXML>, <Значение>, <НазначениеТипа>)

 

 


________________________________________________________________________________________________________________________________________________
P.S.: Просьба. При обнаружении ошибок указывать релиз консоли, версию платформы, режимы модальности и синхронных вызовов,
т.к. не получается воспроизвести некоторые из указанных ошибок.

Файлы

Наименование Файл Версия Размер Кол. Скачив.
Консоль запросов для УФ 8.3.2.20
.epf 129,30Kb
29.04.16
1612
.epf 8.3.2.20 129,30Kb 1612 Скачать

См. также

Лучшие комментарии

5. alex_4x (файл скачал) 12.03.2015 10:15
Радует подробная инструкция. Прям красотищща :-)
# Ответить
104. akor77 30.03.2015 18:14
(103) AlexO, Привет, дружище!

Кто мешает развитию?
- Подавляющая личность (ПЛ).
http://admintech.ru/articles/protivodeistvie-uluchsheniyam-na-predpriyatii
Такой человек в основном занимается тем, что распространяет плохие новости, делает критические или враждебные замечания, обесценивает и вообще оказывает подавление. Он никогда не передает никаких хороших новостей или одобрительных замечаний.
Подавляющие личности просто отравляют все вокруг себя и оказывают влияние на свое окружение.
Такие люди являются хорошо замаскировавшимися сумасшедшими.
Все кто находится в тесном контакте с ПЛ очень часто испытывают то спады, то подъёмы, один день может много дел переделать, а потом ничего не может ничего. Если вы заметили это в себе, то ищите ПЛ-а.

Вся подноготная о подавляющих личностях хорошо раскрыта в этой книге:

Книга "Сады и подъёмы", автор Рут Мишнулл.
http://www.klex.ru/79

Если вас подавляют в семье, дома или на работе, обязательно научитесь выявлять ПЛ-ов.

Кроме того, подавлению обучают:
1. Подавляющее влияние: как и на чем любят играть любители обманывать, пугать, подавлять...
http://www.nrpsy.ru/psy_podavlenie.html
2. Подавляющее влияние: Подавляющее влияние 2: подавление авторитетом...
http://www.nrpsy.ru/psy_podavlenie_avtoritet.html
3. Подавляющее влияние 2: интриги, подставы, шантаж...
http://www.nrpsy.ru/psy_podavlenie_intrigi.html
Ответили: (108)
# Ответить
7. h00k (файл скачал) 12.03.2015 16:31
(3)
Не помню когда последний раз запускал толстый клиент УФ, поэтому изменил код процедур открытия конструктора запросов под тонкий клиент:
&НаКлиенте
Процедура КонструкторЗапроса(Команда)
	
	ТекущиеДанные = Элементы.ДеревоЗапросов.ТекущиеДанные;
	
	Если ТекущиеДанные = Неопределено Тогда
	
		Предупреждение("Выберите строку дерева запросов!");
		Возврат;
	КонецЕсли;

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

КонецПроцедуры

&НаКлиенте
Процедура ПослеРедактированияЗапроса(Текст, ЭлементДерева) Экспорт
		Если Не ПустаяСтрока(Текст) Тогда
			ЭлементДерева.Текст = Текст;
			ПроверитьТекстЗапроса_ПолучитьПараметры_ОбновитьДанные();
		Иначе
			Модифицированность = Ложь;
		КонецЕсли;
КонецПроцедуры

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

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


соответственно код работает в 8.3.5 и выше.
По хорошему обрабатывать открытие конструктора нужно в зависимости от версии платформы, но у меня платформ ниже 8.3.5 нет, поэтому проверку не стал добавлять.

Полезную процедуру ПроверитьТекстЗапроса_ПолучитьПараметры_ОбновитьДанные стоит добавить в качестве кнопки по умолчанию.
&НаКлиенте
Процедура ПроверитьЗапрос(Команда)
	ПроверитьТекстЗапроса_ПолучитьПараметры_ОбновитьДанные();
КонецПроцедуры
...Показать Скрыть

Тогда процесс написания/ корректировки запроса руками становится гораздо комфортнее.
Ответили: (11) (14) (16)
# Ответить
111. Boneman (файл скачал) 31.03.2015 16:18
как бы сказать ))) ну неплохой такой инструмент получился.
Хорошая работа !
Ответили: (112) (114)
+ 3 [ h00k; artbear; dj_serega; ]
# Ответить
86. dj_serega (файл скачал) 25.03.2015 18:05
(85) artbear, Это разработчик немного налажал :(
|Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет);
			|ПередЗакрытиемЗавершение(Результат, Параметры);";

Вместо "Результат" должен быть "Ответ"

Себе замените, а он посмотрит и исправит.

В любом случае за такую консольку на это можно закрыть глаза ;)
Ответили: (88)
+ 1 [ h00k; ]
# Ответить
67. necropunk 24.03.2015 12:16
Начал использовать. Замечания пока мелкие, например, по Ctrl+/ не комментирует выделенный блок, надо мышкой в соответствующую кнопку тырцать, не очень удобно, а к хоткею привык уже...
+ 1 [ dj_serega; ]
# Ответить
226. h00k (файл скачал) 04.04.2016 11:32
(225) masterkio,
не открывается в конфигурациях, где стоит режим совместимости с платформой ниже 8.3.7

Это с какого перепугу то не открывается?! Вы темы с консолями случайно не перепутали?
+ 1 [ dj_serega; ]
# Ответить
121. dj_serega (файл скачал) 21.04.2015 18:27
(120) Glebis,
5) Лично для меня привычнее было бы видеть ошибки запроса не под текстом запроса, а справа в области сообщений.

у меня Такси. Поэтому привычней снизу видеть :)

upd: если сообщение выводится как сейчас, тогда можно на него нажать и в тексте запроса выделится строка с ошибкой. что есть Очень удобно. Так что переделывать не нужно, а если и переделать то опционально.
+ 1 [ h00k; ]
# Ответить
10. dj_serega (файл скачал) 12.03.2015 19:01
Не смог Не скачать. Очень удобно (с виду).
Надеюсь запросник 8.3 уйдет в прошлое :)

Поспешил. Не работает в тонком клиенте :( Допиливать себе или ждать релиза 2.0?
Ответили: (12) (14)
+ 1 [ BigB; ]
# Ответить
179. akor77 18.09.2015 18:36
(178) klinval, Пример захвата смотри в описании версии 8.3.2.1
Захватывается текст запроса и все параметры.
Содержимое временных таблиц и результирующих пакетов не захватывается.
+ 1 [ klinval; ]
# Ответить

Комментарии

1. kostyaomsk (файл скачал) 12.03.2015 06:40
Маленький вопрос по первоисточникам, наработками этой консоли. Что взято за основу? Я всегда честно указываю источники. Даже уже не с целью авторства, а с целью функционала - какой она наследует функционал, а, главное, глюки?
Консолей то миллион. Мне даже для себя эти приходится дорабатывать. Особенно чтоб поля <NULL> и <Неопределено>, <ПустаяХарактеристика> и прочее в той же опере где лучше 1 раз увидеть.
Ответили: (2) (3)
# Ответить
2. akor77 12.03.2015 07:19
(1) kostyaomsk, за основу взята моя прежняя разработка: http://infostart.ru/public/175229/

Заимствования со стороны:
1. Раскраску кода заимствовал из одной консоли, она раскрашивала строки таблицы значений при выводе сроки.
2. Идею обхода выгруженной табличной части в цикле подсказал коллега.
+ 1 [ shalimski; ]
# Ответить
3. akor77 12.03.2015 07:29
(1) kostyaomsk, Про глюки. Данная консоль унаследовала лишь часть функционала от "предшественницы". Консоль писалась заново с использовоанием части раннее созданных форм, алгоритмов. так называемое "ядро" переписано заново с учётом накопленного опыта прежних ошибок. Воя я уже сам нашёл недочёт - не все типы значений в ФормаВыбораТипа. В обработчик "ПриСозданииНаСервере" надо добавить строки:
ВывестиКоллекцию(Дерево, "ПланыСчетов" , "ПланСчетов");
ВывестиКоллекцию(Дерево, "ПланыВидовРасчета" , "ПланВидовРасчета");
ВывестиКоллекцию(Дерево, "БизнесПроцессы" , "БизнесПроцесс");
ВывестиКоллекцию(Дерево, "Задачи" , "Задача");
Ответили: (7) (9) (78)
+ 1 [ kostyaomsk; ]
# Ответить
4. molodoi1sneg (файл скачал) 12.03.2015 07:40
Спасибо за консоль!
# Ответить
5. alex_4x (файл скачал) 12.03.2015 10:15
Радует подробная инструкция. Прям красотищща :-)
# Ответить
6. Vadim75 12.03.2015 16:13
Спасибо за консоль! Плюс однозначно.
# Ответить
7. h00k (файл скачал) 12.03.2015 16:31
(3)
Не помню когда последний раз запускал толстый клиент УФ, поэтому изменил код процедур открытия конструктора запросов под тонкий клиент:
&НаКлиенте
Процедура КонструкторЗапроса(Команда)
	
	ТекущиеДанные = Элементы.ДеревоЗапросов.ТекущиеДанные;
	
	Если ТекущиеДанные = Неопределено Тогда
	
		Предупреждение("Выберите строку дерева запросов!");
		Возврат;
	КонецЕсли;

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

КонецПроцедуры

&НаКлиенте
Процедура ПослеРедактированияЗапроса(Текст, ЭлементДерева) Экспорт
		Если Не ПустаяСтрока(Текст) Тогда
			ЭлементДерева.Текст = Текст;
			ПроверитьТекстЗапроса_ПолучитьПараметры_ОбновитьДанные();
		Иначе
			Модифицированность = Ложь;
		КонецЕсли;
КонецПроцедуры

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

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


соответственно код работает в 8.3.5 и выше.
По хорошему обрабатывать открытие конструктора нужно в зависимости от версии платформы, но у меня платформ ниже 8.3.5 нет, поэтому проверку не стал добавлять.

Полезную процедуру ПроверитьТекстЗапроса_ПолучитьПараметры_ОбновитьДанные стоит добавить в качестве кнопки по умолчанию.
&НаКлиенте
Процедура ПроверитьЗапрос(Команда)
	ПроверитьТекстЗапроса_ПолучитьПараметры_ОбновитьДанные();
КонецПроцедуры
...Показать Скрыть

Тогда процесс написания/ корректировки запроса руками становится гораздо комфортнее.
Ответили: (11) (14) (16)
# Ответить
8. HitGroove (файл скачал) 12.03.2015 17:00
Удобная консолька!
# Ответить
9. h00k (файл скачал) 12.03.2015 17:36
(3)akor77 Из того чего явно не хватает в этой консоли - получение плана запроса, ну и возможно вывода GUID для ссылочных данных.
# Ответить
10. dj_serega (файл скачал) 12.03.2015 19:01
Не смог Не скачать. Очень удобно (с виду).
Надеюсь запросник 8.3 уйдет в прошлое :)

Поспешил. Не работает в тонком клиенте :( Допиливать себе или ждать релиза 2.0?
Ответили: (12) (14)
+ 1 [ BigB; ]
# Ответить
11. akor77 12.03.2015 20:00
(7) h00k, Обязательно учту пожелания. А тобой предложенный код используется в конфигурациях где нет поддержки модальных окон в Такси. В тонком клиенте на 8.2 он не будет работать.
Ответили: (14) (15)
# Ответить
12. akor77 12.03.2015 20:07
(10) dj_serega,
В тонком клиенте конструктор запроса работает только на платформе с версии 8.3.5 и выше.

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

Для Такси (без поддержки модальных окон) буду делать отдельную версию.
но она не будет работать в 8.2 ни в толстом ни в тонком клиентах.
Ответили: (13) (14) (17)
# Ответить
13. dj_serega (файл скачал) 12.03.2015 22:17
(12) akor77,
В тонком клиенте конструктор запроса работает только на платформе с версии 8.3.5 и выше.

У меня: 8.3.5. Тонкий клиент. Такси. Модальность - Использовать.

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

Так вот и предлагаю реализовать конструктор для тонкого. Там же пара строчек кода ;)

Для Такси (без поддержки модальных окон) буду делать отдельную версию.
но она не будет работать в 8.2 ни в толстом ни в тонком клиентах.

8.3 не только под такси может работать. У нас половина пользователей на обычных управляемых, другая половина на такси.
# Ответить
14. h00k (файл скачал) 13.03.2015 00:16
(10)dj_serega
Поспешил. Не работает в тонком клиенте

Для 8.3.5 решение в сообщении (7), чуть ниже добавлю универсальное решение.

(11)akor77
В тонком клиенте на 8.2 он не будет работать.

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

(12)akor77
Для Такси (без поддержки модальных окон) буду делать отдельную версию.
но она не будет работать в 8.2 ни в толстом ни в тонком клиентах.

Зачем?! Лучше сделать одну универсальную, чем 10 под разные платформы...
Ответили: (16)
# Ответить
15. h00k (файл скачал) 13.03.2015 00:39
(11)akor77, Вот этот вариант работает и в 8.2.19 и в 8.3.6
&НаКлиенте
Процедура КонструкторЗапроса(Команда)
	
	#Если НЕ ТолстыйКлиентУправляемоеПриложение Тогда
	Если ВерсияПлатформыНиже835() Тогда
		Сообщить("Внимание! Данная версия клиента платформы 1С: Предприятие 
		| не поддерживает запуск конструктора запросов.");
		Возврат;
	КонецЕсли;
	#КонецЕсли

	ТекущиеДанные = Элементы.ДеревоЗапросов.ТекущиеДанные;
	Если ТекущиеДанные = Неопределено Тогда
	
		Предупреждение("Выберите строку дерева запросов!");
		Возврат;
	КонецЕсли;

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

КонецПроцедуры


&НаКлиенте
Процедура ПослеРедактированияЗапроса(Текст, ЭлементДерева) Экспорт
		Если Не ПустаяСтрока(Текст) Тогда
			ЭлементДерева.Текст = Текст;
			ПроверитьТекстЗапроса_ПолучитьПараметры_ОбновитьДанные();
		Иначе
			Модифицированность = Ложь;
		КонецЕсли;
КонецПроцедуры


&НаСервереБезКонтекста
Функция ВерсияПлатформыНиже835()
	
	лРезультат = СравнениеСТекущейВерсией("8.3.5.1068");
	
	Возврат ?(лРезультат = -1, Истина, Ложь);	
КонецФункции // ВерсияПлатформыНиже835()

	

&НаКлиенте
Процедура РедактироватьВыделенныйПакет(Команда)
	
	#Если НЕ ТолстыйКлиентУправляемоеПриложение Тогда
	Если ВерсияПлатформыНиже835() Тогда
		Сообщить("Внимание! Данная версия клиента платформы 1С: Предприятие 
		| не поддерживает запуск конструктора запросов.");
		Возврат;
	КонецЕсли;
	#КонецЕсли

	Текст = Элементы.ДеревоЗапросовТекст.ВыделенныйТекст;
	Если ПустаяСтрока(Текст) Тогда
	
		Предупреждение("Не выделен пакет запроса для редактирования!");
		Возврат;	
	КонецЕсли;
	КодПрограммы = "
	|КонструкторЗапроса = Новый КонструкторЗапроса(Текст);
	|";
	
	#Если ТолстыйКлиентУправляемоеПриложение Тогда
	Попытка
		КодПрограммы = КодПрограммы+ "
		|КонструкторЗапроса.АвтоДобавлениеПредставлений = Ложь;
		|КонструкторЗапроса.РежимКомпоновкиДанных = Ложь;

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

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

Конструктор запросов работает и в толстом клиенте, и, если версия платформы 8.3.5 или выше, то и в тонком и в веб-клиентах.
В общем, если заменить код соответствующих процедур, то получится вполне себе универсальная консоль.

П.С.: В функции СравнениеСТекущейВерсией(ВерсияДляСравнения)
строка
ВерсияДляСравнения = "8.3.5.823";
лишняя, она нивелирует передаваемый параметр.
Ответили: (18)
# Ответить
16. dj_serega (файл скачал) 13.03.2015 00:56
(14) h00k,
Для 8.3.5 решение в сообщении (7), чуть ниже добавлю универсальное решение.
Так я ж говорю: для себя писать или ждать релиза :)
Ответили: (18)
# Ответить
17. h00k (файл скачал) 13.03.2015 01:34
(12)akor77
Для Такси (без поддержки модальных окон) буду делать отдельную версию.

Кстати, я понимаю там конструктор запросов, а для остальных то окон зачем было делать модальный вызов? Обычная команда
ОткрытьФорму
вполне себе неплохо работает.
# Ответить
18. h00k (файл скачал) 13.03.2015 02:04
(16) dj_serega, можно и не писать. Мою переделку из (15) скопипасть и будет то что нужно.
Правда еще стоит пройтись по модулям и заменить ОткрытьФормуМодально на ОткрытьФорму ну и настроить контекстное меню в табличных полях, но это уже дело вкуса.
Ответили: (19)
# Ответить
19. akor77 13.03.2015 04:11
(18) h00k, Ок, на выходных сделаю.
# Ответить
20. akor77 14.03.2015 15:52
Файл для скачивания обновлён.
Ответили: (21) (27)
# Ответить
21. dj_serega (файл скачал) 15.03.2015 18:25
(20) akor77, Спасибо! Теперь попробуем применить на практике.
Ответили: (22)
# Ответить
22. akor77 15.03.2015 18:37
(21) dj_serega, Это хорошо! Жду результатов теста. Одну ошибку в версии 2.0 я уже нашёл. Но она мелкая и её легко устранить. Жду отзывов. К стати. Я уже сделал первый вариант для вызова консоли из файла на диске при отладке и собирать данные о "рваных" запросах, которве в БП и ЗУПе на УФ. На неделе буду тестировать. Надеюсь, что к выходным будет новая версия.
Ответили: (25)
# Ответить
23. pt_olga (файл скачал) 16.03.2015 12:41
скачала, вещь полезная
только не разобралась пока, как результирующюю таблицу сохранить в эксель

подскажете?
Ответили: (24)
# Ответить
24. akor77 16.03.2015 16:46
(23) pt_olga, Пока только "копи-пастом". В следующем релизе "прикручу" кнопку.
# Ответить
25. dj_serega (файл скачал) 17.03.2015 17:49
(22) akor77,
1. Сделать вопрос перед закрытием консольки (естественно учитывая модальность).

2. Опционально выводить или не выводить результат вычисления временных таблиц:
Сейчас в результате:
втСвернуто (0,019 мс.)
втПолный (0,151 мс.)
Результат1 (0,004 мс.)

Предлагаю так изменить ТЧ ВременыеТаблицы:
Пакет, Показать, Выгрузить, ОтобразитьВремяВыполнения, ОтобразитьКоличествоСтрок.

3. Добавить кнопки на форму для:
а) Управление видимостью левой панели (Дерево запросов, Параметры, Временные таблицы)
б) Управление видимостью Текста запроса
в) Управление видимостью результатов

4. Как-то не логичное наличие кнопок "скопировать в буфер" и "вставить из буфера" если после нажатия пишет "на сервере не доступно". Может как-то можно управлять их видимостью?

5. Не сохраняет и не загружает запросы :(
{Форма.Форма.Форма(1334)}: Ошибка при вызове метода контекста (НайтиПоИдентификатору)
ТекущаяСтрока = ДеревоЗапросов.НайтиПоИдентификатору(Элементы.ДеревоЗапросов.ТекущаяСтрока);
по причине:
Несоответствие типов (параметр номер '1')

Я бы проверку так написал:
	ТекущаяСтрокаДереваЗапросов = Элементы.ДеревоЗапросов.ТекущаяСтрока;
	Если ТекущаяСтрокаДереваЗапросов = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	ТекущаяСтрока = ДеревоЗапросов.НайтиПоИдентификатору(ТекущаяСтрокаДереваЗапросов);
...Показать Скрыть

Может еще где встречается не смотрел. Но лучше "понатыкивать" таких проверок везде :)

6. Кнопочка "Добавить" страницу результата есть, а удалить нет :|


Пока всё :)

upd: А так консолько порадовало. Спасибо огромное. Буду писать тут о найденных "фичах" и пожелалках.
Ответили: (26) (35) (36)
# Ответить
26. akor77 17.03.2015 19:12
(25) dj_serega, Отлично, спасибо огромное. Буду править. У меня ещё появилась парочка новых идей. Так что интересное ещё впереди!
Ответили: (29)
# Ответить
27. Hitcher 18.03.2015 09:20
(20) akor77,
А можно навести порядок в версиях? Чтобы не просто слова "Файл для скачивания обновлён. ", а какая теперь стала версия.
Желательно с описанием.
И чтобы скачивающий видел не просто надпись "Консоль запросов для УФ 8.2, 8.3" а какая это версия. И мог сравнить со своей версией. И принять решение.

Описания версий можно взять из системы стандартов 1с

Нумерация редакций и версий

1. Номер очередной редакции конфигурации, начинается со следующего целого номера относительно предыдущей редакции. Для обозначения редакции обычно номер редакции объединяют через точку с номером подредакции, например: редакция 1.5, редакция 1.6 и т. д. Для новых конфигураций нумерация начинается с 1.0.

2. Все версии одной подредакции (включая альфа, ознакомительные, бета и финальные версии) нумеруются подряд. Нумерация версий начинается с 1.

3. Информация о номере редакции, номере подредакции и номере версии объединяются в полный номер версии конфигурации. Он указывается в свойстве Версия конфигурации и представляет собой строку символов следующего вида:

{Р|РР}.{П|ПП}.{З|ЗЗ}.{С|СС}

где:
Р - номер редакции (минимум 1 цифра, может занимать и больше разрядов);
П - номер подредакции (минимум 1 цифра, может занимать и больше разрядов);
З - номер версии (минимум 1 цифра, может занимать и больше разрядов);
С - номер сборки (минимум 1 цифра, может занимать и больше разрядов).

Пример:

1.6.4.7 – 7-я сборка, 4-ой версии, редакции 1.6
Ответили: (37)
+ 1 [ dj_serega; ]
# Ответить
28. petrov_al 18.03.2015 10:41
Все хорошо, но боюсь не буду использовать и половины всех возможностей или очень редко...
# Ответить
29. dj_serega (файл скачал) 18.03.2015 12:06
(26) akor77, 1. Нет возможности работать с временными таблицами. Пример можно взять с "Запросник 1.0 (оф) и 2.0 (на уф)".
Ответили: (38)
# Ответить
30. asved.ru (файл скачал) 18.03.2015 12:16
Выглядит замечательно. Шикарно, если запрос будет выполняться по F5.
Ответили: (39)
# Ответить
31. aves (файл скачал) 18.03.2015 12:18
Не сохраняются тексты обработки модулей для выгруженных таблиц. Очень надо.
Хотя сами таблицы сохраняются. Не уверен зачем, но иногда пригодиться может. Тут хотелось бы опцию - чтобы не перегружать сохраняемый файл.

Объясню зачем:
Часто консоль используется не только для получения какого либо результата, но и как достаточно универсальный инструмент обработки данных, где сначала выбирается результат (например ошибки в базе), а затем идет обработка на его исправление.
У меня в консоли для обычных форм есть дерево порядка с 20-30 запросами и обработками для них. Писать для каждого случая внешние обработки было бы неудобно, да и текст запроса там был бы не виден (т.е. управляемость ущербная).

И раз такие пожелания, добавьте новую кнопку рядом со сформировать (Выгрузить результат в ТЗ). для действий аналогичному установке галке в последней строке и открытии таблицы результата. В 99% случаев именно это требуется для обработок БД.
Ответили: (40)
# Ответить
32. poyson 18.03.2015 13:34
пасибо. подробно. попробуем...
# Ответить
33. scape (файл скачал) 18.03.2015 13:54
При отказе от загрузки дерева запросов (кнопка почему то называется "открыть дерево запросов") выдает ошибку и... дальше никак, только убивать программу через диспетчер.
Ответили: (35)
# Ответить
34. ab471vi (файл скачал) 18.03.2015 14:01
Скачала, будем пробовать! Отдельное спасибо за отличную инструкцию)
# Ответить
35. dj_serega (файл скачал) 18.03.2015 14:45
(30) asved.ru,
Шикарно, если запрос будет выполняться по F5.

Я бы повесил на ctrl+enter. Мне, например, это удобней ;) Я привык документы проводить по этому типовому сочетанию. Так же записывать справочники и тд.
(33) scape, Я это у себя поправил (25), надеюсь разработчик внесет в релиз.

Следующие пожелалки:
1. В результирующем табличном поле выравнивать не только по значению, но и иметь возможность выравнивать по заголовку. Бывает что в колонке нет данных, и не видно как называется колонка. Приходится наводить мышкой на колонку. А если таких много, то неудобно.
2. А можно в параметрах флаг "Список значений" вынести на форму списка параметров (и сделать там кнопку "СписокЗначений". Где Кнопка.Пометка = Истина если СЗ или ложь если это ссылка). Сейчас приходится входить в изменение типа, ставить флаг, закрывать форму.
3. Некорректно отображается ошибка в запросе.
Проверка пишет одно. А вход в конструктор запроса другое.
4. Все модальные окна открывать с блокированием владельца (тоесть консольки). Сейчас выполняется блокировка всего интерфейса.
Ответили: (41)

Прикрепленные файлы:

01.png
# Ответить
36. akor77 18.03.2015 17:04
(25) dj_serega, Принял к сведению. Буду делать.
# Ответить
37. akor77 18.03.2015 17:12
(27) Hitcher, Понял, буду указывать версию в названии. Для консоли может будет вполне достаточно номера версии и сборки? Никак не могу представить необходимость редакции и подредакции. Если делать 8.3.Х.Х, то не отражается 8.2, если сделать 8.2-8.3.Х.Х - это коряво всмотрится. Хотя, 8.3.Х.Х мне начинает нравиться.
Тогда сейчас выложена версия 8.3.2.0
Все согласны с такой нумерацией версий?
# Ответить
38. akor77 18.03.2015 17:14
(29) dj_serega, Не могу понять что именно требуется? Это про "Нет возможности работать с временными таблицами"
Ответили: (42)
# Ответить
39. akor77 18.03.2015 17:16
(30) asved.ru, Горячие клавиши надо обсудить вместе.
F5 - выполнение запроса
Ctrl + Enter - проверка на ошибки
Пойдёт?
Ответили: (44)
# Ответить
40. akor77 18.03.2015 17:18
(31) aves, Отличные пожелания! Мне очень нравятся предложенные идеи. Функционал становится богаче. Сделаю.
Ответили: (42)
# Ответить
41. akor77 18.03.2015 17:25
(35) dj_serega, Идея про "список значений" мне тоже понравилась.
А про ширину колонок, это всё по разному. Бывает булево с широченным названием колонки.
Но буду иметь в виду.
А для изменения ширины колонки нажми кнопку которая следующая за "Выполнить запрос" (зелёного карандаша) , там мышкой наведи на правую границу ячейки, курсор изменится и в этот момент кликни 2 раза. Ширина автоматом выравняется по самому широкому значению колонки.
Ответили: (42)
# Ответить
42. dj_serega (файл скачал) 18.03.2015 19:36
(38) akor77, Запрос первой строки дерева: "Выбрать Поле1 Поместить втПервыйЗапрос Из Справочник.ТМЦ КАК ТМЦ".
Добавляем подчиненную строку.
В ней пишем: "Выбрать * из втПервыйЗапрос КАК втПервыйЗапрос ГДЕ Поле1 = &Параметр1".
В результате должна получиться таблица из родителя строки но с условием.
Сейчас подчиненная строка не видит временные таблицы родителя. Ну или я не так выполнил запрос.
Если нужно могу со скринами объяснить.

(40) akor77, И про дерево не забыть ;)

(41) akor77,
там мышкой наведи на правую границу ячейки,

Да. Но если колонок 10 то нужно на каждую так делать. В принципе это не горит, и сильно не мешает. Предлагаю добавить в самый конец списка доработок ;)

Пожелалки/фичи:
1. Результат не выгружается в виде дерева
2. Нужно изменить логику проверки корректности текста запроса. Нужно проверять не всегда, а только по кнопке. Я очень часто редактирую текст запроса в ручную. Обычно выполняется лишняя проверка при ctrl+v. Также при удалении части текста запроса.
3. Не забыть решить проблемку сохранением дерева запросов и их параметров.
4. После нажатия "Вывод текста запроса" получаю ошибку: "Задано неправильное имя атрибута стркутуры".
Ответили: (43)
# Ответить
43. akor77 18.03.2015 20:04
(42) dj_serega, На счёт "Сейчас подчиненная строка не видит временные таблицы родителя." - это будет реализовано в следующей сборке. Я это назвал "рваный запрос", может это как-то по другому называется, то подскажите.
Сегодня мне удалось протестировать консоль в режиме функции, т.е. вызов консоли из модуля объекта. В задании было необходимо посмотреть как формируются проводки в БП 3.0. Тест прошёл успешно. Там консоль собирает "рваные запросы" как сучки на одну ветку. И при выполнении ветки (рекурсивный обход) запросов будет один МВТ на всех.
База была на сервере SQL. Путь к обработке прописывал серверный. В общем, всё сработало. Сегодня ещё подправил критические ошибки. Завтра, если успею, опишу и выложу. С перепроверкой согласен - перемудрил, надо сделать её только на горячих клавишах. Исправлю.
Ответили: (46)
# Ответить
44. asved.ru (файл скачал) 19.03.2015 05:11
(39) akor77, проверку мне было бы удобнее по Ctrl+F5, как в SSMS (кстати, F5 на выполнить запрос - это оттуда же), но лично я этой функцией пользуюсь крайне редко.
# Ответить
45. ZloyProger (файл скачал) 19.03.2015 14:39
Отдельное спасибо за привычный интерфейс консоли запросов)
# Ответить
46. dj_serega (файл скачал) 19.03.2015 18:09
(43) akor77,
Сегодня ещё подправил критические ошибки. Завтра, если успею, опишу и выложу.
Не сильно спешите :) Главное что бы стабильные релизы доработок/исправлений ;) Я к тому что в спешке можно где-то что-то упустить.


Крит при удалении последней строки дерева запросов.

МодульФормы.УдалитьПараметрыЗапроса(ИДСтроки).
В коде:
СтрДЗ.Родитель.Строки.Удалить(СтрДЗ);

СтрДЗ.Родитель = Неопределено
# Ответить
47. nikbrik (файл скачал) 20.03.2015 09:22
Еще бы прикрутить сюда получение плана запроса как в консоли с ИТС под 8.3.5, было бы вообще шикарно.
Ответили: (50)
# Ответить
48. dj_serega (файл скачал) 20.03.2015 15:26
Некорректно отображается период с типом ДатаВремя
Ответили: (49)
# Ответить
49. akor77 20.03.2015 18:23
(48) dj_serega, понял, исправлю.
Ответили: (55)
# Ответить
50. akor77 20.03.2015 18:31
(47) nikbrik, честно говоря, я с этой штуковиной не работал, но с интересом изучу и постараюсь прикрутить.
# Ответить
51. TODD22 22.03.2015 09:32
А как у этой обработки дело с модальностью и асинхронностью?
Будет ли работать на самописных конфигурациях?
Ответили: (52)
# Ответить
52. akor77 22.03.2015 10:04
(51) TODD22, Дома тестил на УФ 8.2 и в интерфейсе Такси на самописных конфигурациях. На демке бухгалтерии УФ. На тестовых базах при отладке. Без разницы где работать. Модальность используется в УФ 8.2. Так же работает в условиях где модальные окна не поддерживаются. на счёт асинхронности особо не заморачивался. Продукт создан для разработчика, а не пользователя. С интерфейсом Такси я недавно столкнулся и не обращал внимание на этот момент. Возможно, вылезут ошибки при нарушении последовательности открытия диалоговых окон. Надо будет это отдельно потестить.
Ответили: (53)
# Ответить
53. TODD22 22.03.2015 13:19
(52) akor77,
на счёт асинхронности особо не заморачивался. Продукт создан для разработчика, а не пользователя.

Как мне кажется нужно заморочиться. Раз асинхронность это курс партии :)
Ответили: (54) (74)
# Ответить
54. akor77 22.03.2015 13:45
(53) TODD22, Хорошо, буду знать, обязательно изучу эту тему.
# Ответить
55. dj_serega (файл скачал) 23.03.2015 12:28
(49) akor77, Свисните, когда новый релиз будет. Очень понравилась консолька. Уже пользуюсь и, пока, закрываю глаза на баги.
Ответили: (58) (60)
# Ответить
56. pau74 (файл скачал) 23.03.2015 16:39
Спасибо за консоль.
Жаль не работает с английским синтаксисом запроса.
Ответили: (61) (160)
# Ответить
58. akor77 23.03.2015 18:46
(55) dj_serega, Релизы нумеруются. Какой период с типом "ДатаВремя" ты имел ввиду? Опиши пример.
Ответили: (68)
# Ответить
60. akor77 23.03.2015 19:00
(55) dj_serega, В следующем релизе добавлю навороты как раз, для тех, кто пишет руками.
# Ответить
61. akor77 23.03.2015 20:30
(56) pau74, Учту на будущее.
# Ответить
67. necropunk 24.03.2015 12:16
Начал использовать. Замечания пока мелкие, например, по Ctrl+/ не комментирует выделенный блок, надо мышкой в соответствующую кнопку тырцать, не очень удобно, а к хоткею привык уже...
+ 1 [ dj_serega; ]
# Ответить
68. dj_serega (файл скачал) 24.03.2015 12:25
(58) akor77,
Релизы нумеруются.

Тоесть у меня обработка, поэтому нужно скачать новую. Так как уже есть новый вариант. Хорошо. Спасибо.
Какой период с типом "ДатаВремя" ты имел ввиду? Опиши пример.
В параметрах запроса "&НачалоПериода", "&КонецПериода" или "&Период". Так вот в таблице параметров иногда проскакивает значение параметра с типом Дата и видом Дата а не ДатаВремя. Сейчас не могу повторить ошибку. Как только появится закриню.
(67) necropunk, Согласен. Но не писал об этом так как есть другие более важные замечания и пожелалки ;)

akor77 Спасибо большое за кнопулины по сворачиванию групп... Много удобностей и нововведений. ОЧЕНЬ круто!!! Продолжаю тестить новый релиз ;)

1. По кнопке "Сохранить файл запросов" ошибка:
{(3)}: Метод объекта не обнаружен (Показать)
ДиалогОткрытияФайла.Показать(Оповещение);

Аналогично и по "открыть файл запросов".
2. Если свернуть левую панель, потом свернуть текст запроса. Развернуть текст запроса. Текст запроса пустой. Если при пустом тексте запроса отобразить левую панель, текст появляется.
Ответили: (73)
# Ответить
69. necropunk 24.03.2015 15:42
"Зафиксировать" работает как-то специфически... Вообще, мелких интерфейсных багов хватает, но пока не систематично, будет что-нибудь еще доставать - напишу. Еще не нашел как сделать постобработку запроса. Как обработать ТЗ если она параметр запроса (О_о) - нашел, а чтобы просто таблицу результата обежать и что-нибудь страшное с ней сделать - нет, возможно, плохо искал...
Ответили: (72)
# Ответить
70. necropunk 24.03.2015 15:50
Вывод данных в форме дерева неплохо бы сделать тоже, для обходов по группировкам полезно бывает иногда...
# Ответить
71. necropunk 24.03.2015 16:28
Если с пустым деревом запросов вызвать меню открытия файла с запросами, а потом передумать - будет куча ошибок о несоответствии параметра:

{Форма.Форма.Форма(1334)}: Ошибка при вызове метода контекста (НайтиПоИдентификатору)
ТекущаяСтрока = ДеревоЗапросов.НайтиПоИдентификатору(Элементы.ДеревоЗапросов.ТекущаяСтрока);
по причине:
Несоответствие типов (параметр номер '1')
Ответили: (73)
# Ответить
72. akor77 24.03.2015 17:46
(69) necropunk, Надо установить флаг в самой правой колонке таблицы пакетов. Выполнить запрос, название пакета станет жирным шрифтом - это означает, что таблица выгружена. Кликаешь по колонке с названием и нажимаешь на просмотр (кнопка с лупой). Откроется форма для редактирования ТЗ. Под ТЗ есть текстовое поле "модуля" для кода. На командной панели есть кнопки, нажав на которые в "модуль" будет добавлен шаблон обхода в цикле. На счёт выгрузки деревьев, возьму на заметку. Со временем реализую.
# Ответить
73. akor77 24.03.2015 18:34
(68) dj_serega, (71) necropunk, Ребята, спасибо за подсказки и замечания. Сейчас выложил новый релиз 8.3.2.3. Описание обновлений смотрите в статье. В постскриптум статьи добавлены пожелания для описания ошибок. Не могу воспроизвести часть ошибок.
# Ответить
74. akor77 24.03.2015 18:46
(53) TODD22, Хорошо. А можно ссылку на толковую статейку?
# Ответить
75. dj_serega (файл скачал) 24.03.2015 19:05
А сложно допилить выводить состояния работы? Это конечно рюшечка, но... было бы красиво :)

Пример:
&НаКлиенте
Процедура ВыполнитьЗапрос(Команда)

Если Объект.ОшибкиВЗапросе Тогда
Сообщить("Исправьте текст запроса!");
Возврат;
КонецЕсли;

// Дописать вот такое
Состояние("Выполняется запрос.");
// Или так
Состояние("Выполняется запрос: " + ИмяЗапросаВДереве);
Ответили: (76)
# Ответить
76. akor77 24.03.2015 19:10
(75) dj_serega, Попробую реализовать.
# Ответить
77. dj_serega (файл скачал) 24.03.2015 19:15
Получилось повторить очистки текста запроса. Насколько я понял, нужно где-то хранить текст запроса при скрытой левой панели.
Последовательность действий на скринах (скрины пересортировались, поэтому смотреть на названия).

А к этой ошибке я так понял руки не дошли ;)
{(3)}: Метод объекта не обнаружен (Показать)
ДиалогОткрытияФайла.Показать(Оповещение);
Ответили: (78)

Прикрепленные файлы:

01.png
02.png
03.png
04.png
# Ответить
78. akor77 24.03.2015 19:23
(77) dj_serega, про очистку текста запроса я понял, у меня эта ошибка тоже выходит. На днях буду искать причину. А вот это
{(3)}: Метод объекта не обнаружен (Показать)
ДиалогОткрытияФайла.Показать(Оповещение);
не могу воспроизвести. Что там с настройкой модальности и синхронности вызовов. для меня это пока ещё тёмный лес, надо разбираться. У меня всё работает.
Ответили: (79)
# Ответить
79. dj_serega (файл скачал) 24.03.2015 21:51
(78) akor77, будет время подсоблю :) ошибку с диалогом проанализирую, поправлю и отпишусь.
Ответили: (80)
# Ответить
80. akor77 25.03.2015 03:53
(79) dj_serega, Я кажется уже догадался. Надо смотреть не на версию платформы (8.2 или 8.3), а на то - есть модальность или нет. В 8.2 всегда модальность, а в 8.3 зависит от соответствующей настройки. на неделе поправлю.
Ответили: (82)
# Ответить
81. ingmar (файл скачал) 25.03.2015 11:24
Можно добавить обработку изменения типа параметра запроса с типом ПланыВидовХарактеристик
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
....
ВывестиКоллекцию(Дерево, "ПланыВидовХарактеристик"       , "ПланВидовХарактеристик");
....
...Показать Скрыть
Ответили: (88)
# Ответить
82. dj_serega (файл скачал) 25.03.2015 14:20
(80) akor77, Вот в этой статье нашел следующий текст:
Следует обратить внимание, что объект ДиалогВыбораФайла не имеет метода Показать() в отличие от диалогов выбора цвета или шрифта, поскольку реализация этих диалогов существенно разная.
.
У нас еще используется модальность. Поэтому не вижу метода: "ДиалогОткрытияФайла.Показать()".
В 8.3 без модальности СП дал эти методы:
Выбрать (Choose)
Показать (Show)


Пожелалка:
1. Сделай, пожалуйста, переход к тексту пакета с таблицы "Временные таблицы". Аналогично как с результирующего табличного документа.
В принципе будет достаточно перейти на текст "поместить ..."
Ответили: (89) (90)
# Ответить
83. artbear (файл скачал) 25.03.2015 16:50
(0) Из описания совершенно непонятно, работает ли в 8.2 тонкий клиент? с какой версией 8.3 работает? 8.3.4 работает?
инфу о версии платформы желательно указать где-то в начале описания.
Жду ответа.
Ответили: (84) (89) (91)
# Ответить
84. dj_serega (файл скачал) 25.03.2015 17:03
(83) artbear, Я успешно пользуюсь на 8.3.5 (без режима совместимости с модальностью). На 8.2, говорят, работает.
Ответили: (89)
# Ответить
85. artbear (файл скачал) 25.03.2015 17:53
На 8.2 невозможно закрыть форму.
Сценарий - тонкий клиент 8.2, открываю форму обработки, ничего не делаю и тут же пытаюсь закрыть.
Выдается ошибка:
{Форма.Форма.Форма(90)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода
		Выполнить(КодВыполнения);
по причине:
{(3,26)}: Переменная не определена (Результат)
ПередЗакрытиемЗавершение(<<?>>Результат, Параметры);
...Показать Скрыть


и все. форму невозможно закрыть без перезагрузки 1С :(
Ответили: (86) (88) (91)
− 1 [ AlexO; ]
# Ответить
86. dj_serega (файл скачал) 25.03.2015 18:05
(85) artbear, Это разработчик немного налажал :(
|Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет);
			|ПередЗакрытиемЗавершение(Результат, Параметры);";

Вместо "Результат" должен быть "Ответ"

Себе замените, а он посмотрит и исправит.

В любом случае за такую консольку на это можно закрыть глаза ;)
Ответили: (88)
+ 1 [ h00k; ]
# Ответить
87. CheBurator 25.03.2015 19:13
Этих консолей на Исе - вагон и телега разных.
какую использовать - непонятно...
Ответили: (103)
# Ответить
88. akor77 25.03.2015 19:15
(81) ingmar, (85) artbear, (86) dj_serega, Замечания принял, исправлю.
# Ответить
89. akor77 25.03.2015 19:22
(83) artbear, (84) dj_serega, (82) dj_serega, На данный момент точно работает
8.2 толстый клиент - весь функционал,
8.2 тонкий клиент - весь функционал кроме конструктора запроса
8.3.5.1482 без модальности - весь функционал
# Ответить
90. akor77 25.03.2015 19:26
(82) dj_serega,
Следует обратить внимание, что объект ДиалогВыбораФайла не имеет метода Показать() в отличие от диалогов выбора цвета или шрифта, поскольку реализация этих диалогов существенно разная.
Похоже всё дело в старом релизе платформы, обнови платформу. У меня 8.3.5.1482, полёт нормальный, скорее всего предыдущая версия не поддерживает Показать() .
Ответили: (93)
# Ответить
91. akor77 25.03.2015 20:20
(83) artbear, (85) artbear, да, на 8.2 куча ошибок, правлю, в выходные выложу с исправлением очень многих ошибок.
# Ответить
93. dj_serega (файл скачал) 26.03.2015 11:39
(90) akor77,
Похоже всё дело в старом релизе платформы, обнови платформу. У меня 8.3.5.1482, полёт нормальный, скорее всего предыдущая версия не поддерживает Показать() .
.
Походу так и есть Дело в релизах.
Рабочая база 8.3.5.1248. Просто взять и обновить не получится.
Посмотрим что там будет в 8.3.6. (кстати опять перенесли дату релиза).
# Ответить
94. dj_serega (файл скачал) 26.03.2015 15:24
Удалось повторить проблему с датой в параметрах (01 - скрин параметров, 02 - скрин текста запроса).

Пожелалка:
1. В форме текста для модуля есть "ПеременнаяЗапроса". Там можно установить имя переменной. Всё круто! Но было бы неплохо изменить еще и результат.
Вместо:
РезультатЗапроса = ЗапросПроверка.Выполнить();

Реализовать:
РезультатЗапросаПроверка = ЗапросПроверка.Выполнить();


2. Сделайте, на досуге, замер производительности. Очень долго первый раз открывается обработка. Потом где-то лишнее (мне кажется) думает при активизации поля текста запроса.
Вот самая ресурсоемкая строка:
Обработка.КонсольЗапросовУФ.Форма.Форма.Форма 211 ПроверитьТекстЗапроса_ПолучитьПараметры_ОбновитьДанные(, Ложь, ); 1 0,749873 91,29

Я к чему. Может когда основные вопросы будут решены дойдут руки до оптимизации.
Ответили: (95) (97)

Прикрепленные файлы:

01.png
02.png
# Ответить
95. akor77 26.03.2015 19:32
(94) dj_serega, Хорошая идея с именем переменной, уже добавил. А по ошибкам работы ещё непочатый край. Я немного промахнулся, думал, что тестирую на платформе 8.2, а на самом деле на 8.3 Сегодня на работе "перехватывал" запрос где клиентская часть на терминальном сервере, а сервер базы данных на другом серваке. Необходимо при обращении к консои из кода указывать путь доступный с сервера приложения. Здесь всё нормально срабатывает и файл создаётся. Но открыть его невозможно. Я в окне диалога указываю путь видимый с клиентской машины, а надо указывать путь видимый с сервера приложения. В итоге в коде принудительно присвоил значение пути к файлу результата и всё открылось. В эти выходные буду работать над косяками.
Ответили: (97)
# Ответить
96. akor77 28.03.2015 09:16
Новая версия 8.3.2.5
Ответили: (99)
# Ответить
97. h00k (файл скачал) 28.03.2015 22:07
(94)dj_serega, (95)akor77
В форме текста для модуля есть "ПеременнаяЗапроса".

По форме текста запроса для модулей есть и у меня несколько замечаний. Раньше не озвучивал, так-как не хотел отвлекать, просто себе их реализовал.
1. если текст запроса пустой, то форма не открывается.
2. опциональная вставка куска кода проверки запроса.
3. избавился от конструкции "РезультатЗапроса = Запрос.Выполнить()" там где она избыточна.
4. добавил в таблицу "ВыводРезультатаЗапроса" колонку "Итератор" и соответственно изменил формирование конструкции "для каждого" добавив переменную "Итератор".

Единственный нюанс - весь текст формируется в привычной мне "венгерской" нотации.
Ответили: (98)
# Ответить
98. akor77 28.03.2015 23:04
(97) h00k, Посмотрел твой вариант, он лучше чем прежний. добавлю в следующую сборку.
# Ответить
99. h00k (файл скачал) 28.03.2015 23:26
(96) В версии 8.3.2.5 Ошибка в имени функции "ПолучитьФайл()", нельзя давать локальным функциям имена предопределенных, странно что у тебя синтаксис контроль такое пропустил.
заменил имя на "ПолучитьФайлНаСервере()".

минут через 15 отправлю тебе в лс ссылку на 8.3.2.5 с измененным блоком генерации текста для модуля переименованной функцией ПолучитьФайл() и встроенным шаблоном авторегистрации обработки. Посмотри, может что-то "прикрутишь" к консоли.
# Ответить
100. dj_serega (файл скачал) 30.03.2015 10:24
1.
в 8.3.2.6 появилась ошибка с выполнением запроса.
Меняю "ручками" запрос. Нажимаю F5 (выполнение запроса). Запрос выполнился без изменений. Нажимаю Проверить запрос. Проверка прошла успешно. Нажимаю Выполнить запрос. Запрос выполняется с учетом правок.
Получается что где-то текст запроса закешировался. И для обновления нужно выполнять проверку.

2.
Расширение файла запросов лучше изменить с txt. Допустим на sel.
Ответили: (105)
# Ответить
101. Glebis (файл скачал) 30.03.2015 15:55
Понимаю что может не к месту, но не могли бы вы, товарищи, добавить дополнительную форму для обычного приложения (неуправляемого интерфейса). Очень хочется мне использовать единую (одну) консоль для всех конфигураций.
Если хотите могу попытаться переделать консоль с отказом от модальных окон.
Ответили: (102) (106) (109)
# Ответить
102. dj_serega (файл скачал) 30.03.2015 16:12
(101) Glebis,
Если хотите могу попытаться переделать консоль с отказом от модальных окон.

Имхо, лучше это дело переложить на плечи Уважаемого текущего разработчика. У него тут всё схвачено + могут идеи появиться.
# Ответить
103. AlexO 30.03.2015 16:44
(87) CheBurator, это - не консоль в широком понимании, это - больше "сформируй ТЗ за 10 сек". А запросы там так, для галочки.
Ответили: (104) (107)
# Ответить
104. akor77 30.03.2015 18:14
(103) AlexO, Привет, дружище!

Кто мешает развитию?
- Подавляющая личность (ПЛ).
http://admintech.ru/articles/protivodeistvie-uluchsheniyam-na-predpriyatii
Такой человек в основном занимается тем, что распространяет плохие новости, делает критические или враждебные замечания, обесценивает и вообще оказывает подавление. Он никогда не передает никаких хороших новостей или одобрительных замечаний.
Подавляющие личности просто отравляют все вокруг себя и оказывают влияние на свое окружение.
Такие люди являются хорошо замаскировавшимися сумасшедшими.
Все кто находится в тесном контакте с ПЛ очень часто испытывают то спады, то подъёмы, один день может много дел переделать, а потом ничего не может ничего. Если вы заметили это в себе, то ищите ПЛ-а.

Вся подноготная о подавляющих личностях хорошо раскрыта в этой книге:

Книга "Сады и подъёмы", автор Рут Мишнулл.
http://www.klex.ru/79

Если вас подавляют в семье, дома или на работе, обязательно научитесь выявлять ПЛ-ов.

Кроме того, подавлению обучают:
1. Подавляющее влияние: как и на чем любят играть любители обманывать, пугать, подавлять...
http://www.nrpsy.ru/psy_podavlenie.html
2. Подавляющее влияние: Подавляющее влияние 2: подавление авторитетом...
http://www.nrpsy.ru/psy_podavlenie_avtoritet.html
3. Подавляющее влияние 2: интриги, подставы, шантаж...
http://www.nrpsy.ru/psy_podavlenie_intrigi.html
Ответили: (108)
# Ответить
105. akor77 30.03.2015 18:35
(100) dj_serega, принял.
# Ответить
106. akor77 30.03.2015 18:41
(101) Glebis, В планах есть намерение сделать подобную консоль для обычного приложения.
# Ответить
107. akor77 30.03.2015 18:53
(103) AlexO, Ты мне напоминаешь того ПЛа, которого показывают на 3.50 минуте.
https://youtu.be/k-52Be8EmqA
# Ответить
108. dj_serega (файл скачал) 30.03.2015 20:22
(104) akor77, Красавчик ;)
Ответили: (114)
# Ответить
109. h00k (файл скачал) 31.03.2015 14:28
(101)Glebis Для режима обычное приложение используйте инструменты разработчика. Все что вам когда-нибудь может понадобиться от консоли, tormozit скорее всего, уже реализовал.

А вот для управляемого режима лучшая реализация консоли у Александра.
Ответили: (110)
# Ответить
110. AlexO 31.03.2015 15:40
(109) h00k,
А вот для управляемого режима лучшая реализация консоли
так что в ней лучшего? За неимением и отсуствием возможности в УФ разработки нормального инструмента (вообще какого-либо, не только консоли) - идем в сторону "напихаем чего-нибудь, а там видно будет"?
# Ответить
111. Boneman (файл скачал) 31.03.2015 16:18
как бы сказать ))) ну неплохой такой инструмент получился.
Хорошая работа !
Ответили: (112) (114)
+ 3 [ h00k; artbear; dj_serega; ]
# Ответить
112. AlexO 31.03.2015 16:37
(111) Boneman,
ну неплохой такой инструмент получился.
Например, у меня есть своя библиотека - там в 100 раз больше подобного: ТЗ, ТП, ЭУ; в ОФ и УФ и т.д.
Вот у меня - неплохой инструмент?
Ответили: (113)
− 2 [ zenechka; artbear; ]
# Ответить
113. h00k (файл скачал) 31.03.2015 19:51
(112)AlexO
Вот у меня - неплохой инструмент?

Хотите меряться своим инструментом?! Создайте ветку, может и желающие подтянутся... А здесь мы обсуждаем конкретную публикацию.
Ответили: (114)
# Ответить
114. akor77 31.03.2015 20:29
(108) dj_serega, (111) Boneman, (113) h00k, Ребята, спасибо за поддержку!
Сегодня не успел отладить ещё одну фишку, надеюсь завтра успею.
А что касается нашего ПЛа - AlexO, то про таких есть весёлая песенка:
http://ololo.fm/search/%D0%9F%D0%BE%D1%8E%D1%89%D0%B8%D0%B5+%D0%A2%D1%80%­D1%83%D1%81%D1%8B/%D0%97%D0%B0%D0%BF%D0%B0%D0%B4%D0%BB%D0%BE­
Всем хорошего настроения!
+ 1 [ u_n_k_n_o_w_n; ]
− 1 [ AlexO; ]
# Ответить
115. AlexO 01.04.2015 00:24
artbear, уже минусы некому ставить?
# Ответить
116. mzelensky (файл скачал) 01.04.2015 10:22
Крутая штуковина. Однозначно респект, уважуха и котик!
Ответили: (117)
# Ответить
117. AlexO 01.04.2015 14:25
(116) mzelensky, просто семерошники не в курсе, чего действительно не хватает в восьмерке. А, тем более, в УФ ))
Я тоже семерошник, и, подчас, старая-старая семерка дает возможности, которые в восьмерке и не снились.
# Ответить
118. Taktic (файл скачал) 06.04.2015 16:11
Спасибо за обработку. Классная штука.

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

В идеале - вот если бы можно было получать данные из табличного документа (xls или mxl).
Ответили: (119)
# Ответить
119. akor77 06.04.2015 19:42
(118) Taktic, Спасибо за хороший отзыв. А на счёт пожелания, то может достаточно в 'форме редактирования ТЗ' получить текст запроса к этой ТЗ нажав на кнопку 'Создать текст запроса к ТЧ'? Или требуется вывод пустых ТЧ с колонками? Не совсем понял. Каким образом должен выглядеть результат?
# Ответить
120. Glebis (файл скачал) 15.04.2015 10:58
Пожелания:
1) У групп элементов "Дерево запросов", "Параметры", "Временные таблицы", "Текст запроса", "Результат" выставить свойства "Поведение" = "Свертываемая", "Отображение управления" = "Картинка", что бы можно было скрывать группы при необходимости. Я это уже сделал.
2) При добавлении нового запроса в дерево переносить (подключить обработчик ожидания) созданный подчинённый элемент на уровень выше. Это я тоже уже сделал, могу кодом поделиться.
3) При описании колонок параметра типа ТЗ: выбор типа колонки крайне не удобен. Хотелось бы видеть дерево значений типов. Пока не понял почему, но в моей самописной конфе не отображался один из справочников при выборе типа столбца. разберусь - отпишусь.
4) Вместо пособничества преступлению нарушению стандартов разработки в виде поддержки "рваных" запросов лучше сделать конвертацию текста запроса в объектную модель схемы запроса и обратно аля Дерево объектной модели схемы запроса. Вообщебы цены не было.
5) Лично для меня привычнее было бы видеть ошибки запроса не под текстом запроса, а справа в области сообщений.
6) Думаю лучше все-же куда-нибудь подоткнуть кнопку "изменить форму".
Ответили: (121)
# Ответить
121. dj_serega (файл скачал) 21.04.2015 18:27
(120) Glebis,
5) Лично для меня привычнее было бы видеть ошибки запроса не под текстом запроса, а справа в области сообщений.

у меня Такси. Поэтому привычней снизу видеть :)

upd: если сообщение выводится как сейчас, тогда можно на него нажать и в тексте запроса выделится строка с ошибкой. что есть Очень удобно. Так что переделывать не нужно, а если и переделать то опционально.
+ 1 [ h00k; ]
# Ответить
122. dj_serega (файл скачал) 19.05.2015 10:31
Привет привет. Продолжение стоит ожидать? :)
Ответили: (123)
# Ответить
123. h00k (файл скачал) 19.05.2015 10:48
(122) dj_serega, Ну, с одной стороны в консоли уже все необходимое есть, ну кроме плана запроса. А с другой, по субъективным ощущениям, необходимо провести оптимизацию интерфейса и скорости работы.
Сейчас за финансовый год отчитаемся, появится больше свободного времени и прикручу план запросов, а может и оптимизацией получится заняться.
Ответили: (124)
# Ответить
124. dj_serega (файл скачал) 19.05.2015 11:05
(123) h00k, Я бы начал с оптимизации :( А то уж больно долго иногда.
+ не получилось красиво с сверткой групп.

Не хочется себе допиливать промежуточный вариант, что бы потом играться с сравнением-объединением :)

то что точно оставляю пока это:
&НаКлиенте
Процедура РезультатВыбор(Элемент, Область, СтандартнаяОбработка)

	Если Область.Примечание.Текст = "" Тогда
		
		// SG, вставка 19/05/15 >>>
		// Сообщение об открытии элемента
		Если ЗначениеЗаполнено(Область.Расшифровка) Тогда
			Состояние("Выполняется открытие элемента.",, "" + Область.Расшифровка);
		КонецЕсли;
		// SG, вставка 19/05/15 <<<
		
		Возврат;
	КонецЕсли; 
...Показать Скрыть
Ответили: (128)
# Ответить
125. StepByStep (файл скачал) 19.05.2015 20:49
Автору с наилучшими пожеланиями мой плюс.
А также парочка предложений:
Ответили: (128)

Прикрепленные файлы:

КонсольЗапросовУФ_8.3.2.7_Предложения.txt
# Ответить
126. akor77 20.05.2015 17:51
Всем привет! За консоль возьмусь примерно в конце июня.
# Ответить
127. StepByStep (файл скачал) 26.05.2015 22:15
Версия обработки 8.3.2.7
Платформа 8.3.6.2014.
{Форма.ФормаТаблицаЗначений.Форма(251,9)}: Процедура или функция с указанным именем уже определена (ПолучитьФайл)
Решение:
Переименовать ПолучитьФайл(), например в ПолучитьФайл_() в этой стоке 251 и в строке 232 (Адрес = ПолучитьФайл_();).
# Ответить
128. akor77 01.06.2015 20:49
(124) dj_serega, (125) StepByStep, к концу месяца возьмусь за оптимизацию. Так же, готовлю новый функционал - 'дерево вложенных запросов' с возможностью перемещения вложенных запросов во временные таблицы и наоборот.
Ответили: (140)
+ 1 [ dj_serega; ]
# Ответить
129. skteks (файл скачал) 04.06.2015 17:31
При нажатии кнопки "Выполнить" вылезает след. ошибка (конфа стандартная УТ 11 (демо)):

Платформа: 1С:Предприятие 8.3 (8.3.6.1977)
Конфигурация: Управление торговлей, редакция 11.1 (11.1.10.138) (http://v8.1c.ru/trade/)
Copyright © ООО "1C", 2003-2015. Все права защищены
(http://www.1c.ru)
Режим: Файловый (без сжатия)
Приложение: Тонкий клиент
Локализация: Информационная база: русский (Россия), Сеанс: русский (Россия)
Вариант интерфейса: Версия 8.2

Ошибки:
--------------------------------------------------------------------------------
04.06.2015 17:29:00
Ошибка преобразования данных XDTO:
Запись значения свойства 'd':
форма: Элемент
имя: {http://v8.1c.ru/8.2/mngsrv/ws}d
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'РезультатЗапроса'
--------------------------------------------------------------------------------
04.06.2015 17:04:03
Ошибка загрузки документа.
по причине:
Ошибка подключения внешних метаданных
Внешние метаданные не могут быть прочитаны текущей версией программы
Ответили: (130)
# Ответить
130. dj_serega (файл скачал) 05.06.2015 15:35
1.
+ к ошибке (129). У меня более точные данные :)

{Обработка.КонсольЗапросовУФ.Форма.Форма.Форма(621)}: Ошибка при вызове метода контекста (ПроверитьТекстЗапроса_ПолучитьПараметры_ОбновитьДанные)
ПроверитьТекстЗапроса_ПолучитьПараметры_ОбновитьДанные();
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'v':
форма: Элемент
имя: {http://v8.1c.ru/8.2/uobjects}v
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства:
форма: Элемент
имя: {http://v8.1c.ru/8.2/data/spreadsheet}d
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'РезультатЗапроса'


еще детальней:
	Если СтруктураДанных = Неопределено Тогда
		пХранилище = ПолучитьИзВременногоХранилища(ЭтотОбъект.ПутьКХранилищу);
	Иначе
		пХранилище = СтруктураДанных;
	КонецЕсли;
	
	пТабПараметров = пХранилище.ТабПараметров;
...Показать Скрыть

В данном случае пХранилище = Неопределено. Возможно нужно какую-то проверку добавить.


2. Найдена еще одна ошибка:
Обработка.КонсольЗапросовУФ.МодульОбъекта Возможно ошибочное свойство: "ИспользуемоеИмяФайла"
Строка кода в модуле объекта:
	ФайлОбработки = Новый Файл(ЭтотОбъект.ИспользуемоеИмяФайла);
# Ответить
131. sommid (файл скачал) 11.06.2015 11:08
в запросах использую конструкции
ВЫБОР
			КОГДА &Склад = НЕОПРЕДЕЛЕНО
				ТОГДА ИСТИНА
			ИНАЧЕ Док.Склад В (&Склад)
		КОНЕЦ
...Показать Скрыть

Никак не удается задать параметру Склад значение Неопределено. Через кнопочку изменить тип выбираю Неопределено, но ,видимо, при выполнении запроса тип сбрасывается на пустую ссылку
# Ответить
132. sommid (файл скачал) 16.06.2015 11:35
а еще: так задумано, что нельзя скопировать значение из результирующего табличного документа пока не нажмешь "Редактирование таблицы"? это не очень удобно..
# Ответить
133. sommid (файл скачал) 08.07.2015 09:07
1. Если изменить текст запроса, то в параметрах остаются старые параметры, если их удаляешь и выполняешь запрос или нажимаешь проверить или открываешь конструктором и нажимаешь ок, то старые параметры восстанавливаются (
2. если удалить корневой запрос (т.е. в дереве запросов - ни одной строки), то падает 1С
Ответили: (134)
# Ответить
134. dj_serega (файл скачал) 09.07.2015 21:32
(133) sommid, Не замечал. Регулярно удаляю корень. 8.3.5.1248.
Ответили: (135) (136)
# Ответить
135. sommid (файл скачал) 10.07.2015 09:13
(134) хм, решил попробовать сейчас и отладчиком посмотреть, чтобы понять, где падает - так теперь не падает ничего ). А тогда два или три раза повторилось... если словлю, то напишу подробнее.
# Ответить
136. sommid (файл скачал) 10.07.2015 10:04
(134) вроде бы споймал. Делаю такую картинку в консоли: один запрос - делал к справочнику валют. Сначала был параметр &Ссылка (выполнил запрос), потом его в запросе изменил на &Валюта (выполнил запрос) -> получилось, что в таблице параметров первая строка с выключенным параметром &Ссылка и включенным параметром &Валюта.
Удаляю строку из списка запросов - текст запроса очищается, таблица с параметрами отображается как и ранее. Кликаю по табличному полю параметров - падает 1С.
Судя по коду - зацикливание: срабатывает обработчик ПараметрыТЗПриАктивизацииСтроки(), далее в ПолучитьограничениеТипаЭлементаНаСервере() доходит до строки
ТекПараметр = пХранилище.ТабПараметров.НайтиСтроки(Отбор)[0];
и сразу же оказывается в обработчике ПараметрыТЗПриАктивизацииСтроки().
Не знаю зависит ли это от данных, но пХранилище.ТабПараметров не содержит параметра "Валюта", по которому идет Отбор, т.е. пХранилище.ТабПараметров.НайтиСтроки(Отбор) - возвращает пустой массив.

У меня недавно была похожая ситуация с зацикливанием: при активизации строки вызывается серверная процедура, заполняет другую таблицу и после этого платформа еще раз вызывает обработчик при активизации строки. Нагуглил, что народ делал принудительно проверку в этом обработчике: текущая строка <> предыдущей текущей строке. Мне помогло.
Если ПредТекСтрока = Элементы.ПараметрыТЗ.ТекущаяСтрока Тогда
		Возврат;
	КонецЕсли;
	ПредТекСтрока = Элементы.ПараметрыТЗ.ТекущаяСтрока;

теперь законно ругается на индекс за границами массива, но хотя бы 1С не падает )
Ответили: (137) (138)
# Ответить
137. sommid (файл скачал) 10.07.2015 10:05
(136) 1С:Предприятие 8.3 (8.3.5.1383)
# Ответить
138. dj_serega (файл скачал) 10.07.2015 12:19
(136) sommid,
на индекс за границами массива

Я себе это поправил. Вот коды:
Модуль объекта:
Процедура ПолучитьПараметрыЗапроса(Знач ТекстДляРазбора, ИД, СтруктураДанных = Неопределено) Экспорт
	
...
....
....	
	// SG, вставка 05/06/15 >>>
	// пХранилище может быть неопределено
	Если	Не ЭтоАдресВременногоХранилища(пХранилище)
		И	Не ТипЗнч(пХранилище) = Тип("Структура") Тогда
		Возврат;
	КонецЕсли;
	// SG, вставка 05/06/15 <<<
...Показать Скрыть

Модуль форм:
	// SG, вставка 18/06/15 >>>
	Элементы.ВТВремяВыполнения.ТекстПодвала = ВТ.Итог("ВремяВыполнения");
	// SG, вставка 18/06/15 <<<
	
КонецПроцедуры // ВывестиРезультат()
...Показать Скрыть

&НаКлиенте
Процедура РезультатВыбор(Элемент, Область, СтандартнаяОбработка)

	Если Область.Примечание.Текст = "" Тогда
		
		// SG, вставка 19/05/15 >>>
		// Сообщение об открытии элемента
		Если ЗначениеЗаполнено(Область.Расшифровка) Тогда
			Состояние("Выполняется открытие элемента.",, "" + Область.Расшифровка);
		КонецЕсли;
		// SG, вставка 19/05/15 <<<
		
		Возврат;
	КонецЕсли; 
...Показать Скрыть

&НаСервере
Процедура ПриИзмененииФлагаВ_ВТСервер()
	
...
...
...

	// SG, вставка 05/06/15 >>>
	// пХранилище может быть неопределено
	Если	Не ЭтоАдресВременногоХранилища(пХранилище)
		И	Не ТипЗнч(пХранилище) = Тип("Структура") Тогда
		Возврат;
	КонецЕсли;
	// SG, вставка 05/06/15 <<<
...Показать Скрыть
# Ответить
139. klinval (файл скачал) 16.07.2015 13:17
Если удалить неиспользуемый параметр через Del, то он "возвращается" после изменения запроса. Удаление через кнопку работает корректно.
# Ответить
140. dj_serega (файл скачал) 23.07.2015 12:09
(128) akor77, Привет :)
# Ответить
141. sommid (файл скачал) 23.07.2015 16:25
если после выполнения запроса вручную (не конструктором) редактируешь запрос и используешь "ctrl+v" для вставки, то текст "съезжает" так, что редактируемая строка оказывается внизу видимой области, когда продолжаешь набор текста (например, нажишаешь пробел), то редактируемая строка возвращается в исходную позицию - такое дергание мешает, если можно, то поправьте
# Ответить
142. artms (файл скачал) 25.08.2015 16:33
Серверная ERP вылетает при нажатии в конструкторе "+" в таблице "База данных.документы". Нет времени локализовать ошибку.
# Ответить
143. dj_serega (файл скачал) 27.08.2015 10:59
Поставили 8.3.6.2237. Теперь консолька ЛЕТАЕТ. Отладка запускается за несколько секунд. Никаких тормозов при открытии консольки. Теперь и оптимизировать нечего =))))
# Ответить
144. tristarr1 (файл скачал) 06.09.2015 21:07
А как насчет использования в качестве параметра произвольного кода?
Ответили: (145)
# Ответить
145. akor77 07.09.2015 04:58
(144) tristarr1, Пока об этом не думал, а на сколько это необходимо?
Ответили: (146)
# Ответить
146. tristarr1 (файл скачал) 07.09.2015 08:29
(145) akor77, У всех по разному) Просто столкнулся на днях что в качестве параметра устанавливается иерархическая выборка по справочнику с некоторым отбором и каким-то условием в обходе выборки и было лень вникать и переделывать это в таблицу или в запрос. Решил что проще будет сделать вычисляемый параметр и сделал, на базе вашей консоли.
И еще вопрос. У вас вывод производится в цикле. Я конечно не занимался замерами производительности но такое ощущение что СКД выводит быстрее чем, выборка в цикле. Посему посетила идея. А что если по итогам выборки создавать СКД с полями и помещать в нее в качестве объекта выборки полученную таблицу. Понятно что решение не оптимальное так как надо будет еще раз обращаться к таблице средствами СКД, но вдруг в этом есть смысл?
Ответили: (147) (149) (151) (155)
# Ответить
147. dj_serega (файл скачал) 07.09.2015 10:01
(146) tristarr1, тут сразу увидел возможную сложность. Если нужно вывести в ТабДок несколько ВТ то не получится. Только если нужен итоговая таблица.
Ответили: (148)
# Ответить
148. tristarr1 (файл скачал) 07.09.2015 13:00
(147) dj_serega, Почему же не получится? выполнить несколько компоновок и присоединить табличные документы. Правда непонятно что будет с форматированием...
# Ответить
149. akor77 07.09.2015 17:51
(146) tristarr1, Привет, что касается СКД, действительно, слетит форматирование. А что касается вычисляемого параметра, кидай мне свой вариант консоли, я гляну. Если это легко реализовать и это отлажено, то почему бы и нет.
Ответили: (150)
# Ответить
150. tristarr1 (файл скачал) 08.09.2015 08:54
(149) akor77, отправил в личку.
Ответили: (153)
# Ответить
151. dj_serega (файл скачал) 08.09.2015 15:50
(146) tristarr1, Если я правильно понял то это можно будет в параметр ТЗ подставить свою выборку из (к примеру) тч документа?
Ответили: (152)
# Ответить
152. tristarr1 (файл скачал) 08.09.2015 16:38
(151) dj_serega, в параметр можно будет подставить любое значение получаемое произвольным исполняемым кодом.
# Ответить
153. akor77 08.09.2015 21:14
(150) tristarr1, Добавил.
Ответили: (154) (155) (156)
# Ответить
154. tristarr1 (файл скачал) 09.09.2015 08:22
(153) akor77, Отлично!) Теперь и я причастен к "прекрасному") А что за скачивание каждый раз СМ снимают, или я чего-то не знаю?
Ответили: (155)
# Ответить
155. klinval (файл скачал) 09.09.2015 09:20
(154) tristarr1, Политика партии, однако. В офф описании нигде об этом ни слова, но тут (прямая ссылка на сообщение почему-то не работает, поэтому ссылка не тему, а в ней см. 375 сообщение) support пишет:
В течение 7 дней можно скачивать повторно. Сделано данное ограничение в целях борьбы с пиратами. Так как большинство обработок кто-нибудь скачивал, и считает, что ими надо поделиться без разрешения автора. Если автор хочет раздавать бесплатно, то для этого есть dropbox, yandex drive, mail disk, google drive, еще куча сервисов, которые предлагают раздавать файлы.

Тут кстати типичный пример когда это правило не совсем корректно: ты дал автору разработки готовый код, он его внедрил и чтобы тебе этим пользоваться надо ещё заплатить 1СМ (причём автору пойдёт 0,8, а инфостарту 0,2). Т.е. заплатил за то что сам же и придумал...
(146) tristarr1, (153) akor77, КРУТО! Вот такое развитие консоли не может не радовать))
Ответили: (157)
# Ответить
156. tristarr1 (файл скачал) 09.09.2015 11:08
(153) akor77, Скачал, потестил. Версия 8.3.2.9 тип значения параметра - граница. вид границы включая. Выполняю запрос, значение сбрасывается на пустую дату.
Ответили: (162)
# Ответить
157. akor77 09.09.2015 18:43
(155) klinval, исправлюсь
Ответили: (158)
# Ответить
158. klinval (файл скачал) 10.09.2015 09:28
(157) akor77, неправильно меня понял: ты тут ни при чём, это правила инфостарта такие... Какие могут к тебе претензии: ты сделал отличную консоль, берёшь за неё минимальную цену, постоянно её развиваешь!))
# Ответить
159. Glebis (файл скачал) 11.09.2015 15:44
предлагаю:
повторно 1) Сделать у групп элементов 2го уровня:
ГруппаДереваЗапросов
ГруппаПараметры
ВременныеТаблицы
Шапка
ГрупаРезультат
Свойства: Поведение = Свертываемое, Отображение управления = Картинка, Отображение = СлабоеВыделение, чтобы можно было сворачивать неиспользуемые группы на форме, вместо кнопок "свренуть/развернуть" текст запроса и результата.
2) В заголовке выводить путь до файла с текстом запроса, вместо номера версии обработки.

Скрин предложения прикрепил.
Ответили: (164)

Прикрепленные файлы:

Вариант.jpg
# Ответить
160. dj_serega (файл скачал) 11.09.2015 16:39
нашел "фичу".
{Обработка.КонсольЗапросовУФ.Форма.ФормаТаблицаЗначений.Форма(56)}: Поле объекта не обнаружено (А_20150910164353_втПродажиИтог)
лТаблица = СтруктураТЗ[ПараметрАдрес];

Можно повторить так:
Устанавливаем выгрузку ВТ в таблицу. Выполняем запрос. Выделяется полужирным текстом. Снимаем выгрузку. Выполняем запрос. Выделение остается. И при попытке открыть таблицу эта ругань.
Ответили: (162)
# Ответить
161. snikers44 (файл скачал) 15.09.2015 11:32
Вот на такую беду наткнулся:
{Форма.Форма.Форма(1112)}: Ошибка при вызове метода контекста (ВыполнитьЗапросСервер)
	ВыполнитьЗапросСервер();
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'v':
	форма: Элемент
	имя: {http://v8.1c.ru/8.2/uobjects}v
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства:
	форма: Элемент
	имя: {http://v8.1c.ru/8.2/data/spreadsheet}d
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'РезультатЗапроса'
...Показать Скрыть


Такое происходит при выполнении запроса с выборкой табличной части документа.
Ответили: (163)
# Ответить
162. akor77 15.09.2015 20:53
(156) tristarr1, (160) dj_serega, Исправил.
# Ответить
163. akor77 15.09.2015 20:56
(161) snikers44, а можно конкретный пример, у меня запросы к табличным частям нормально отрабатывают.
Ответили: (165)
# Ответить
164. akor77 15.09.2015 21:00
(159) Glebis, попытка была, тогда появились новые ошибки, тов такси одно не подходило, то в управляемой другое. И дерево нельзя без поля текста запроса сворачивать. Уже точно не помню на что тогда напоролся. Если есть рабочий вариант, то скинь мне, я посмотрю.
# Ответить
165. snikers44 (файл скачал) 16.09.2015 10:10
(163) akor77, доброго дня.
Еще раз скажу спасибо вам за проделанную работу =)
а по поводу ошибки:
пример запроса к документу некой конфы wiseadvice "Финансист" на платформе 1С:Предприятие 8.3 (8.3.6.2152) после которой крашится платформа (запрос составлен конструктором):
ВЫБРАТЬ
	удсЗаявкаНаРасходДС.РасшифровкаПлатежа.(
		Ссылка,
		СтатьяОборотов
	)
ИЗ
	Документ.удсЗаявкаНаРасходДС КАК удсЗаявкаНаРасходДС
ГДЕ
	удсЗаявкаНаРасходДС.Ссылка = &Ссылка
...Показать Скрыть


Такая жеж штука и на УПП. Данные о совместимости в картинке.
Ответили: (168) (171)

Прикрепленные файлы:

sovm.jpg
# Ответить
166. wokituk (файл скачал) 16.09.2015 11:20
Судя по описанию - ГЕНИАЛЬНО!

Не увидел в описании возможность загрузки значений параметров из файла.

Часто использую такой механизм: в отладчике в табло пишу "ЗначениеВФайл(<Имяфайла>,Запрос.Параметры)" (потом, если ЗначениеИзФайла(<Имяфайла>) - получается структура). И потом поднимаю набор значений параметров из этого файла (текст запроса отдельно в анализатор переношу). Такой механизм позволяет избежать муторного набора нужных значений параметров при отладке запроса.
Ответили: (169) (174)
+ 1 [ dj_serega; ]
# Ответить
167. wokituk (файл скачал) 16.09.2015 12:00
ВнешниеОбработки.Создать("C:\КонсольЗапросовУФ.epf", Ложь).ОбработатьВнешнийЗапрос(Запрос, "ИмяФайла");

Хотя это делает. Но тут придется сделать пару лишних телодвижений в случае сервера (типа прокидки обработки на сервер). Ну, наверное, и фиг с ним
Ответили: (170)
# Ответить
168. akor77 16.09.2015 17:49
(165) snikers44, Теперь понял. В ячейку табличного документа помещается значение с типом выборки запроса, а на клиенте этот тип не поддерживается. Подумаю как обыграть этот момент.
Ответили: (183)
# Ответить
169. akor77 16.09.2015 17:49
(166) wokituk, Хорошая идея, прикручу.
# Ответить
170. akor77 16.09.2015 17:50
(167) wokituk, ))) главное, чтобы путь был виден с сервера приложения.
# Ответить
171. dj_serega (файл скачал) 17.09.2015 16:43
(165) snikers44, Уже решено в текущем релизе 11. Очень красиво получилось ;)
# Ответить
172. DmitryKSL (файл скачал) 17.09.2015 18:12
Почему я не могу открыть свои старые запросы с расширением .sel ? Ругается - Загружаемый файл не является файлом дерева запросов!
Ответили: (173) (175)
# Ответить
173. akor77 17.09.2015 18:41
(172) DmitryKSL, Значит в другой консоли созданы эти файлы и формат другой.
# Ответить
174. akor77 17.09.2015 18:51
(166) wokituk, а что мешает использовать вот этот механизм:
ВнешниеОбработки.Создать("C:\КонсольЗапросовУФ.epf", Ложь).ОбработатьВнешнийЗапрос(Запрос, "ИмяФайла");
Там не только параметры, там даже текст запроса сразу захватит, т.е. запрос со всеми потрохами.
Ответили: (178)
# Ответить
175. dj_serega (файл скачал) 17.09.2015 19:28
(172) DmitryKSL, было такое. Я когда писал текст запроса (часто руками правлю) нажимал ctrl+s. Указывал файл и сохранял. В итоге сохранился текст запроса.

Но как уже ответили: эта консоль имеет свой формат файла настроек. Поэтому файлы из других консолей не прочитаются.
# Ответить
176. tiniji (файл скачал) 18.09.2015 05:31
В общем модуле строка 300
		ПрисутствиеВТ = Найти(ВРег(ТекстПакета), "ПОМЕСТИТЬ");
		Если ПрисутствиеВТ > 0 Тогда
		    Оператор_Поместить_INTO = СтрДлина("ПОМЕСТИТЬ");
		КонецЕсли; 
		
		Если ПрисутствиеВТ = 0 Тогда
			ПрисутствиеВТ = Найти(ВРег(ТекстПакета), "INTO");
		КонецЕсли; 
		Если ПрисутствиеВТ > 0 Тогда
		    Оператор_Поместить_INTO = СтрДлина("INTO");
		КонецЕсли; 

		ИмяВТ = "";

		Если ПрисутствиеВТ <> 0 Тогда // "ПОМЕСТИТЬ" найдено.
			СлСимвол = ПрисутствиеВТ + СтрДлина(Оператор_Поместить_INTO);
...Показать Скрыть

Заменить на
ПрисутствиеВТ = Найти(ВРег(ТекстПакета), "ПОМЕСТИТЬ");
		Если ПрисутствиеВТ > 0 Тогда
		    Оператор_Поместить_INTO = СтрДлина("ПОМЕСТИТЬ");
		КонецЕсли; 
		
		Если ПрисутствиеВТ = 0 Тогда
			ПрисутствиеВТ = Найти(ВРег(ТекстПакета), "INTO");
			Если ПрисутствиеВТ > 0 Тогда
			    Оператор_Поместить_INTO = СтрДлина("INTO");
			КонецЕсли; 
		КонецЕсли; 

		ИмяВТ = "";

		Если ПрисутствиеВТ <> 0 Тогда // "ПОМЕСТИТЬ" найдено.
			СлСимвол = ПрисутствиеВТ + Оператор_Поместить_INTO;
...Показать Скрыть
Ответили: (177)
# Ответить
177. akor77 18.09.2015 06:17
(176) tiniji, Привет! Да, недоглядел. Файл исправил и перезалил. По задумке должно быть так:
		
		ПрисутствиеВТ = Найти(ВРег(ТекстПакета), "ПОМЕСТИТЬ");
		Если ПрисутствиеВТ > 0 Тогда
		    Оператор_Поместить_INTO = "ПОМЕСТИТЬ";
		КонецЕсли; 
		
		Если ПрисутствиеВТ = 0 Тогда
			ПрисутствиеВТ = Найти(ВРег(ТекстПакета), "INTO");
			Если ПрисутствиеВТ > 0 Тогда
			    Оператор_Поместить_INTO = "INTO";
			КонецЕсли; 
		КонецЕсли; 

		ИмяВТ = "";

		Если ПрисутствиеВТ <> 0 Тогда // "ПОМЕСТИТЬ" найдено.
			СлСимвол = ПрисутствиеВТ + СтрДлина(Оператор_Поместить_INTO);
...Показать Скрыть

И твой и мой варианты исправления рабочие.
# Ответить
178. klinval (файл скачал) 18.09.2015 09:39
(174) akor77, правильно я понял: можно находясь в отладке выгрузить весь запрос с параметрами в файл?
И ещё: а временные таблицы выгрузятся (например в виде ТЗ)?
Ответили: (179)
# Ответить
179. akor77 18.09.2015 18:36
(178) klinval, Пример захвата смотри в описании версии 8.3.2.1
Захватывается текст запроса и все параметры.
Содержимое временных таблиц и результирующих пакетов не захватывается.
+ 1 [ klinval; ]
# Ответить
180. dj_serega (файл скачал) 21.09.2015 22:22
А можно пример что бы работала на встроенную обработку? (я о захвате запроса с конфигуратора).
Ответили: (181)
# Ответить
181. akor77 21.09.2015 22:27
(180) dj_serega, "Встроенную обработку" - это из справочника внешних обработок? Если да, то консоль не рассчитана на это.
Пример захвата смотри в описании версии 8.3.2.1
Ответили: (182)
# Ответить
182. dj_serega (файл скачал) 21.09.2015 22:45
(181) akor77, Спасибо. Пример я посмотрел. Я думал можно реализовать встроив не во внешние обработки, а в конфу.
# Ответить
183. snikers44 (файл скачал) 22.09.2015 09:24
(168) akor77, Спасибо вам еще раз за проделанную работу.
Ответили: (191)
# Ответить
184. Key-Zed (файл скачал) 22.09.2015 15:08
Есть предложение. Для получения ТЗ или Списка значений в качестве параметра добавить возможность использовать выгруженную таблицу значений.
Ответили: (185) (196)
+ 1 [ dj_serega; ]
# Ответить
185. dj_serega (файл скачал) 22.09.2015 15:40
(184) Key-Zed, Выгруженную из другого запроса?
Ответили: (188)
# Ответить
186. Key-Zed (файл скачал) 22.09.2015 16:22
Ошибка модуля объекта строка 49
Было
Параметр = Неопределено;
Выполнить(Элемент.Значение);
Запрос.УстановитьПараметр(Элемент.Название,Параметр);

Стало
Параметр = Неопределено;
Если Тип("Строка")=ТипЗнч(Элемент.Значение) Тогда
Выполнить(Элемент.Значение);
Запрос.УстановитьПараметр(Элемент.Название,Параметр);
Иначе
Запрос.УстановитьПараметр(Элемент.Название,Элемент.Значение);
КонецЕсли;
Ответили: (190) (192)
# Ответить
187. Key-Zed (файл скачал) 22.09.2015 16:33
Еще строка 86

Было
Запрос.Текст = СтрокаПакета.ТекстПакета;

Начало = ТекущаяУниверсальнаяДатаВМиллисекундах();
РезультатЗапроса = Запрос.Выполнить();
Конец = ТекущаяУниверсальнаяДатаВМиллисекундах();
Стало

Запрос.Текст = СтрокаПакета.ТекстПакета;

Начало = ТекущаяУниверсальнаяДатаВМиллисекундах();
Если Запрос.МенеджерВременныхТаблиц=Неопределено Тогда
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
КонецЕсли;
РезультатЗапроса = Запрос.Выполнить();
Конец = ТекущаяУниверсальнаяДатаВМиллисекундах();
Ответили: (189)
# Ответить
188. Key-Zed (файл скачал) 22.09.2015 16:47
(185) dj_serega, Уже нашел.
# Ответить
189. akor77 22.09.2015 17:13
(187) Key-Zed, Зачем? Ведь есть строки 30-34:
	Если МВТ = Неопределено Тогда
		Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	Иначе
		Запрос.МенеджерВременныхТаблиц = МВТ;
	КонецЕсли;
...Показать Скрыть
Ответили: (193)
# Ответить
190. akor77 22.09.2015 17:17
(186) Key-Zed, а это в какой версии консоли? Что за запрос, что за действия были сделаны? Мне не удалось воссоздать ошибку в этом месте.
# Ответить
191. akor77 22.09.2015 17:17
(183) snikers44, Пожалуйста!
# Ответить
192. akor77 22.09.2015 17:22
(186) Key-Zed, там в принципе нельзя допускать нестроковое значение. и если туда попала "не строка", тогда должна быть вызвана ошибка. Так и должно быть.
Ответили: (194)
# Ответить
193. Key-Zed (файл скачал) 22.09.2015 18:48
(189) akor77, Это происходит когда в качестве параметра передаешь тз и помещаешь ее в пакет а потом пакет соединяешь с другой таблицей. А когда идет перебор пакетов в цикле возникает ошибка МенеджераВременныхТаблиц
Ответили: (195)
# Ответить
194. Key-Zed (файл скачал) 22.09.2015 18:50
(192) akor77, Когда в качестве параметра выбрана ТЗ и загружена из файла.
# Ответить
195. akor77 22.09.2015 19:09
(193) Key-Zed, Проверил, Создал запрос к справочнику Ссылка", "Код", "Наимкнование". Выгрузил с помощью встроенного редактора "Работа с таблицей значений" в файл, там же воспользовался функцией создания запроса к этой таблице нажав на кнопку "Создать текст запроса к ТЧ".
Создаю новую ветку запроса, вставляю туда текст запроса, в списке параметров появляется строка параметра,нажимаю кнопку выбора, открывается редактор ТЗ и там загружаю выгруженную ТЗ. Проверяю запрос, выполняю, всё ОК.
Таблицу значений из параметра можно поместить только во временную таблицу и только потом можно объединять временную таблицу с другими, кроме того у таблицы значений (в параметре) обязательно должны быть указаны типы значений полей!
Потом вызываю конструктор и объединяю временную таблицу (куда выгружена ТЗ из параметра) с другой таблицей и всё работает!
Ответили: (197)
# Ответить
196. akor77 22.09.2015 19:25
(184) Key-Zed, ну, ты уже сам разобрался, что можно выгрузить таблицу в файл и потом её загрузить в параметр запроса.
Получилось?
# Ответить
197. Key-Zed (файл скачал) 22.09.2015 21:22
(195) akor77,

Текст запроса примерно такой

ВЫБРАТЬ
	СписокКонтрагентов.Контрагент
ПОМЕСТИТЬ ТЗ
ИЗ
	&СписокКонтрагентов КАК СписокКонтрагентов
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ТЗ.Контрагент,
	Контрагенты.Наименование,
	Контрагенты.Код,
	Контрагенты.ИНН,
	Контрагенты.КПП
ИЗ
	ТЗ КАК ТЗ
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
		ПО ТЗ.Контрагент = Контрагенты.Ссылка
...Показать Скрыть


в качестве источника тз передавал вычисляемый параметр= Таблица значений с колонкой контрагент или готовую тз из файла точно не помню
Ответили: (198) (199) (200)
# Ответить
198. akor77 22.09.2015 21:28
(197) Key-Zed, если ты передавал таблицу значений в параметр как результат вычисления, то ты уверен, что колонкам этой ТЗ задан тип? Если тип не задан, то и обычный запрос не отработает.
Какой текст кода генерировал ТЗ для вычисляемого параметра? Покажи.
# Ответить
199. akor77 22.09.2015 21:32
(197) Key-Zed, Если выгружал выгрузку из запроса через встроенный редактор ТЗ, то ошибок быть не должно, т.к. там автоматически задан тип значения колонок.
# Ответить
200. akor77 22.09.2015 22:08
(197) Key-Zed, ты прав, если ты в качестве параметра использовал код для вычисления. Там сейчас нельзя использовать переменную "Запрос", т.к. в процедуре выполняющей этот код уже используется эта переменная.
Получается что-то вроде:
Запрос = Новый Запрос;
	Если МВТ = Неопределено Тогда
		Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	Иначе
		Запрос.МенеджерВременныхТаблиц = МВТ;
	КонецЕсли;
...
// И потом в параметре получаем:
Выполнить("Запрос = Новый Запрос;");
// Вот здесь и затирается "Запрос" и Менеджер временных таблиц затёрт...
...Показать Скрыть


Попробуй вместо "Запрос" использовать что-то вроде "Запрос1". В следующей версии я исключу подобную ошибку и добавлю проверку на наличие уже занятых переменных в процедуре делающей вычисление.
Ответили: (201)
# Ответить
201. Key-Zed (файл скачал) 23.09.2015 07:27
(200) akor77, Да, верно, так и есть, но я глубже не стал кoпать, Зато ты теперь знаешь где ошибка.

Еще нашел ошибку
1.Выбираешь тип данных, обычный тип, составной тип (выбираешь типы)
2.Кнопка ок и вуаля ошибка {Форма.ФормаВыбораТипа.Форма(288)}: Ошибка при вызове конструктора (ОписаниеТипов).
И у тебя какой то глюк с таблицей параметров.
1.Выбираешь тип Дополнительный - ТЗ
2.Переходишь выражение параметра ставишь параметр, флаг тз не снимается в Дополнительных
Нажимаешь ок все в порядке
Снова заходишь
1.Выбираешь тип Дополнительный - ТЗ
Нажимаешь ок вроде все ок но
2. На форме нажимаешь F5 и отображение параметра становится вычисляемое хотя я выбрал ТЗ
Ответили: (203) (204) (206) (207)
# Ответить
202. Key-Zed (файл скачал) 23.09.2015 09:33
Еще невозможно присвоить значение параметру в таком примере
ВЫБРАТЬ
	Автомобили.Модель,
	&Статус как Статус
ИЗ
	Справочник.Автомобили КАК Автомобили
...Показать Скрыть
Ответили: (203) (205) (207)
# Ответить
203. akor77 23.09.2015 18:24
(201) Key-Zed, (202) Key-Zed, принял, буду разбираться.
# Ответить
204. akor77 23.09.2015 19:38
(201) Key-Zed, По первому вопросу:
1.Выбираешь тип данных, обычный тип, составной тип (выбираешь типы)
2.Кнопка ок и вуаля ошибка {Форма.ФормаВыбораТипа.Форма(288)}: Ошибка при вызове конструктора (ОписаниеТипов).

У меня такая ошибка не нолучилась.
Что касается:
На форме нажимаешь F5 и отображение параметра становится вычисляемое хотя я выбрал ТЗ

То надо задать значение параметру и поместить туда ТЗ. Просто смены типа недостаточно, по этому тип сбивается.
# Ответить
205. akor77 23.09.2015 19:40
(202) Key-Zed,
Еще невозможно присвоить значение параметру в таком примере
ВЫБРАТЬ
    Автомобили.Модель,
    &Статус как Статус
ИЗ
    Справочник.Автомобили КАК Автомобили
...Показать Скрыть



Какое значение и тип параметра было?
# Ответить
206. akor77 23.09.2015 19:49
(201) Key-Zed, но с тз, это всё равно ошибка, буду исправлять.
# Ответить
207. akor77 24.09.2015 19:49
(201) Key-Zed, (202) Key-Zed, исправил.
# Ответить
208. albov (файл скачал) 28.09.2015 21:32
При выводе результата запроса у которого таблица результата превышает 10К строк, консоль "тупит" более нескольких минут.
Ответили: (209)
# Ответить
209. akor77 28.09.2015 21:36
(208) albov, да, каждой ячейке формат подбирается, ширина, цвет.
# Ответить
210. Glebis (файл скачал) 30.09.2015 12:58
Вопросы по использованию:
1) Для чего (почему) позволяется редактировать наименование "ТаблицаЗначений_" поля "Значение" параметра. После редактирования сбрасываются все настройки и всё. По мне так лучше при активации строки ТЗ "Параметры" с типом параметра = ТЗ делать поле "Значение" только для чтения и показывать, например, количество столбцов.
2) Зачем обязательно отображать результаты деструктов временных таблиц? Точнее почему без их отображения не работает консоль?.
3) Почему бы не сделать настройку "выгружать результаты запросов в фоне", а не расставлять галочки "Выгружать" в ТЗ "Временные таблицы"? И какой смысл удалять из ТЗ "Временные таблицы" не выгруженные ТЗ?
4) Долго не мог понять назначение кнопки "Выполнить запросы ветки"? Напишите где-нить пожирнее, что ВТшки корневого запроса видны в подчиненных запросах.
5) Как подчиненный запрос сделать корневым? Хорошо бы добавить в контекстное меню строки ТЗ "Запросы" пункт "Переместить в" для смены владельца.
6) Сколько не пытался, так и не понял назначение кнопки "Открыть дерево запросов на сервере приложения". Кроме строк C: и А: больше ничего нет, да и в них не зайдешь.
Ответили: (212)
# Ответить
211. Glebis (файл скачал) 30.09.2015 14:00
Баги:
1) После попыток переноса текстов запросов по иерархии вылазит сообщение:
{Форма.Форма.Форма(2317)}: Значение не является значением объектного типа (ТабПараметров)
пТабПараметров = пХранилище.ТабПараметров;
Участок кода
пХранилище = ПолучитьИзВременногоХранилища(Объект.ПутьКХранилищу);
		пТабПараметров = пХранилище.ТабПараметров;

когда пТабПараметров = Неопределено, Объект.ПутьКХранилищу = "e1cib/tempstorage/циробуквы"
# Ответить
212. akor77 01.10.2015 20:46
(210) Glebis, Простите, а какую версию тестили?
# Ответить
213. dj_serega (файл скачал) 13.10.2015 15:51
Процесс усовершенствования еще движется? :)
Ответили: (214)
# Ответить
214. akor77 13.10.2015 19:30
(213) dj_serega, (213) dj_serega, Привет! Пока с новыми наворотами действия откладываются. Если есть ошибки, то сообщайте. В ближайшее время у меня будет очень мало времени.
# Ответить
215. o.nikolaev (файл скачал) 21.10.2015 00:06
Замечания:
- в интерфейсе не отображается имя файла запросов;
- файл запросов сохраняется с расширением txt;
- не раскрашивается текст запроса;
- вывод окна сообщения "Запрос выполнен" бесит, достаточно добавить информационную строку и в нее выводить;
- должна быть возможность отобразить и текст запроса и результат запроса на отдельных страницах закладках - это если текст запроса большой, или в возвращаемом наборе записей большое количество колонок.
# Ответить
216. dj_serega (файл скачал) 29.10.2015 12:04
В запросе есть тип ХранилищеЗначения. Так вот при просмотре ВТ ошибка.
При это в табдок выводится корректно.

з.ы.: на скрине "ФорматированныйДокумент" это имя поля с хранилищем.
Ответили: (219)

Прикрепленные файлы:

Снимок.PNG
# Ответить
217. sashocq (файл скачал) 15.01.2016 23:52
Перепробовал много консолей для УФ, но это — просто класс!
Правда, сразу наткнулся на пару странностей:
  • в поле результата не могу скопировать значение в буфер обмена, и вообще контекстное меню не выпадает
  • в том же поле результата не доступна сразу регулировка ширины колонок, нужно сначала включить редактирование таблицы
Хотя, может это всё фичи?
Ответили: (219)
# Ответить
218. sashocq (файл скачал) 16.01.2016 00:10
Поменял в коде "Защита = Истина" на "Редактирование = Ложь" и всё теперь ок.
Ответили: (219)
# Ответить
219. akor77 16.01.2016 10:58
(216) dj_serega, (217) sashocq, (218) sashocq,
Помню, когда делал консоль, то она была расчитана на УФ и на ТАКСИ. В разных интерфейсах табличный документ вёл себя по разному. В итоге получился подобный универсальный вариант. Допускаю, что я до конца что-то не продумал. Но теперь исправлю.
# Ответить
220. sashocq (файл скачал) 21.01.2016 11:01
И ещё прям маленький момент: значения всех пустых типов очень понятно отображаются. Кроме нуля. Ноль не отображается никак.
# Ответить
221. sashocq (файл скачал) 21.01.2016 11:20
Для ячеек с числом добавил формат "ЧН=" и всё ок
# Ответить
222. sashocq (файл скачал) 21.01.2016 14:10
И ещё не получается добавить новый запрос на первый уровень дерева запросов.
# Ответить
223. GoodWinSpr (файл скачал) 29.01.2016 11:26
Пожелания, окошки для дерева запросов, Параметров, временных таблиц, текста запроса и результата по хорошему сделать другого размера,

Левую часть уже 1к3,

дерево запросов 1к4, Параметры 2к4, временные таблицы 1к4

Текст запроса 1к3, результат 2к3

и ваще крутяк было бы сохранение если пользователь настроил ширину-высоту "под себя"

Спасибо за консоль, однозначно полезная и нужная вещь...
# Ответить
224. klinval (файл скачал) 04.02.2016 12:13
Заметил одну особенность: если в параметрах использовать кнопки "Переместить вверх..." и "Переместить вниз..." то после "Выполнить" порядок становится по-умолчанию. Т.е. другими словами перемещение параметров не запоминается.
Версия обработки: 8.3.2.16 | Платформа: 8.3.7.1845 | Конфа: БП 3.0.42.87 | Управляемые формы в закладках (не такси).

И спасибо за консоль! Я последнее время только ей пользуюсь.
# Ответить
225. masterkio (файл скачал) 04.04.2016 11:11
Жаль, что не открывается в конфигурациях, где стоит режим совместимости с платформой ниже 8.3.7
Ответили: (226)
# Ответить
226. h00k (файл скачал) 04.04.2016 11:32
(225) masterkio,
не открывается в конфигурациях, где стоит режим совместимости с платформой ниже 8.3.7

Это с какого перепугу то не открывается?! Вы темы с консолями случайно не перепутали?
+ 1 [ dj_serega; ]
# Ответить
227. q2w3e5 08.04.2016 17:00
о, классно, теперь можно изменять ширину колонок в результате.
отдельное спасибо за:
- поиск в результате по части строки, иногда надо рыться в больших объемах, а по ктрл-ф не очень то удобно
- выгрузку в результата в таблицу.
Ответили: (228)
# Ответить
228. dj_serega (файл скачал) 11.04.2016 10:47
(227) q2w3e5,
удобно
- выгрузку в результата в таблицу.

И последующей обработкой ТЗ
# Ответить
229. Dach (файл скачал) 12.04.2016 12:54
При открытии обработки возникает ошибка:



http://i79.fastpic.ru/big/2016/0412/75/8038ddde01c4b6b2ba539e5439a35275.jpg
Ответили: (230)
# Ответить
230. akor77 12.04.2016 14:36
(229) Dach, Да, уже исправил, сегодня вечером залью подправленный вариант. Сегодня мне такую же ошибку показал клиент. Это из-за того, что в конфигурации включена совместимость с одной из "несовместимых" версий.
Ответили: (231)
# Ответить
231. Dach (файл скачал) 12.04.2016 16:09
(230) akor77, выложить код фикса сюда, плз. Или пришлите ссылку на прямое скачивание в лс, если не затруднит
Ответили: (232)
# Ответить
232. akor77 12.04.2016 16:27
(231) Dach, Исправил, файл обновил.
# Ответить
233. yurii_host (файл скачал) 13.04.2016 00:29
Предложение по поводу "рваных запросов". Реально ли для данной консоли реализовать интерфейс объекта Запрос (т.е. его методы и свойства)?
Идея следующая:
0. У обработки добавляем свойства: ТекстЗапроса, Параметры и МенеджерВременныхТаблиц, и методы Выполнить(), ВыполнитьПакет() и УстановитьПараметр(), а также закрытую переменную мЗапрос
1. Из отладчика вызываем ВнешниеОбработки.Создать("").Подменить(Запрос). В результате объект Запрос подменяется на объект внешней обработки
2. Дальше код выполняется стандартно, дергая методы и свойства обработки, думая, что работает с запросом,
3. В тех участках кода, где встречается Запрос.Выполнить() или Запрос.ВыполнитьПакет() - пишем ветку в файл, выполняем запрос и возвращаем результат

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

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

Понимаю, что идея ближе к "космосу", чем к реальности, однако интересно узнать мнение автора на этот счет
Ответили: (234)
# Ответить
234. tormozit 13.04.2016 01:05
(233) Метод "Выполнить" нельзя объявить, т.к. его имя совпадает с оператором Выполнить.
Ответили: (235)
# Ответить
235. yurii_host (файл скачал) 13.04.2016 08:15
(234) tormozit, спасибо. Я упустил из виду эту мелкую деталь, которая делает невозможной описанную мной мысль. Вообще, я подумал, что можно было бы даже не усложнять текущую доработку, а сделать отдельную внешнюю обработку, которая являлась бы Декоратором для объекта запрос, и декоратор дергал бы в нужный момент эту консоль или какую-то другую.
Но метод "Выполнить()" никак не сделать методом обработки.
Я еще попробовал сделать декоратор средствами встроенных в винду библиотек, создав объект на javascript. Пробовал ком объекты "MSScriptControl.ScriptControl" и "htmlfile". Первый не видит функции javascript-объекта вообще, а второй видит объявленные функции, но эти функции почему-то отрабатывают только при наличии хотя бы одного входного параметра.
Писать свой ком объект не хочу, т.к. обычно не имею возможности что-то регистрировать на сервере
Ответили: (236)
# Ответить
236. akor77 13.04.2016 11:25
(235) yurii_host, привет! Идея очень интересная. Пока не думал, теперь буду иметь ввиду. Пока в этом направлении действовать не имею возможности, но буду обдумывать, где это можно применить, а там созреет понимание как лучше это сделать. Спасибо за идею! Идея отличная!
# Ответить
237. 7OH (файл скачал) 13.04.2016 11:55
А можете добавить кнопочку "Подсветка синтаксиса" ?
Не хватает.
# Ответить
238. 7OH (файл скачал) 13.04.2016 11:59
{Форма.ФормаГенерацииТекстаДляМодуля.Форма(463)}: Недостаточно фактических параметров
Возврат Об.СоздатьТекстПрисвоенияЗначенийПеременнымПараметров(Параметры.ПутьКХранилищу, Параметры.ИД);
---
там походу 3 параметра должно быть
Ответили: (239)
# Ответить
239. akor77 13.04.2016 13:05
(238) 7OH, да, действительно, допилил, обновил, скачивайте!
# Ответить
240. testik_vzv (файл скачал) 15.04.2016 09:41
Суперклассная обработка, спасибо!
Хотелось бы отметить пару моментов:
1. При выполнении запроса то происходит, то не происходит перерисовка элементов формы и сброс позиции горизонтального разделителя между текстом запроса и результатом.
2. Не хватает "Всех действий" формы, чтобы поиграться с настройками формы
3. Какая-то интересная задумка с поиском, но поле и кнопки почему-то очень маленькие - см. вложение
Ответили: (241)

Прикрепленные файлы:

2016-04-15_11-03-20.png
# Ответить
241. akor77 15.04.2016 10:45
(240) testik_vzv, Что касается п.1 и п.3, то попробуйте поменять версию платформы. Консоль универсальна для всех управляемых форм, по этому в каком-то сочетании настроек элементы отрабатывают криво. А п.2, если добавлять эту кнопку надо включить панель формы, это съест место.
# Ответить
242. lagunovartur (файл скачал) 03.05.2016 01:04
Неплохо было бы добавить возможность ТЗ из excel получить
Ответили: (243) (245)
# Ответить
243. akor77 04.05.2016 09:33
(242) lagunovartur, хорошо, подумаю.
# Ответить
244. Sergafan10 05.05.2016 11:36
У меня оказия. При закрытии консоли, после подтверждения выхода, платформу вышибает! Версия консоли 8.3.2.20, платформы 8.3.7.1949 (MS SQL), модальность и асинхронные вызовы используются.
# Ответить
245. necropunk 05.05.2016 13:20
(242) lagunovartur, да можно просто вкладку с табличным документом, там пишешь заголовки, копируешь туда из экселя данные, а потом это можно хоть в построитель как источник запихать. Делал себе такую штуку на скорую руку.
# Ответить
246. Alex13185 (файл скачал) 11.05.2016 12:22
Добрый день!
А уже скачавшим прошлые версии с ошибками, обновления можно получить без оплаты ? ))
Ответили: (247)
# Ответить
247. ProPharma (файл скачал) 31.05.2016 10:19
(246) Alex13185, 7 дней после первого скачивания бесплатно. на 8й снова -SM и +7дней халявы :)
# Ответить
248. Mouzz 24.06.2016 10:57
Скачал версию 8.3.2.16, консоль вылетала с ошибкой, скачал версию 8.3.2.20 и все равно та же ошибка. Подскажите как с ней бороться. Просто открываю консоль захожу в конструктор и когда пытаюсь из дерева что то выбрать вылетает такая ошибка. Очень неудобно работать потому что эта ошибка закрывает базу.

Прикрепленные файлы:

Ошибка консоли (1).jpg
# Ответить
249. ludika@mail.ru 27.06.2016 11:20
Не могу понять, как передать параметр на закладке "Список параметров".
Допустим, у меня параметр &Контрагент, (где Контрагент - список контрагентов).
Список этих контриков я хочу добавить программно,

В окне "Выражение параметров" пишу код
Контрагент = Новый СписокЗначений;
Контрагент.Добавить(Справочники.Контрагенты.НайтиПоКоду("123456"));
Контрагент.Добавить(Справочники.Контрагенты.НайтиПоКоду("987888"));


не работает. (
Как правильно написать?

P.S. Добавлять элементы справочника в окне добавления значений с Список значений не вариант.
Контрагентов слишком много
Ответили: (250)
# Ответить
250. a.terentev 28.06.2016 09:59
(249) ludika@mail.ru,
В параметр можно подставить любое значение получаемое произвольным исполняемым кодом. Значение присваивается пременной "Параметр".
http://s7.hostingkartinok.com/uploads/images/2015/09/1262b9e6108790bf93660468fe34fb99.png
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл






IE 2016