Запросник на управляемых формах

05.10.17

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

За основу взята оригинальная консоль запросов "Запросник" из публикации http://forum.infostart.ru/forum24/topic34484/ Так получилось, что лично я всегда с огромным удовольствием пользовался вышеупомянутым творением, таскал везде и всюду, ибо давала невероятные возможности. Вошел в какой-нибудь РАУЗ в УПП, или модуль расчета ЗУП с простынями запросов, отбирающихся из менеджера временных таблиц, запустил мега-обработку и сразу всё как на ладони. Сказать, что ощущал себя как Нео - это мало сказать, с таким инструментом чувствовал себя почти богом. Но вскоре случилось ужасное - начали выходить всякие УТ на УФ и возможности применения инструмента резко сузились. Да, можно было включать режим ОФ и что-то делать, но удобство летело к черту, жизнь становилась не такой прекрасной. Время шло, версии для УФ не появлялось. И тут автор обработки, глубоко уважаемый лично мною tezin, заявляет: я от дел отошел, если что исходники открыты, если энтузиаст найдётся для перевода на УФ - я не против. Ну и собственно - почему бы и нет? Вооружился энтузиазмом и забацал консольку.

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

Наименование Файл Версия Размер
Запросник2_0_21
.epf 351,72Kb
1837
.epf 2.0.21 351,72Kb 1837 Скачать

Итак, что сделано:

- Дерево запросов

- Вывод результата в таблицу и дерево

- Параметры с установкой момента времени, границы, списков, таблицы значений

- Просмотр и отладка временных таблиц

- Версионирование запросов - при каждом выполнении оно запоминается, что там было

- Сохранение в файлы и всё такое

- Обход запроса с помощью настраиваемой выборки

- Конструктор в тонком клиенте при использовании 8.3.5

- Выполнение алгоритмов над результатом запроса

- Возможность отлаживать запрос, формируемый в консоли системы компоновки данных с диска ИТС

- Получение плана запроса, сформированного СУБД

- Получение текста запроса СУБД

- Отладка запроса в модуле

На последнем пункте остановлюсь подробнее, так как суть работы его поменялась.

В далёкие и прекрасные времена, когда использовались ОФ, мы могли с чистой совестью открывать любые формы из отладчика, вызывать всё это модально и вообще играться как дети.

Эта прекрасная возможность и использовалась Запросником - пишем в модуле объекта функцию с открытием формы и установкой запроса и всё работает.

Суровая реальность УФ заставила поменять подход.

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

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

Таким образом, отладка происходитв 2 этапа - вычислить выражение в отладчике вида ВнешниеОбработки.Создать(путь,Ложь).Дамп(Запрос), после чего, можно отпустить исполнение кода дальше и нажать кнопку в обработке (обычный режим), или исполнение кода не отпускать и запустить обработку во втором сеансе (модальный режим).
Строка для вычисления выражения в отладчике доступна в обработке в окне "Отладка запроса в модуле", она генерируется с учетом серверного-файлового режима, в случае серверного файл передаётся на сервер во временную папку.
Проверено на клиент-серверном и файловом вариантах, платформа 8.2, 8.3

// update 2.0.3 08.08.2014
- Добавлена отладка запросов, генерируемых стандартной консолью СКД с ИТС

Решил не присобачивать сюда еще и консоль СКД, т.к. это всё-таки другой инструмент, но я сделал интеграцию между ними.
Как это работает: в Запроснике справа сверху есть подменю с командой "Получить запрос из схемы компоновки", после нажатия вам будет предложено указать, какое из открытых сейчас окон - консоль СКД. При выборе окна запросник выбирает из него схему, настройки, генерирует макет и добавляет получившийся запрос в дерево запросов со всеми параметрами.

// update 2.0.4 08.08.2014
- Добавлена совместимость с платформой 8.2

// update 2.0.5 08.08.2014
- Исправлена ошибка открытия списка версий запросов на платформе 8.3 и ошибка открытия конструктора запросов на 8.3.5
- Добавлена возможность перетаскивать мышкой структуру запроса и параметры в текст запроса при выполении алгоритма
- Добавлено отображение версии запросника в главном окне
// update 2.0.6 16.08.2014
- Исправлена ошибка при выполнении запроса второй раз с установленным флажком "Показывать служебные колонки результата"
- Исправлена ошибка при выполнении запросов, содержащих временные таблицы, когда первая попытка выполнения закончилась ошибкой из-за
неверного синтаксиса запроса
- Произведен рефакторинг участка работы с временными таблицами. Улучшена производительность в операциях сохранения значений ВТ
для последующего отображения.
- Исправлена ошибка сохранения дампа запроса, когда сразу за именем ВТ следовал символ ";"
// update 2.0.7 19.08.2014
Улучшения производительности:
- Несколько улучшена производительность вывода результатов запроса, содержащих большое количество строк
- Уменьшены задержки при навигации по дереву запросов, когда на форме содержиться очень большая таблица результатов запроса
- Произведен рефакторинг процесса работы с алгоритмами запроса. Результат теперь не переходит в другую форму, что
  значительно уменьшает время открытия формы работы с алгоритмами
// update 2.0.8 28.08.2014
- Исправлена ошибка в формируемой в файловой версии строки сохранения дампа - там не было кавычек к пути файла
- Добавлена возможность просматривать тексты запроса СУБД и план запроса СУБД

// update 2.0.9 03.09.2014
- Исправлена ошибка при формировании пакетного запроса в случае, когда включен режим получения плана запроса
- Добавлена совместимость с 8.2.16 и ниже, предположительно до 8.2.14
- Добавлена возможность формировать текст запроса для модуля
- Убрано сообщение об ошибке при открытии конструктора запросов в толстом клиенте
- Произведена некоторая оптимизация для получения плана запроса в клиент-серверном варианте

// update 2.0.10 13.09.2014
- Исправлены ошибки с параметрами дата, которые не содержали время
- Исправлена ошибка при работе с версиями запроса, после работы с которыми терялись параметр "список значений"
- Исправлена ошибка, из-за которой под платформой 8.2 не работало получение запроса из схемы СКД
- Добавлена возможность получать тексты запросов СУБД с представлениями полей 1С.
- Убраны ограничения интерактивного редактирования таблиц результата запроса
В 

//update 2.0.11 18.09.2014
- Исправлен печальный баг, который загонял отладчик в бесконечный цикл при сохранении дампа запроса с >4 таблицами
- Исправлены ошибки, из-за которых некоторые ВТ не сохранялись в дамп
- Исправлена ошибка с параметром даты в составе границы
- Интерфейс в такси переведен на компактный режим
- Исправлена ошибка, когда ВТ могли задваиваться в форме, если вызывать их несколько раз с разным синтаксисом

//update 2.0.12 03.10.2014

- Улучшен парсинг запросов при получении дампа - временная таблица теперь корректно обнаруживается внутри вложенного запроса

//update 2.0.13 19.12.2014
- Для возможности нормальной отладки запросов ЗУП добавлено замещение значений NULL на неопределено во временных таблицах
- Исправлена ошибка при выполнении запроса, в котором ВТ используется несколько раз и написана в разном регистре
- Исправлена ситуация, когда иногда могли не отображаться отрицательные числа из-за бага платформы

//update 2.0.14 24.02.2015
- Реализована поддержка отладки сохраненных дампов временных таблиц, у которых есть колонки со значением "Тип"
(используется в ERP 2.0 в запросах на отражение документов в рег. учете)
- Изменен приоритет конструкторов запроса - если доступен конструктор для толстого клиента, то вызывается он.

//update 2.0.15 02.03.2015

- Исправлена ошибка в заполнении колонок таблицы значений-параметра, когда при отмене редактирования выполнялась проверка на тип колонки
- Значения полей типа "Тип" и "Момент времени" в результате запроса теперь отображают представление данных, а не просто строки "Тип" и "Момент времени"
- Реализована интерактивная работа с полями типа "Хранилище значений", "Результат запроса", "Двоичные данные"

//update 2.0.16 12.05.2015

- Добавлено выделение места в тексте запроса, в котором конструктор видит синтаксическую ошибку
- Добавлено предупреждение при попытке выхода из обработки с несохраненными изменениями
- Переработан процесс выбора типов в параметрах запроса и в списке значений с целью повышения удобства
- Исправлена ошибка при использовании команды "Удалить неиспользуемые параметры"
- Добавлена возможность удалять сохраненные версии запроса

 

//update 2.0.17 14.05.2015
- Добавлен новый выбор типа при настройке колонок таблицы значений
- Добавлен новый выбор типа при работе стандартной команды "Подбор" списка значений
- Исправлены некоторые ошибки с отсутствием модифицированности формы

//update 2.0.18 21.06.2016

- Доработки алгоритма формирования текста запроса (автоподстановка параметров)
- Исправлена ошибка в хоткее Ctrl+S

//update 2.0.19 07.07.2016
- Убраны хвосты раскраски кода из формы выполнения алгоритмов

//update 2.0.20 26.12.2016

- Реализована отладка промежуточных запросов в пакете, не являющихся временными таблицами (через закладку работы с ВТ)
- Убрана ошибка, когда при создании нового файла не очищалось старое имя файла запросов
В 

//update 2.0.21 05.10.2017
- Устранена ошибка, связанная с уничтожением ВТ
- Исправлена ошибка, связанная с влиянием закомментированных участков запроса на логику исполнения запроса

Запросник консоль запросов

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

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

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

13000 10400 руб.

02.09.2020    122153    670    389    

714

SALE! 25%

Infostart PrintWizard

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

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

18000 15300 руб.

06.10.2023    7292    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

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

10000 8000 руб.

10.11.2023    3537    11    1    

34

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    177747    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99347    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

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

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18112    6    8    

39

1С HTML Шаблоны / HTML Templates

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

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28109    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

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

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23602    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
95. FractonKireyev 12.05.15 13:11 Сейчас в теме
Несколько ошибок и проблем в запроснике:

1. Если запрос в области редактирования запроса написан с ошибками, то при нажатии на кнопку "Конструктор" ничего не происходит (а очень хочется увидеть описание ошибки), а при нажатии на кнопку "Выполнить" выползает стандартное окошко о программной ошибке с предложением закрыть программу (такого тоже нельзя допускать - ошибка-то не в программе, а в запросе, и случайное закрытие программы может привести к большим потерям времени работы). А запросы бывают очень большие, и искать проблему глазами зачастую достаточно накладно.
Пример запроса с ошибкой:
Выбрать Номенклатура1.Ссылка
Из Справочник.Номенклатура КАК Номенклатура


2. Работаю в запроснике, что-то делаю, потом нажимаю на кнопку "Закрыть". При этом обработка просто закрывается, не выдавая никаких предупреждений и вопросов. А очень хочется увидеть вопрос типа "Сохранить изменения?". При чём независимо от того, сохранял я раньше результаты своей работы в файл или нет. Иначе можно случайно потерять достаточно большой объём работы.

3. В запросе есть условие:
Справочник1.СтатусВерсии В(&СтатусВерсии)
. При этом тип этого реквизита - перечисление. При попытке выбрать список значений с нужными значениями перечисления (в окне редактирования параметров кнопка "СЗ") ничего не получается - в этом списке нет перечислений.

4. При выборе типа параметра (в окне редактирования параметров при нажатии на кнопку "СЗ" или при определении типа колонки при нажатии на кнопку "ТЗ") идет список возможных типов без указания принадлежности типа к ветке конфигурации (справочник, документ, перечисление, ПВХ, и т.д.). Это очень не удобно, и чем больше конфигурация, тем неудобство больше. Во-первых, не всегда понятно где я сейчас нахожусь (в больших конфигурациях длина списка справочников занимает несколько экранов, то-же самое относится и к спискам документов, спискам регистров и т.д.); а во-вторых, не редкость одинаковые названия для справочников, документов, регистров, перечислений (когда одно имя элемента метаданных встречается в разных ветках). Поэтому ветку конфигурации надо как-то обозначать (или выводить пиктограмку, или писать "Справочник.Номенклатура", "Перечисление.ВидПрихода", или то и другое вместе).

5. В списке редактирования параметров кнопка "Удалить неиспользуемые" ведёт себя непредсказуемым образом - удаляет параметры каким-то случайным образом.

6. У меня идёт длительная работа по разработке запроса. Запрос пишется не весь сразу, а пишется и отлаживается по частям (меняется текст запроса, меняется список и значения параметров). При этом каждое действие накапливается в истории. При этом собственно история становится совершенно бесполезной из-за её большого размера. Очень хочется её почистить (или всю целиком, или оставить из всей истории несколько пунктов, при чём не обязательно последних). Но такой возможности нет. А для удобства работы очень хочется.
96. mrstomak 422 13.05.15 03:10 Сейчас в теме
(95) FractonKireyev, за замечания спасибо, в обновленной версии всё учтено
97. FractonKireyev 13.05.15 17:06 Сейчас в теме
(96)

Не по всем пунктам всё нормально.

2. По поводу сохранения.
2.1. Открываю запросник, при этом автоматически открывается файл со списком запросов. Делаю какие-то действия (меняю существующий запрос, создаю новый запрос или удаляю существующий - действия любые, не важно какие но приводящие к появлению признака модифицированности данных), выполняю. Закрываю обработку, она закрывается без вопросов. Открываю повторно - изменений нет. Выполнение запроса сбрасывает пометку модифицированности данных.
2.2. Открываю запросник, при этом автоматически открывается файл со списком запросов и историей выполнения. Удаляю некоторые пункты истории. Закрываю. Закрывается без вопросов, при повторном открытии все удалённые пункты истории на месте.
2.3. Действия в списке параметров (добавление, удаление, изменение значения) не приводят к установке признака модифицированности (поменял что-то в параметрах, нажал на закрытие - всё закрылось без вопросов).

4. По поводу выбора типов.
4.1. Для списка значений при нажатии на кнопку "Добавить" - нормально.
4.2. Для списка значений при нажатии на кнопку "Подобрать" ничего не изменилось (всё тот-же бесконечный список без отметки о принадлежности к ветке дерева метаданных).
4.3. Для таблицы значений при определении типа значения для колонки таблицы ничего не изменилось. Такой-же бесконечный список без отметки о принадлежности к ветке дерева метаданных.

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

И попутно попалась ещё одна проблема (вроде и не ошибка, но как-то и не правильно):
Работаю с запросом, сохраняю запрос в файл, для одного из реквизитов (участвует в параметрах) в конфигураторе меняю тип данных (изменяю составной тип данных - добавляю несколько справочников), открываю запрос и в параметрах прежний список справочников. Что-бы обновился тип этого параметра - надо удалить параметр (кнопкой Del) и нажать на кнопку "Из запроса".
99. mrstomak 422 14.05.15 16:27 Сейчас в теме
(97) FractonKireyev, учел замечания
(98) DJRelax, а как ты предлагаешь? Делать еще вкладки и на них хранить разные списки? Нафиг это не надо.
При создании нового списка он не затирает сохраненный файл с огромной базой запросов, можно его легко загрузить.
Кроме того, перед выполнением запроса выполняется принудительное сохранение во временный файл - на всякий случай (видно в команде "..." в файловом меню).
101. FractonKireyev 15.05.15 17:07 Сейчас в теме
(99)

По поводу оставшихся проблем. Параметр - список значений (захожу через кнопку "СЗ"). Любые манипуляции со списком (добавить элемент в список, удалить из списка, изменить элемент) не устанавливают признак модифицированности формы (после нажатия на кнопку "Сохранить") и при закрытии формы теряются сделанные изменеия.

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

По поводу (98) DJRelax: сейчас посмотрел, есть такая ошибка. Воспроизводится очень просто. Открываем запросник (при этом в него загружается ранее сохранённый файл с запросами - это важный пункт). Нажимаем на кнопку "Новый файл" (при этом в заголовке имя файла остаётся неизменным). Создаём новый запрос, нажимаем "Сохранить". Всё. Прежнего файла с запросами уже нет, вместо него файл с только что созданным запросом.
98. DJRelax 3 14.05.15 05:48 Сейчас в теме
Очень не правильно сделано создание нового списка запросов. Если в обработке выбран файл с запросами и нажать на кнопку новый список, то происходит затирание ранее выбранного списка, это очень не гуд. Я уже такими действиями потерял огромную базу своих запросов!!!
100. DJRelax 3 15.05.15 02:21 Сейчас в теме
Я предлагаю при нажатии кнопки "Новый файл", сбрасывать(обнулять) текущую ссылку на файл и потом делать какие нибудь манипуляции.
А про то что не затирает, я уже писал у меня затер. Вчера весь день пытался восстановить с помощью разных утилит по восстановлению файлов на жестких дисках, я же наверное это не от хорошей жизни делал. Все было просто, открыл обработку, в ней открыл файл с запросами(он правда от другой консоли), запросов не было видно(так как он от другой консоли), так как в обработке нет кнопки "Закрыть/Отсоединить" текущий файл, была нажата кнопка "Новый!!! файл"(я знаками выделил тут главное слово), но новый файл не был создан, а просто все что было в ранее выбранном файле стерлось и записаны данные из этой обработки.
Я ни коим случаем не ищу виноватых, я просто пишу для того что бы такая ситуация больше ни кому не испортила настроение.
Исправлять ли это, это сугубо ваше решение.
104. sonGodv 43 23.07.15 09:34 Сейчас в теме
105. Swetlana 20 23.07.15 09:37 Сейчас в теме
Интересно, обработка стоит того чтобы ее качать? чем отличается от других консолек?
106. mrstomak 422 23.07.15 12:44 Сейчас в теме
(105) Swetlana, я создавал её в общем для одного - иметь возможность производить отладку запросов из модуля.
Консоль позволяет вытаскивать запросы с сервера со всеми параметрами и временными таблицами, полностью воссоздаёт весь контекст исполнения.
Можно держать конфигуратор на брейкпоинте и в отдельном сеансе предприятия подгружать запросы, которые в данный момент модуль формирует - запросы выполняются с учетом разных временных данных, записанных в транзакции и т.д.

Возможность отладки разработана через парсинг запросов в модуле, вычленение из них ВТ, параметров и текстов, сохранения всего этого в файлы, передачу между клиентами-серверами и доведение в удобном виде до разработчика, с учетом особенностей типовых (запросы с типом "тип значения", "рабочие" запросы со сплошными null и т.д.)

Это - ключевое отличие от других консолей.
107. sonGodv 43 02.09.15 14:47 Сейчас в теме
Что делать с такой ошибкой? В файловом варианте все ОК. А на сервере
{Форма.ФормаУпр.Форма(329)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода
Выполнить(Имя83+СтрокаПараметров);
по причине:
{(1,1)}: Процедура или функция с указанным именем не определена (НачатьПолучениеКаталогаВременныхФайлов)
<<?>>НачатьПолучениеКаталогаВременныхФайлов(ОписанОп)
108. mrstomak 422 02.09.15 19:01 Сейчас в теме
Обновиться с 8.3.х до 8.3.5 хотя бы
109. sonGodv 43 08.09.15 09:55 Сейчас в теме
1С:Предприятие 8.3 (8.3.5.1248) не работает

8.3.6 работает!
110. mrstomak 422 08.09.15 10:16 Сейчас в теме
111. stas1kbob 59 18.09.15 11:23 Сейчас в теме
указывать список значений как параметр не получается (сам тип выбрал, но параметры не дает выбирать)
112. mrstomak 422 18.09.15 13:11 Сейчас в теме
Непонятно описано.
Параметры в виде списков работают.
Кнопка СЗ, открывается окно списка, там заполняется и при необходимости выбирается тип.
Воспроизвести проблему не могу, нужно более подробное описание.
113. stas1kbob 59 01.10.15 18:00 Сейчас в теме
(112) извините, там нужно было нажимать кнопку сохранить, а форма не раздвигалась , так что я ее не видел. Теперь нашел след. баг: если делаю условия на виртуальную таблицу, в том окошке нет команды открытия конструктора запроса. А также если можно, сделайте пожалуйста чтобы можно было переходить по запросам пакета с правой панели, а не выбором из списка.
115. mrstomak 422 02.10.15 11:24 Сейчас в теме
(113) stas1kbob,
Все перечисленное относится к конструктору запросов.
Если приложение запущено в режиме тонкого клиента, то стандартный конструктор запросов для толстого, который есть в конфигураторе, недоступен. Используется "тонкий" конструктор, являющийся частью платформы.
Чтобы была возможность работать с более привычным конструктором, запускайте управляемое приложение в режиме толстого клиента, тогда автоматически будет выбираться именно он.
(114) stas1kbob, Какая платформа используется? У меня давно таких ошибок не было, но на нестабильных релизах 8.3.5 случалось.
116. stas1kbob 59 02.10.15 14:54 Сейчас в теме
(115) версия платформы (8.3.6.2152). Я попробую работать в толстом клиенте, может вторая ошибка тоже уйдет. спасибо за ответ!
114. stas1kbob 59 02.10.15 09:45 Сейчас в теме
Еще вот такая ошибка бывает: {Форма.ФормаУпр.Форма(182)}: Ошибка при вызове метода контекста (СохранитьДеревоЗапросовВФайлНаСервере)
АдресВХранилище = СохранитьДеревоЗапросовВФайлНаСервере();
по причине:
При работе формы произошла системная ошибка (нарушена синхронизация состояния формы на клиенте и сервере).: "Различаются значения счётчиков для данных форм: 6.1641 != 6.1378"
А текст запроса вот такой был:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Контрагенты) КАК Контрагент,
ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.ДоговорыКонтрагентов) КАК Договор,
ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
ХозрасчетныйОстаткиИОбороты.Подразделение КАК Подразделение,
ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
&началоПериода,
&КонецПериода,
Период,
,
Счет В (&СчетаСДокументомРасчетов),
&ВидыСубконтоКДД,
ВЫРАЗИТЬ(Субконто2 КАК Справочник.ДоговорыКонтрагентов).ВидДоговора В (&ВидыДоговоров)
ИЛИ ИСТИНА) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток > 0
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
ХозрасчетныйДвиженияССубконто.СубконтоДт3 КАК СубконтоДт3
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
&началоПериода,
&КонецПериода,
СчетДт В (&СчетаСДокументомРасчетов)
И (СубконтоДт1, ВидСубконтоДт2) В
(ВЫБРАТЬ
ВременнаяТаблица.Контрагент,
ВременнаяТаблица.Договор
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица),
,
) КАК ХозрасчетныйДвиженияССубконто
ПО (ХозрасчетныйДвиженияССубконто.СубконтоДт2 = ВременнаяТаблица.Договор
И ХозрасчетныйДвиженияССубконто.СубконтоДт1 = ВременнаяТаблица.Контрагент)
Показать
146. lev6975 06.11.19 12:59 Сейчас в теме
(114) Кстати, функция "ВЫРАЗИТЬ" работает некорректно, не видит поля некоторые которые в пофигураторе запрос видит... Но особо не мешает - эта функция декоративная и ее отлаживать необязательно
117. serg__k 79 18.12.15 11:37 Сейчас в теме
Просто хочу сказать СПАСИБО!!! Отличный инструмент, пользуюсь постоянно, последняя версия очень порадовала, так держать!
118. zombi81 8 15.01.16 21:23 Сейчас в теме
Спасибо за отличную работу. Поясните, пожалуйста, в чем проблема. Часть запросов с временными таблицами отлаживаю нормально все хорошо. Но вот в ЗУП 3 3.0.25.56 в общем модуле РасчетЗарплатыРасширенный в функции СотрудникиДляНачисленияЗарплаты (попасть в нее можно просто выполнив заполнение в документе "Начисление зарплаты") становлюсь в строке 14310 где "Запрос.Выполнить()" и выполняю получение дампа в отладчике, затем в другом сеансе 1с предприятие открываю запросник, получаю дамп и выполняю там запрос
он ругается {Форма.ФормаУпр.Форма(617)}: Ошибка при вызове метода контекста (Выполнить): {(8, 2)}: Таблица не найдена "ВТВсеСотрудникиОрганизации"
<<?>>ВТВсеСотрудникиОрганизации КАК ВсеСотрудникиОрганизации

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

Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;

в других нормально отлаживаемых запросах менеджер временных таблиц создавался в этой же процедуре где и сама переменная Запрос.
119. mrstomak 422 16.01.16 13:08 Сейчас в теме
В этом запросе таблица ВТВсеСотрудникиОрганизации переопределяется - т.е. она удаляется и потом по-новому задаётся.
К сожалению, такую ситуацию запросник не отслеживает - он захватывает в дамп все ВТ, которые используются в запросе, но в этом же запросе нигде не создаются.
А если даже будет их захватывать, то после первого исполнения он запомнит уже новые данные ВТ с этим именем и дальнейшие выполнения будут некорректными.
В общем тут поразмышлять надо, может в будущих версиях поправлю.
120. zombi81 8 16.01.16 14:09 Сейчас в теме
Там таблица удаляется во втором пакете запроса, а ругается на первый пакет строка 8 поз 2. В любом случае может быть Вы и ответили, только я не понимаю ответ)). Надеюсь, у Вас получится разрулить эту ситуацию.
121. unk2 201 04.03.16 10:48 Сейчас в теме
Хорошая консоль. Удобно. Есть мелкая ошибка. На сочетание клавиш Ctrl+S "повешено" два действия. Открыть файл и сохранить.
Скорее всего об этом уже писали не раз. Я сперва не мог понять в чем дело. Нажимаешь сохранить а открывается диалог выбора файла...
122. lesorubka 20 17.03.16 08:50 Сейчас в теме
Спасибо большое за обработку! То что мне надо срочно - получилось, а во всех плюшках будем потихоньку разбираться.
123. pavel_pozdeev 315 10.05.16 15:42 Сейчас в теме
Делаю простой запрос в таблице договоров. Отбор накладываю так:
ДоговорыКонтрагентов.Ссылка В ИЕРАРХИИ (&Родитель)

При выборе параметра "Родитель" не дает выбрать группу
124. mrstomak 422 17.05.16 20:28 Сейчас в теме
(123) Snork, про какую конфигурацию речь?
по умолчанию никаких ограничений нет, это в формах выбора конфигурации возможно ограничения какие-то
125. DrBlack 23 17.06.16 10:14 Сейчас в теме
Всем привет!
Постоянно сталкиваюсь с необходимостью писать небольшие обработки, собственно задолбался я с параметрами.
Для версии 2.0.17 сделал небольшую доработку:
В модуле фомы "ФормаУпр" в процедуре "ПолучитьТекстДляМодуля" (строка 2950) заменить строку
ТекстМодуля = ТекстМодуля + Символы.ПС + "Запрос.УстановитьПараметр(" + Строка1Кавычка + СокрЛП(СтрокаПараметров.ИмяПараметра) + Строка1Кавычка + ", ");"

следующим кодом:
ТекстПеременной = СформироватьСтрокуПолученияСсылкиПоГУИД(СтрокаПараметров.ЗначениеПараметра);
ТекстМодуля = ТекстМодуля + Символы.ПС + "Запрос.УстановитьПараметр(" + Строка1Кавычка + СокрЛП(СтрокаПараметров.ИмяПараметра) + Строка1Кавычка + ", " + ТекстПеременной + ");"

И добавить две функции:
&НаКлиенте
Функция СформироватьСтрокуПолученияСсылкиПоГУИД(СсылкаНаОбъект)
	
	Если НЕ ЗначениеЗаполнено(СсылкаНаОбъект) Тогда
		Возврат "";
	КонецЕсли;
	
	Возврат СформироватьСтрокуПолученияСсылкиПоГУИД_НаСервере(СсылкаНаОбъект);		
	
КонецФункции

&НаСервереБезКонтекста
Функция СформироватьСтрокуПолученияСсылкиПоГУИД_НаСервере(СсылкаНаОбъект)
	
	ТекстПеременной = "";
	
	Если ТипЗнч(СсылкаНаОбъект) = Тип("Строка") Тогда
		ТекстПеременной = """" + СсылкаНаОбъект + """";
	ИначеЕсли ТипЗнч(СсылкаНаОбъект) = Тип("Число") Тогда
		ТекстПеременной = СсылкаНаОбъект;
	ИначеЕсли ТипЗнч(СсылкаНаОбъект) = Тип("Дата") Тогда
		ТекстПеременной = Формат(СсылкаНаОбъект, "ДФ=Дата(гггг,ММ,дд,ЧЧ,мм,сс)");
	ИначеЕсли ТипЗнч(СсылкаНаОбъект) = Тип("Булево") Тогда
		ТекстПеременной = Формат(СсылкаНаОбъект, "БЛ=Ложь; БИ=Истина");
	ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(СсылкаНаОбъект)) Тогда
		ТекстПеременной = "Документы." + СсылкаНаОбъект.Метаданные().Имя + ".ПолучитьСсылку(Новый УникальныйИдентификатор(""" + СсылкаНаОбъект.УникальныйИдентификатор() + """))";
	ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(СсылкаНаОбъект)) Тогда
		ТекстПеременной = "Справочники." + СсылкаНаОбъект.Метаданные().Имя + ".ПолучитьСсылку(Новый УникальныйИдентификатор(""" + СсылкаНаОбъект.УникальныйИдентификатор() + """))";
	ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТипЗнч(СсылкаНаОбъект)) Тогда
		ТекстПеременной = "ПланыВидовХарактеристик." + СсылкаНаОбъект.Метаданные().Имя + ".ПолучитьСсылку(Новый УникальныйИдентификатор(""" + СсылкаНаОбъект.УникальныйИдентификатор() + """))";
	ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипЗнч(СсылкаНаОбъект)) Тогда
		пМетаданные = СсылкаНаОбъект.Метаданные();
		ИмяЗначения = пМетаданные.ЗначенияПеречисления[Перечисления[пМетаданные.Имя].Индекс(СсылкаНаОбъект)].Имя;
		ТекстПеременной = "Перечисления." + СсылкаНаОбъект.Метаданные().Имя + "." + ИмяЗначения;
	КонецЕсли;
	
	Возврат ТекстПеременной;
	
КонецФункции
Показать

Теперь если выполнить команду: "Получить текст для модуля", автоматически заполнятся значения параметров, пример:
Запрос.УстановитьПараметр("Свойство_КонтактноеЛицо", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПолучитьСсылку(Новый УникальныйИдентификатор("8fd8f086-7e42-11e5-80be-2aa1143b964e")));
Запрос.УстановитьПараметр("Свойство_Контрагент", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПолучитьСсылку(Новый УникальныйИдентификатор("f0df63b1-8380-11e5-80be-2aa1143b964e")));
Запрос.УстановитьПараметр("Свойство_Перечисление", Перечисления.ВариантЛогинаПароляДляЛентыНовостей.БезЛогинаПароля);
Запрос.УстановитьПараметр("Строка", "22321");
Запрос.УстановитьПараметр("Дата", Дата(2013,11,20,23,59,59));
Запрос.УстановитьПараметр("Булево", Истина);
akR00b; TerveRus; +2 Ответить
126. json 3297 29.06.16 10:09 Сейчас в теме
Очень похожа на исходную. Класс!
А не возникало желания объединить две консоли в одну обработку? Или это проблематично?
127. mrstomak 422 29.06.16 14:34 Сейчас в теме
(126) Если в ОФ запускать, то запустится оригинальный Запросник
128. DrBlack 23 15.08.16 09:34 Сейчас в теме
Нашел ошибку, если в конструкторе запросов заменить таблицу (еще -> заменить таблицу), то дерево реквизитов не обновляется.
TerveRus; +1 Ответить
129. TerveRus 30.11.16 10:47 Сейчас в теме
{Форма.ФормаУпр.Форма(2056)}: Ошибка при вызове метода контекста (ЗаполнитьВремТаблНаСервере)
ЗаполнитьВремТаблНаСервере(Элемент);
по причине:
При работе формы произошла системная ошибка (нарушена синхронизация состояния формы на клиенте и сервере).: "Различаются значения счётчиков для данных форм: 5.1361 != 5.1265"

при выборе временной таблицы, и в некоторых случаях исполнения дубликата запроса, который видимо выдает тот же результат и форму глючит.
130. TerveRus 30.11.16 10:58 Сейчас в теме
Кажется это платформа 8.3.7.2008 глючит, а не запросник. На 8.3.9.1850 вроде нормально.
131. mrstomak 422 30.11.16 14:47 Сейчас в теме
(130) Это старый известный косяк платформы, да.
132. Serg2000mr 311 24.07.17 23:25 Сейчас в теме
mrstomak, можете добавить автоматический расчет ширины колонок результата?
133. Sиlьver 10 05.10.17 09:52 Сейчас в теме
Хорошая обработка. Автору спасибо!
В последнее время стал чаще ею пользоваться и нашел пару неприятных ошибок.
1. Падает выполнение запроса, если есть уничтожение ВТ.
2. Если закомментить запрос из п.1, то обработка все равно пытается его выполнить.
134. mrstomak 422 05.10.17 13:58 Сейчас в теме
137. soft-servis 14 04.12.17 13:02 Сейчас в теме
"Реализована интерактивная работа с полями типа "Хранилище значений", "Результат запроса", "Двоичные данные"." Почему то показывает записи только первой строки, а не выделенной.
138. acsent 1199 14.12.17 11:05 Сейчас в теме
Если обработка встроенная (например я расширение себе собрал с такими обработками для разработчика),
то строка отладки должна быть
СтрокаОтладки = "Обработки."+ОбработкаОбъект.Метаданные().Имя+".Создать().Дамп(Запрос)"
139. maljaev 789 23.03.18 14:31 Сейчас в теме
Сам сейчас без старой консоли на обычных формах как без рук, страдаю (хотя на УФ есть от чего пострадать и без этого). Этот римейк на УФ был очень долгожданным, и честь и хвала автору за его разработку. Но тем не менее я им не пользуюсь, потому что интерфейс просто конченый, и лично мне режет глаза больше, чем приносит удовольствия от использования. Эти кнопки и другие элементы разных форм и стилистик, нелепые иконки, рамки и отступы от 1мм до 3см без всякой логики, непродуманные размеры и выравнивания, и т.п. Сделайте в конце концов нормальный интерфейс по стандартам "Такси", причесать формы намного проще чем изменить логику программы. Сейчас мне скажут: - вам шашечки или ехать? Мне - и то и другое, т.к. это тот инструмент на который пялишься очень большой процент своего времени, и это примерно то же самое что сравнить хороший монитор на IPS/MVA с бюджетным УГ на TN - показывает одну картинку, но ощущения и комфорт в работе абсолютно разные.

P.S. Алексей, ты всё равно молодец, я сам альтруизмом давно переболел, к сожалению.
140. invertex 94 26.07.18 16:09 Сейчас в теме
Не работает с расширениями конфигураций. Жаль.
141. dbachinsky 347 13.02.19 17:57 Сейчас в теме
При выборе документа вместе с табличными частями типа:

ВЫБРАТЬ
НачислениеЗарплаты.Ссылка КАК Ссылка,
НачислениеЗарплаты.НачислениеЗарплатыВоеннослужащим КАК НачислениеЗарплатыВоеннослужащим,
НачислениеЗарплаты.Начисления.(
Ссылка КАК Ссылка,
НомерСтроки КАК НомерСтроки,
Сотрудник КАК Сотрудник,
Подразделение КАК Подразделение,
ДатаНачала КАК ДатаНачала,
ДатаОкончания КАК ДатаОкончания,
Начисление КАК Начисление,
и т.д.

В результате запроса ТЧ доступны как гиперссылки. Если открыть любую гиперссылку-ТЧ, то далее при открытии тех же табличных частей других документов из результата, будет открываться таблица открытая первой. Исправьте пожалуйста
144. Nuuq 76 16.04.19 16:17 Сейчас в теме
(141) Фикс ситуации, когда при нажатии на гиперссылку "РезультатЗапроса" для просмотра табличной части документа/справочника и т.п. всегда выбирается только таб.часть первой строки:

В модуле формы "ФормаУпр" в процедуре исправить БЫЛО на СТАЛО

&НаСервере
Процедура ВывестиРезультат(мРезЗапроса)
	Если СпособВыгрузки = 0 Тогда
		РекФормы = "РезультатТаблица"
	Иначе                   
		РекФормы = "РезультатДерево";
	КонецЕсли;
	//Очистим колонки результата в форме
	Если СпособВыгрузки = 0 Тогда
		ЭтаФорма[РекФормы].Очистить();
	Иначе
		ЭтаФорма[РекФормы].ПолучитьЭлементы().Очистить();
	КонецЕсли;
... ... ...
	Если СпособВыгрузки = 0 Тогда
		Если СпособВыборки = 0 Тогда
		... ... ...
				Для Каждого СтрокаРез иЗ ТЗРезультата Цикл
				НоваяСтрока = РезультатТаблица.Добавить();
				ЗаполнитьЗначенияСвойств(НоваяСтрока,СтрокаРез);
				Если ЕстьПроблемныеТипы Тогда
					// ----- Б Ы Л О ------
					//ТЗРасшифровка[ТЗРезультата.Индекс(СтрокаРез)].СлужебныйРек__ = НоваяСтрока.ПолучитьИдентификатор();
					//+++++ С Т А Л О +++++
					НоваяСтрока.СлужебныйРек__ = НоваяСтрока.ПолучитьИдентификатор();
					ТЗРасшифровка[ТЗРезультата.Индекс(СтрокаРез)].СлужебныйРек__ = НоваяСтрока.СлужебныйРек__;
				КонецЕсли;
			КонецЦикла;
			... ... ...
Показать
142. Eugen-S 385 06.03.19 12:59 Сейчас в теме
{ВнешняяОбработка.Запросник2_0.Форма.ФормаУпр.Форма(219)}: Ошибка при вызове метода контекста (Существует)
Если Не Файл.Существует() Тогда Продолжить КонецЕсли;
по причине:
Использование синхронных методов на клиенте запрещено!

Поправьте, пожалуйста
Прикрепленные файлы:
143. vadymdymdym 29.03.19 11:47 Сейчас в теме
(142) Если в свойстве вашей конфигурации режим использования синхронных вызовов стоит "Не использовать" или вы запускаете конфигурацию в веб-клиенте, то результат закономерен. Метод Существует() объекта Файл синхронен. Для проверки существования следует использовать асинхронный метод НачатьПроверкуСуществования()
Прикрепленные файлы:
145. Alexandr_Kuznecov 16.06.19 22:36 Сейчас в теме
Выполнил некоторые доработки.
Файл не прикрепляю - тогда, наверное, автору стартмани за скачивание не будет начисляться.
Автор, если интересно - напиши в ЛС, отправлю файл.

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

2. Текст запроса для модуля теперь формируется без лишних символов и сразу в том виде, который наиболее часто используется. Это, возможно, очень субъективный момент.
Функция формирования текстов вынесена в модуль объекта, чтобы уйти от дублирования кода в управляемой и в обычной форме.

3. В обычной и управляемой форме кнопка "Выполнить" теперь работает по Ctrl + Enter вместо F7. Так удобнее при печати слепым методом.

4. Если в запросе есть параметры, которые не добавлены в таблицу параметров консоли, то при выполнении запроса теперь не вылетает ошибка, а открывается таблица с автоматически заполненным или дополненным список параметров.

5. Исправлена ошибка, когда из таблицы параметров в консоли удаляем параметр вручную, а запрос его всё равно запоминает вместе с последним заданным значением.

6. Кнопка "Конструктор" теперь отзывается на сочетание клавиш Ctrl + E, а кнопка "Параметры" на Ctrl + F12. Ранее из сочетаний клавиш было только Ctrl + E для контруктора только в обычной форме.

7. Ещё какие-то мелочи для удобства использования и украшательства.
Anawier; farkhod; Eugen-S; paybaseme; acanta; +5 Ответить
147. lev6975 06.11.19 13:00 Сейчас в теме
148. scarabey2006 28 18.06.20 12:27 Сейчас в теме
Перестала работать на версии платформы 8.3.17.1386, хорошая удобная была
149. DomenER 09.06.21 14:58 Сейчас в теме
150. Kaavan 89 10.11.21 15:08 Сейчас в теме
Оставьте свое сообщение