Открытие консоли запросов из режима отладки

18.11.13

Разработка - Инструментарий разработчика

Обработка позволяет из режима отладки (Конфигуратора) открыть консоль запросов в "1С:Предприятии", в которой будут установлены текст и параметры интересующего нас запроса.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ОткрывашкаКонсолиЗапросов.epf.7z
.7z 3,29Kb
55
55 Скачать (1 SM) Купить за 1 850 руб.

Эта обработка - это синтез идей из публикации "Открытие консоли запросов при отладке из кода (Обычное приложение)" и  статьи "Хитрости отладки".

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

Для решения этой задачи будем использовать самую обычную Консоль запросов (не-генномодифицированную, без двойного дна).

Описание решения (для любопытных; нелюбопытные могут пропустить этот раздел).

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

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

И наконец, последнее - это параметры запроса типа ТаблицаЗначений. Штатным образом в Консоли запросов нельзя задать таблицу значений в качестве значения параметра. Но в реальных запросах таблицы значений в качестве параметров пусть не часто, но всё-таки попадаются (например, Запрос.Текст = "ВЫБРАТЬ * ИЗ &ТЗ КАК ТЗ"). Решая данную задачу, я узнал, что означает загадочный флажок "В" в форме параметров запроса в Консоли запросов (до этого мне как-то особо не было до него дела). Оказывается, если установить этот флажок (на самом деле называется он "ЭтоВыражение"), то Консоль запросов в качестве значения параметра будет использовать результат вычисления выражения, заданного в "Значение параметра" (т.е. она возьмёт текст из "Значение параметра" и применит к нему функцию Вычислить(), а полученный результат будет использовать как значение параметра запроса). Вот так сервис! Ну что ж - тогда провернём ещё раз нашу махинацию с временными файлами. Все параметры запроса, которые имеют тип ТаблицаЗначений, с помощью обычного ЗначениеВФайл() будем сохранять во временные файлы, а в качестве значений таких параметров в Консоли запросов будем указывать "ЗначениеИзФайла(ИмяВременногоФайла)" и устанавливать это волшебный флажок "В".

Код модуля обработки

//////////////////////////////////////////////////
// Автор: q_i
// Лицензия: GPLv3
//////////////////////////////////////////////////

// Пример использования обработки для отладки запроса: 
// В режиме отладки вызываем диалог "Вычислить выражение..." (Shift+F9) и пишем выражение вида
// ВнешниеОбработки.Создать("(КаталогЭтойОбработки)\ОткрывашкаКонсолиЗапросов.epf").ОткрытьКонсольЗапросов(Запрос, "(КаталогКонсолиЗапросов)\КонсольЗапросов.epf", Истина)
//

// Функция открывает консоль запросов для отладки запроса.
//
Функция ОткрытьКонсольЗапросов(Запрос, ФайлКонсолиЗапросов = "", Модально = Истина) Экспорт

	Результат = Новый Структура("Успех, Сообщение", Ложь, "Неизвестная ошибка");
	
	ИмяФайлаКонсолиЗапросов = ФайлКонсолиЗапросов;
	Если ПустаяСтрока(ИмяФайлаКонсолиЗапросов) Тогда
		// по умолчанию считаем, что консоль запросов лежит в том же каталоге, что и эта обработка
		Файл = Новый Файл(ЭтотОбъект.ИспользуемоеИмяФайла);
	    ИмяФайлаКонсолиЗапросов = Файл.Путь + "КонсольЗапросов.epf";
	КонецЕсли;
	
	Попытка
		КонсольЗапросов = ВнешниеОбработки.Создать(ИмяФайлаКонсолиЗапросов);
	Исключение
		Результат.Успех		= Ложь;
		Результат.Сообщение	= "Не удалось создать обработку Консоль запросов: " + ОписаниеОшибки();
		Возврат Результат;
	КонецПопытки;	
	
	КомментарииКЗапросу = "";
	
	// скопируем параметры запроса в новую таблицу значений
	ФормаПараметров = КонсольЗапросов.ПолучитьФорму("ФормаПараметров");
	ТаблицаПараметров = ФормаПараметров.Параметры.СкопироватьКолонки();
	Для Каждого ТекПараметр Из Запрос.Параметры Цикл
		ТекИмя	= ТекПараметр.Ключ;
		ТекЗнач	= ТекПараметр.Значение;
		НоваяСтрока = ТаблицаПараметров.Добавить();
		НоваяСтрока.ИмяПараметра = ТекИмя;
		Если ТипЗнч(ТекЗнач) = Тип("Массив") Тогда
			// массивы преобразуем в списки значений
			СЗ = Новый СписокЗначений;
			СЗ.ЗагрузитьЗначения(ТекЗнач);
			ТекЗнач = СЗ;
		ИначеЕсли ТипЗнч(ТекЗнач) = Тип("ТаблицаЗначений") Тогда
			// таблицы значений сохраняем во временные файлы
			ИмяВремФайла = ПолучитьИмяВременногоФайла(".vt");
			ЗначениеВФайл(ИмяВремФайла, ТекЗнач);
			ТекЗнач = "ЗначениеИзФайла(""" + ИмяВремФайла + """)";
			НоваяСтрока.ЭтоВыражение = Истина;
			КомментарииКЗапросу = КомментарииКЗапросу + ?(ПустаяСтрока(КомментарииКЗапросу), "", Символы.ПС)
				+ "// ВНИМАНИЕ! Параметр """ + ТекИмя + """ имеет тип ТаблицаЗначений, поэтому сохранён в файл """ + ИмяВремФайла + """!";
		КонецЕсли; 
		НоваяСтрока.ЗначениеПараметра = ТекЗнач;
	КонецЦикла;	
	
	Форма = КонсольЗапросов.ПолучитьФорму("Форма");
	
	Если Модально Тогда
		ДеревоЗапросов = Форма.ДеревоЗапросов.Скопировать();
		ДеревоЗапросов.Строки.Очистить();
		// {{ повторяем действия из обработчика ПриОткрытии
		ДеревоЗапросов.Колонки.Добавить("ТекстЗапроса");
		ДеревоЗапросов.Колонки.Добавить("ПараметрыЗапроса");
		ДеревоЗапросов.Колонки.Добавить("СпособВыгрузки");
		// повторяем действия из обработчика ПриОткрытии }}
	Иначе	
		// открываем форму чтобы отработал обработчик ПриОткрытии
		Форма.Открыть();
		ДеревоЗапросов = Форма.ДеревоЗапросов;
	КонецЕсли; 	
	
	Если ДеревоЗапросов.Строки.Количество() > 0 
		И ДеревоЗапросов.Строки[0].Запрос = "Запросы" Тогда
	    СтрокаРодитель = ДеревоЗапросов.Строки[0];
	Иначе	
		СтрокаРодитель = ДеревоЗапросов;	
	КонецЕсли;
	ИмяЗапроса		= "Отладка " + ТекущаяДата();
	ТекстЗапроса	= Запрос.Текст;
	СтрокаЗапроса = СтрокаРодитель.Строки.Добавить();
	СтрокаЗапроса.Запрос			= ИмяЗапроса;
	СтрокаЗапроса.ТекстЗапроса		= ?(ПустаяСтрока(КомментарииКЗапросу), 
										ТекстЗапроса, 
										КомментарииКЗапросу + Символы.ПС + Символы.ПС + ТекстЗапроса);
	СтрокаЗапроса.ПараметрыЗапроса	= ТаблицаПараметров;
	СтрокаЗапроса.СпособВыгрузки	= 1; // список
	
	Если Модально Тогда
		// сохраняем сформированное ДеревоЗапросов во временный файл
		ИмяВремФайла = ПолучитьИмяВременногоФайла(".sel");
		ЗначениеВФайл(ИмяВремФайла, ДеревоЗапросов);
		Файл = Новый Файл(ИмяВремФайла);
		ИМЯЗНАЧ_ИМЯФАЙЛА	= "КонсольЗапросов_ИмяФайла";
		ИМЯЗНАЧ_ИМЯПУТИ		= "КонсольЗапросов_ИмяПути";
		ПредИмяФайла = ВосстановитьЗначение(ИМЯЗНАЧ_ИМЯФАЙЛА);
		ПредИмяПути	= ВосстановитьЗначение(ИМЯЗНАЧ_ИМЯПУТИ);
		БылиОшибки = Ложь;
		Попытка
			СохранитьЗначение(ИМЯЗНАЧ_ИМЯФАЙЛА, ИмяВремФайла);
			СохранитьЗначение(ИМЯЗНАЧ_ИМЯПУТИ,  Файл.Путь);
			// в обработчике ПриОткрытии консоль загрузит запросы из нашего файла
			Форма.ОткрытьМодально();
		Исключение
			Результат.Успех		= Ложь;
			Результат.Сообщение	= "Ошибка при модальном открытии формы Консоли запросов: " + ОписаниеОшибки();
			БылиОшибки = Истина;
		КонецПопытки;
		СохранитьЗначение(ИМЯЗНАЧ_ИМЯФАЙЛА, ПредИмяФайла);
		СохранитьЗначение(ИМЯЗНАЧ_ИМЯПУТИ,  ПредИмяПути);
		Если БылиОшибки Тогда
            Возврат Результат;
		КонецЕсли; 
	Иначе
		Форма.ЭлементыФормы.ДеревоЗапросов.ТекущаяСтрока = СтрокаЗапроса;	
	КонецЕсли; 

	Результат.Успех		= Истина;
	Результат.Сообщение	= "Консоль запросов открыта. Имя текущего запроса = " + ИмяЗапроса;
	Возврат Результат;
	
КонецФункции

Использование обработки

Обработка состоит всего из одной экспортной функции ОткрытьКонсольЗапросов(Запрос, ФайлКонсолиЗапросов = "", Модально = Истина).

Параметры этой функции:

  • Запрос - это объект Запрос, который нужно открыть в Консоли запросов.
  • ФайлКонсолиЗапросов - это полное имя файла Консоли запросов. Параметр необязательный. Если не указан, то обработка считает, что консоль запросов имеет имя "КонсольЗапросов.epf" и находится в том же каталоге, что и сама обработка.
  • Модально - указывает нужно ли открывать Консоль запросов в модальном режиме (Истина) или нет. Параметр также необязательный. По умолчанию - Истина (т.е. Консоль запросов открывается в модальном режиме).

 

Теперь о том, как использовать эту обработку.

В режиме отладки вызываем диалог "Вычислить выражение..." (Shift+F9), пишем выражение вида

  • ВнешниеОбработки.Создать("КаталогЭтойОбработки\ОткрывашкаКонсолиЗапросов.epf").ОткрытьКонсольЗапросов(Запрос, "КаталогКонсолиЗапросов\КонсольЗапросов.epf", Истина)

и нажимаем кнопку "Рассчитать". Если последний параметр Истина (или не задан), то Консоль запросов откроется в модальном режиме, и мы можем сразу перейти в "1С:Предприятие" и работать с открывшимся запросом. Если последний параметр Ложь, то Консоль запросов откроется в "1С:Предприятие" ПОСЛЕ того, как мы нажмём F5 ("Продолжить отладку").

В этом примере:

  • КаталогЭтойОбработки\ОткрывашкаКонсолиЗапросов.epf - это полное имя файла этой обработки.

Ещё примеры запуска:

  • ВнешниеОбработки.Создать("КаталогЭтойОбработки\ОткрывашкаКонсолиЗапросов.epf").ОткрытьКонсольЗапросов(Запрос) - откроет Консоль запросов, которая имеет имя "КонсольЗапросов.epf" и находится в каталоге "КаталогЭтойОбработки\".
  • ВнешниеОбработки.Создать("КаталогЭтойОбработки\ОткрывашкаКонсолиЗапросов.epf").ОткрытьКонсольЗапросов(Запрос,, Ложь) - то же самое, но Консоль запросов откроется в немодальном режиме.

 

Собственно и всё. Пожелания и замечания по делу приветствуются!

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    152481    836    397    

846

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    4333    27    14    

39

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

OneRPA - платформа роботизации рутинных операций, в основе которой лежит платформа 1С:Предприятие. Данная платформа позволяет использовать современные технологии роботизации, не теряя при этом наработки, которые были созданы в ходе автоматизации. При этом платформа роботизации сохраняет все преимущества платформы 1С: гибкость, кроссплатформенность, мобильный и Web доступ, простоту расширения. Ну и конечно же роботы создаются и сопровождаются простыми специалистами 1С, при этом не обязательно программистами. Self hosted версия

300000 руб.

03.03.2021    14247    12    27    

36

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    20708    59    43    

106

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    14141    36    7    

69

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    9407    34    10    

56

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

4800 3240 руб.

14.01.2013    185787    1127    0    

899

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    16812    6    30    

42
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. madonov 257 19.11.13 04:06 Сейчас в теме
Очень часто приходится разбирать сложные запросы. Приходится отлавливать отладчиком текст запроса, значения всех параметров, вручную вносить все в консоль...
Большое спасибо за обработку!
jaroslav.h; +1 Ответить
3. q_i 584 19.11.13 11:46 Сейчас в теме
(1) madonov, рад что обработка понравилась! пользуйтесь на здоровье! ))
jaroslav.h; +1 Ответить
2. Famza 85 19.11.13 11:45 Сейчас в теме
4. Evil Beaver 8197 19.11.13 17:24 Сейчас в теме
Все гениальное просто )
5. DrAku1a 1740 20.11.13 02:18 Сейчас в теме
Баян.
Уже давно реализовано как в ИР, так и в других обработках. У меня например: Отладчик запросов: Функция "Открыть из отладчика"
6. yuraos 1002 20.11.13 05:57 Сейчас в теме
(5) DrAku1a,
все мы боянисты, граф.
:)
ортодоксы считают, что на диске ИТС все давно есть
7. yuraos 1002 20.11.13 06:09 Сейчас в теме
(6)
Плюс за оригинальность идеи.
Я подобным образом при отладке открываю для просмотра "табличные объекты"
Подсистема ViewValues (просмотр "табличных" объектов).
12. students 20.11.13 08:28 Сейчас в теме
Давно уже все есть. зачем изобретать велосипед.
(7) Какая оригинальность? Человек просто не умеет пользоваться поиском.
14. q_i 584 20.11.13 11:11 Сейчас в теме
(5) DrAku1a, (10) yuraos, спасибо за ваши замечания.
Мне нужна была "открывашка" именно штатной 1с-вской консоли запросов, т.к. пользуюсь исключительно ею. Если вам удобнее пользоваться "прокачанными" консолями, то тогда, конечно, эта "открывашка" вам не нужна.
8. yuraos 1002 20.11.13 06:14 Сейчас в теме
Немного критики:
не сильно красиво
на лету формировать список запросов
сохранять его в файле,
прописывать имя файла в настройках пользователя под нужным именем,
чтобы консоль его открыла при открытии формы.
16. q_i 584 20.11.13 11:32 Сейчас в теме
(8) yuraos,
не сильно красиво
на лету формировать список запросов
сохранять его в файле,
прописывать имя файла в настройках пользователя под нужным именем,
чтобы консоль его открыла при открытии формы

Это вынужденный "костыль" для модального режима. В немодальном режиме консоль открывается несколько более "красиво": запрос с параметрами просто добавляется в существующее дерево запросов. Причём, если консолью при старте был открыт файл с запросами (.sel-файл), то новый запрос будет добавлен в дерево запросов этого файла с запросами.
9. yuraos 1002 20.11.13 06:19 Сейчас в теме
Можно сделать более изящно...подправив саму консоль

Предусмотрев например в модуле объекта обработки
экспортный метод формирующий новый список запроса
по объекту "Запрос"

и использовать подправленную консоль вместо "Открывашки"
10. yuraos 1002 20.11.13 06:25 Сейчас в теме
(9)
За основу разумно взять какую-нибудь из доработанных консолей запросов
которых довольно много на Инфостарте,
например мой скромный вариантик
Консоль запросов 1С + ADO
11. DrAku1a 1740 20.11.13 07:41 Сейчас в теме
(9) я описал именно это в (5)
13. sanek_gk 104 20.11.13 09:49 Сейчас в теме
Эта обработка полезна тем кто не умеет писать запросы ( или не знает что текст запроса смотрится через Запрос.текст а параметры Через Запрос.Параметры... Очень интересно если использовать её по назначению там где действительно сложно увидеть первоначальный Исходный полный запрос, например в процедуре расчета себестоимости где запрос собирается по 10 функциям или процедурами НО через менеджервременных таблиц данная обработка будет там полезна ? покажет что было в исходной ВТ из каких полей она состоит и каким запросом создавалась - чего то сомневаюсь. А вот там как раз было бы неплохо получить сразу всю картинку и не отлаживать хх минут собирая запросы кусками..
15. q_i 584 20.11.13 11:22 Сейчас в теме
(13) sanek_gk, если все запросы собираются в одну большую простыню, то эта обработка поможет. Если же формирование запроса перемежается периодическими вызовами Запрос.Выполнить() чтобы заполнить соответствующие временные таблицы, то нет. Дело в том, что в стандартную консоль запросов можно передать только текст запроса и параметры, но не сам объект Запрос. О том, существуют ли в природе консоли запросов, которые могут помочь решить задачу отладки запроса с менеджером временных таблиц, я думаю, могут подсказать DrAku1a, yuraos или students.
17. Pavean 20.11.13 21:18 Сейчас в теме
Работает только в обычном приложении?
19. q_i 584 21.11.13 11:31 Сейчас в теме
(17) Pavean, да, эта открывашка для обычной ("не-управляемой") консоли запросов.
18. Alex1Cnic 150 21.11.13 08:51 Сейчас в теме
Интересная вещица, над попробовать! плюс однозначно!
20. laduk 15 22.11.13 10:27 Сейчас в теме
Будет версия для "управляемой консоли ?
23. q_i 584 23.11.13 21:42 Сейчас в теме
(20)
Будет версия для "управляемой консоли ?

Пока такого в планах нет. Возможно, задумаюсь на этот счёт, когда перейду на управляемую консоль. Впрочем, есть надежда, что к тому времени кто-то другой сделает - тогда просто скачаю. )))
28. acces969 361 20.03.17 08:57 Сейчас в теме
(23)
Спасибо, респект тебе за обработку и исходный код. Почитал как ты тут ловко отвечаешь на нападки, здорово. Обработка мне очень помогла, смотрел "прокачанные" версии - все не то. У тебя то что нужно. Сразу схоронил и часто ею пользуюсь. У меня на работе важна оперативность, поэтому такие обработки, которые скидываешь по тиму к клиенту, запускаешь на его машине и сразу видишь ответ - самое то! В общем еще раз спасибо тебе, надеюсь мысль о том что помог еще одному человеку тебе будет приятна. А вот насчет управляемых форм - что там, думаешь пробовать сделать? В своем же стиле, простом и удобном? Всетаки 4 года прошло.
29. q_i 584 22.03.17 16:13 Сейчас в теме
(28) Добрый день!
Рад, что эта обработка Вам пригодилась и большое Вам спасибо за добрый отзыв!
Про управляемые формы пока не думаю, т.к. бОльшая часть моих клиентов всё ещё сидит на БП2.0/ЗУП2.5/УПП1.3. Как следствие - объём отладки запросов в упр.формах у меня сейчас минимальный (обхожусь обычным копированием текста запроса и ручным заполнением параметров; хотя ломка, конечно, присутствует). А вот когда клиенты начнут переходить на конфигурации с упр.формами, вот тогда, возможно, соберусь с силами и что-нибудь попробую написать. Хотя не теряю надежд, что это кто-то сделаем за меня. :) Может быть Вы возьмётесь? ;)
30. acces969 361 03.05.17 08:58 Сейчас в теме
(29) Если бы время было. Я приспособился - в свойствах конфигурации выставил режим "Управляемое приложение и обычное приложение", "разрешить использование обычных форм в управляемом приложении", запускаю отладку в режиме "толстый клиент - обычное приложение" (управлямая конфигурация при этом работатет в старом интерфейса, несмотря на все управляемое в коде), а дальше как обычно использую вашу обработку в отладчике и вызываю обычную консоль 8.2. Кстати, ее пришлось немного допилить под нужды производства, может быть и вам пригодится моя версия https://yadi.sk/d/pXg9GG5f3HaRT3
32. q_i 584 04.05.17 00:55 Сейчас в теме
(30) Да, со временем сейчас туго. )) Консоль посмотрю, спасибо!
31. tormozit 7220 03.05.17 09:18 Сейчас в теме
(23) "Автомобиль" уже давно можно брать с собой в виде "Портативные инструменты разработчика" https://www.youtube.com/watch?v=hiw_aYVOvFc
33. q_i 584 04.05.17 00:57 Сейчас в теме
(31) Сергей, если в жизни это работает так же круто, как выглядит на видео, то снимаю шляпу!
21. Сисой 88 22.11.13 12:59 Сейчас в теме
Мне для анализа в общем-то не нужно, т.к. я со времен FoxPro гораздо быстрее понимаю запрос в виде текста, чем в окне конструктора, но у этой обработки может быть довольно толковое применение: быстрое внесение изменений в имеющийся запрос, проверка результата и если получилось, копирование текста запроса через буфер в Конфигуратор.

Пожалуй, включу ее в свою конфигурацию в глобальный модуль.
Автору зачот.
cleaner_it; +1 Ответить
24. q_i 584 24.11.13 17:28 Сейчас в теме
(22) tormozit, да кто ж спорит - если есть возможность вкрутить в конфигурацию подсистему ИР, то, конечно, она предоставляет несравнимо более широкие возможности. Это как самокат и автомобиль. Автомобиль и быстрее ездит, и уровень комфорта на порядки выше, но если нужно полететь куда-то далеко на самолёте, то самокат с собой ещё можно взять, а вот автомобиль сильно вряд ли.
25. Gureev 27.11.13 14:32 Сейчас в теме
Есть же запросник умеющий это и еще многое
http://infostart.ru/public/72969/
26. Bassgood 1443 27.11.13 16:40 Сейчас в теме
(0) Да, действительно все уже давно реализовано во многих "прокачанных" консолях запросов и рекомендую пользоваться именно ими, а не допиливать что-то свое к старой консоли с ИТС, которая уже морально устарела
27. q_i 584 27.11.13 17:35 Сейчас в теме
(26) Zigfridish,
рекомендую пользоваться именно ими, а не допиливать что-то свое к старой консоли с ИТС
спасибо, я учту. я всегда учитываю рекомендации людей, которые лучше меня знают что мне нужно. ))
34. q_i 584 20.06.17 11:56 Сейчас в теме
Только что случайно обнаружил интересный эффект.
Если поставить точку останова на строке с "Запрос.Выполнить()", а в табло добавить то самое:
ВнешниеОбработки.Создать("КаталогЭтойОбработки\ОткрывашкаКонсолиЗапросов.epf").ОткрытьКонсольЗапросов(Запрос, "КаталогКонсолиЗапросов\КонсольЗапросов.epf", Истина)
,
то после остановки на точке останова, открывашка автоматически откроет консоль запросов в режиме "предприятия".
Думаю, в некоторых случаях это может быть удобно (например, при отладке запросов, текст которых генерируется программным кодом).
Оставьте свое сообщение