1с посмотреть временные таблицы запроса в отладчике
Временная таблица создается при выполнении запроса, если повторно выполнить запрос, то выдастся ошибка, что таблица уже существует.
Описания временных таблиц хранятся в свойстве запроса МенеджерВременныхТаблиц. К сожалению, в духе 1С, нельзя получить список временных таблиц, которые хранятся в запросе.
Пример, как можно выгрузить временную таблицу в таблицу значений, а заодно и как использовать менеджер временных таблиц:
Готовую таблицу значений из памяти можно выгружать в менеджер временных таблиц запроса. Единственное условие - колонки таблицы значений должны быть типизированными, т.е. иметь тип. Вот пример, демонстрирующий это (спасибо Чепелевич А.А., раньше я думал что это невозможно):
Вместо перечисления списка полей можно использовать "ВЫБРАТЬ *".
От zag2art
Если есть ТЗ, в каждой колонке которой значения всего одного типа, для типизации колонок, можно воспользоваться функцией:
[1с]
Процедура ТипизацияТЗ(ТЗ) Экспорт
РезультатТЗ = новый ТаблицаЗначений;
Для Каждого Колонка из ТЗ.Колонки Цикл
Имя = Колонка.Имя;
МассивТипов = новый Массив(1);
МассивТипов[0] = ТипЗнч(ТЗ[0][Имя]);
Описатель = новый ОписаниеТипов(МассивТипов);
РезультатТЗ.Колонки.Добавить(Имя, Описатель);
КонецЦикла;
Для каждого Строка из ТЗ Цикл
СтрокаРез = РезультатТЗ.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаРез, Строка);
КонецЦикла;
ТЗ = РезультатТЗ.Скопировать();
КонецПроцедуры
[/1с]
Функция для просмотра ВТ в отладчике
Вот как получить список всех ВТ, не знаю. Видимо никак.
Как удалить временную таблицу
Недостатки временных таблиц:</
1. Если в тексте запроса есть временная таблица, то этот запрос не разбирается конструктором запроса (это ограничение можно обойти нештатно, используя объявление подзапроса Книга знаний: v8: Конструирование сложных запросов для 1С). В релизе 8.1.11 можно использовать конструктор
2. Нельзя выполнить запрос над временной таблицей и поместить данные в нее же саму.
3. Нельзя получить список временных таблиц из менеджера временных таблиц.
Примечание: В последних версиях платформы больше 8.1.8 используется синтаксис "ПОМЕСТИТЬ" без предлога "В".
Конфигурации 1С становятся все сложнее часто используются временные таблицы. Данные можно получать непосредственно из отладки.
Для обычных форм вопрос решался через экспортную функцию в модуле консоли, которая получает данные и открывает форму консоли (подобный функционал есть во многих консолях запросов).
Ниже описан метод которой решает ту же проблему для управляемых форм:
В управляемых формах нельзя открыть форму в контексте сервера, но можно получить данные и сохранить я называю это отложенной отладкой.
Этот способ удобно реализован в Управляемой консоли отчетов она позволяет сохранять данные в файле или настройках (ХранилищеСистемныхНастроек).
Сохранение в настройках более удобно т.к. не нужно иметь папку которая доступна клиенту и серверу.
Вызов отладки правильнее получать из Консоль - Инструменты - Конструктор строки отладки
Используется экспортная функция: УКО_Запрос.СохранитьВНастройки(Запрос, ИмяНастройки = "Запрос (из отладки)") Возвращает "Сохранено успешно" - все хорошо, если произойдет ошибка вернет строку с текстом ошибки.
Есть аналогичная функция для сохранения в файл: УКО_Запрос.СохранитьВФайлНаСервере (Запрос, Путь, ИмяБезРасширения = "Запрос (из отладки)")
Пример
0. Используем конструктор строки отладки при необходимости
1. В конфигураторе ставим точку останова перед выполнением интересующего нас запроса
В табло вставляем УКО_Запрос.СохранитьВНастройки(Запрос)
2. Открываем консоль в последних открытых данных должна появится строка Запрос (из отладки).
3. Открываем данные и работаем
Специальные предложения
Чувствую подвох, но никак не пойму где.
1) "управляемая консоль отчетов 2.5.2" входит в состав демонстрационной конфигурации "управляемое приложение" ? если нет, то вот в упор не вижу кнопки "скачать".
Подобное решение используется в Консоль запросов для УФ универсальнаябыла мысль, что это продолжение статьи про консоль запросов по ссылке. но ведь в этой статье используется подобное решение.
опять таки, если это подобное решение, где ссылочка на текущее решение? (6) Здесь описана методика отладки запроса на УФ.
Управляемая консоль отчетов это продукт поставляется в основном в виде расширения, но есть и внешняя обработка. Реализация описана из УКО. Уберу "Подобное рещени. " чтобы не путать.
Подскажите, как я поняла, значения параметров не передаются?
Но в них вся соль, к тому же бывает что они - таблицы!
Может подскажите какой-нибудь вариант?
(11) Все хорошо. Из объекта запрос считываются параметры и временные таблицы (13) На этих скриншотах вижу что значения параметров не заполнены.Не так? (11) А мы сделали так, что в отладке в конфигураторе параметры запроса преобразовываем в строку, а в консоли запросов 2.0 читаем из строки и вуаля, все параметры в том же виде загружены )) Добрый день!
Помогите разобраться с консолью:
когда вставляю в табло
пишет значение -
Переменная не определена (УКО_Сервер)
и в меню файл Запрос (из отладки) не появляется
хотя вроде как расширение встало нормально и раздел новый появился "Упр. консоль отчетов"
Может я вызываю его из слишком специфичного места? Вызываю из обработки Модуль_ДиадокУФ, которая вставлена в конфигурацию, которая в свою очередь запускает модуль, который лежит в в виде внешней обработки на диске в указанной папке.
//Там сложные запросы в которых черт ногу сломит никак не могу разобраться.
(16) Из предоставленной информации: Возможно вы запускаете не на сервере.Необходимо поставить точку останова на Запрос.Выполнить() ну или когда уже все заполнено далее в табло вычисляемого выражении Shift+F9 вставить текст.
Текст можно получить через консоль - Инструменты - Конструктор строки отладки.
УКО_Сервер - серверный модуль. нужно вызывать в контексте сервера
(17)
да, по точке останова останавливаюсь на Запрос.Выполнить()
значит нахожусь на сервере.
через инструменты тоже не получается, видимо по той же причине: раз в табло написало мне "Переменная не определена (УКО_Сервер) "
значит вызов не прошел
Правильнее текст можно получить через консоль - Инструменты - Конструктор строки отладки
Статью поправлю
(19)Спасибо, что помогаете!
Оно продолжает ругаться, но теперь по новому:
Хотя бы "УКО_Запрос" видит
Используйте УКО_Запрос.СохранитьВНастройки
Проверьте конструктором отладки (инструмент в консоли) Правильнее текст можно получить через консоль - Инструменты - Конструктор строки отладки
Точно! Там написано совсем иначе:
УКО_Запрос.СохранитьВНастройки(Запрос)
Теперь еще по 3-му ругается:
Видимо ошибкаПопробуйте
В указанной строке 470 (УКО_Запрос)
" Если ЗначениеЗаполнено(Объект.МенеджерВременныхТаблиц) Тогда"
заменить на
" Если Объект.МенеджерВременныхТаблиц <> Неопределено Тогда" (23)Поменяла.
О_О
OMG Все получилось!
И параметры видно заполненные и результат запроса в консоле!
Сейчас умру от счастья! Извиняюсь что отвлекаю, может подскажите куда копать?
При попытке загрузки в консоль второго запроса, через Данные - Запрос (из отладки) получаю ошибку: А как дела с производительностью? Например, 10 временных таблиц, в каждой по 10 колонок и 10 тыс. строк. Сколько по времени будут сохраняться данные, и сколько будет запрос открываться в консоли? (27) Есть лимит (моя проверка) ячеек 500000 на одну ТЗ.
При больших объемах конечно будут проблемы. Не решал и не анализировал данный вопрос. Расширение добавил в ЗУП3, безопасный режим убрал галку. В конфигураторе видно расширение. В программе консоли нет ((, подскажите , что может быть не так (29) Посмотреть инструкцию по установке. Возможно не запускали обработку УКО_УстановкаРасширения. (30) Спасибо. Появилась консоль. В зупе3 при тестировании расшифровкки РСВ1 (база 5500 сотрудников) говорит, что превышен размер ВТ (31) Все другое отрабатывает отлично, будем активно использовать))) Вот пример когда работает без расширений и без лишних телодвижений - https://infostart.ru/public/617990/ .
Нажали кнопку "Сформировать скрипт выгрузки", вставили текст скрипта в отладчик, нажали "Загрузить данные запроса"
И все данные запроса загрузились, и текст и параметры и таблицы из менеджера.
Ну и бонусом, граф запроса отрисовался. (34) В консоли есть вариант в виде внешней обработки и работает также как вы привели.
Граф отрисовывается здорово, только есть множество других неудобных моментов проект не развивается очень давно.
Приложил файл сравнения функциональности (35)Не, ну каждый может под себя такую табличку подогнать. Всегда можно расставить баллы так, что ты красавчик, а остальные так себе). Если б это было какое то исследование независимой организацией, можно было бы такие таблички всерьез рассматривать.
По поводу - "много неудобных моментов", ну это очень субъективно. В комментариях особо жалоб я не вижу.
А по поводу того, что проект не развивается, неправда. Последнее обновление было полгода назад. Готовится новое очень серьезное обновление. То что это не быстро, так извините и проект не из самых простых. (36) оценка субъективная. Можете мне написать что вы считаете неправильным. Можем продолжить общение в личке. (37)Да дело не в том что я считаю неправильным, просто для одного один функционал важнее, для другого другой. Было бы интересно, если бы например инфостарт делал бы что то типа сравнительных обзоров по основным однотипным продуктам. А так это все очень предвзятая оценка.
Добрый день!
Идея из статьи получения запроса со всеми параметрами из отладчика очень порадовала. Помимо прочих плюшек, в виде параметров из кода на встроенном языке и пр.
Решил применить к отладке и просмотру запросов из ЗУП 3.1, которые используют представления, соответственно их текст просто так в консоль ручками не копируется.
Взял обычный отчет ЗУП 3, например, ОтчетыПоСотрудникам. Там запрос с представлениями - в СКД, как в общем-то в основном в остальных отчетах ЗУП 3.1. Заполнение представлений происходит в функции ЗаполнитьОбщиеИсточникиДанныхОтчета() общего модуля ЗарплатаКадрыОбщиеНаборыДанных.
Поставил точку останова в конце этой процедуры и попытался при отладке выполнить:
УКО_Запрос.СохранитьВНастройки(Объект.СхемаКомпоновкиДанных.НаборыДанных.Данные) - тип НаборДанныхЗапросСхемыКомпоновкиДанных
и
УКО_Запрос.СохранитьВНастройки(Объект.СхемаКомпоновкиДанных.НаборыДанных.Данные.Запрос) - Тип Строка (текст запроса)
получил ошибку:
"Неверный тип параметра, ожидаются типы Запрос, МакетКомпоновкиДанных, ДинамическийСписок, ПостроительЗапроса, ПостроительОтчета, "
Подскажите, как можно применить вашу функцию для сохранения Запроса из отладчика в случае, если этот запрос из СКД?
(40) тип НаборДанныхЗапросСхемы. не обрабатывается необходимо прописывать его обработку (там есть проблемы нет параметров)Посмотрите как там организовано получение данных из отладки там не сложно
(40) Добавите в новой версии консоли?
Можно еще кстати добавить и обработку параметра строка (текст запроса), просто для удобства переноса одного текста без параметров сразу в консоль. Можно конечно и в отладчике открыть текст, скопировать и перенести
(41) НаборДанныхЗапросСхемы извините пока другие планыТекст легко переносится через буфер обмена (42) НаборДанныхЗапросСхемы - жаль, а было бы очень полезно для использования в ЗУП 3.1
Идеально, если бы такая консоль существовала там в качестве штатной. при получении данных из отладки выходит ошибка
Поле объекта не обнаружено (Type)
как побороть? вроде делал по описанию, в отладке был текст Успешно сохранено (46) спасибо за быстрый ответ! эта ошибка ушла, буду смотреть дальше. еще ошибка вышла, при выполнении части запроса, конструктор Новый (тип) - выходит исключение если Тип - НеизвестныйОбъект
может что-то поменять в коде, чтобы обработался этот случай? (48) Попробуй исключить обработку этого типа написать что то типа
Если Тип = <НеизвестныйТип>
Продолжить (52) Рекомендую использовать расширение
там наверное какая то проблема с методом Создать внешней обработки
Разберусь отвечу детальнее
"вашу консоль только ради этой функции" поизучайте много полезных функций
"В итоге, разочарован." жаль, советую поизучать
(52) Подумал попробовал в чем могут быть проблемы
Проверьте корректно ли отрабатывает метод создать - он должен возвращать внешнию обработку
Когда все хорошо должно быть как на картинке
Все данные запроса сохраняются возможно там много данных и он не успевает сохранить
И еще момент если в транзакции происходит ошибка что вызывает * транзакции то данные не записываются т.к. сохранение в настройки это запись в базу. В этом случае нужно использовать сохранение в файл
Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Google maps, поиск оптимального маршрута 5
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; * Координаты начальной и коне База 1С при запуске уходит в дамп и вылетает 1
В последнее время частенько обращаются пользователи у которых после замены или ремонта компьютера 1С не запускается, а точнее при открытии уходит в dump и вылетает. Как правило, решение одно: Отключить аппаратное ускорение видеокарты В Window Внешние источники данных 0
Почему данная возможность вызывает такой интерес? Любой человек, который программировал в 1С при этом достаточно неплохо знаком с SQL и хотя бы в общих чертах знаком с архитектурой и принципами разработки других технологических платформ для бизнес пр Выгрузка из 1С на SFTP 4
Думаю, что все знают, как работает 1с с FTP сервером, но вот как работать с sFTP или FTPs сервером? Первое что Вам нужно сделать - это установить бесплатную программу WinSCP, скачать ее Вы сможете здесь, также там есть вся необходимая литература п Посмотреть все результаты поиска похожих
Еще в этой же категории
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Нарастающий итог в запросе 22
Необходимо использовать левое соединение таблицы с самой собой. ВЫБРАТЬ Обороты.Период, Обороты.Номенклатура, Обороты.Количество ПОМЕСТИТЬ ВТдвижения ИЗ РегистрНакопления.Обороты КАК Обороты ; //////////////////////////////////////////////// Полезные сведения о языке запросов 1С 8.х 22
В статье приведены полезные приемы при работе с запросами 1С v.8.2, а также сведения, которые не так хорошо известны о языке запросов. Я не стремлюсь дать полное описание языка запросов, а хочу остановиться лишь на некоторых моментах, которые для ко Оператор ПОДОБНО 18
ПОДОБНО - Оператор проверки строки на подобие шаблону. Аналог LIKE в SQL. Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если з Оператор ВЫРАЗИТЬ, аналог методов Лев, Прав, СокрЛП в Запросе? 10
Использовать конструкцию « ВЫРАЗИТЬ »: Запрос.Текст = " … |ГДЕ | (ВЫРАЗИТЬ(ЕдиницыХранения.Владелец.Наименование КАК СТРОКА(4))) Груз" ; Запрос.УстановитьПараметр(" Груз" ," Тонн" ); С целью приведения строк неограниченной длины к строкам Посмотреть все в категории Запросы
Google maps, поиск оптимального маршрута 5
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; * Координаты начальной и коне База 1С при запуске уходит в дамп и вылетает 1
В последнее время частенько обращаются пользователи у которых после замены или ремонта компьютера 1С не запускается, а точнее при открытии уходит в dump и вылетает. Как правило, решение одно: Отключить аппаратное ускорение видеокарты В Window Внешние источники данных 0
Почему данная возможность вызывает такой интерес? Любой человек, который программировал в 1С при этом достаточно неплохо знаком с SQL и хотя бы в общих чертах знаком с архитектурой и принципами разработки других технологических платформ для бизнес пр Выгрузка из 1С на SFTP 4
Думаю, что все знают, как работает 1с с FTP сервером, но вот как работать с sFTP или FTPs сервером? Первое что Вам нужно сделать - это установить бесплатную программу WinSCP, скачать ее Вы сможете здесь, также там есть вся необходимая литература п Горячие клавиши 1С 0
Конфигуратор 1С Конфигурация 1 Alt + К + Enter Открыть конфигурацию 2 Alt + К + Т Поиск во всех текстах 3 Alt + К + О Объединение конфигураций 4 Alt + K + З Загрузить измененную конфигурацию 5 Alt + К + Е Конвертирование да Посмотреть все результаты поиска похожих
Еще в этой же категории
Значения NULL ( ЕСТЬ NULL и ЕСТЬNULL()) 48
NULL – отсутствующие значения. Не путать с нулевым значением! NULL – это не число, не равно пробелу, пустой ссылке, Неопределено. NULL – типообразующее значение, т.е. есть тип NULL и единственное значение этого типа. NULL значения появляются в 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Нарастающий итог в запросе 22
Необходимо использовать левое соединение таблицы с самой собой. ВЫБРАТЬ Обороты.Период, Обороты.Номенклатура, Обороты.Количество ПОМЕСТИТЬ ВТдвижения ИЗ РегистрНакопления.Обороты КАК Обороты ; //////////////////////////////////////////////// Полезные сведения о языке запросов 1С 8.х 22
В статье приведены полезные приемы при работе с запросами 1С v.8.2, а также сведения, которые не так хорошо известны о языке запросов. Я не стремлюсь дать полное описание языка запросов, а хочу остановиться лишь на некоторых моментах, которые для ко Оператор ПОДОБНО 18
ПОДОБНО - Оператор проверки строки на подобие шаблону. Аналог LIKE в SQL. Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если з Посмотреть все в категории Запросы
Читайте также: