1с не работает консоль запросов
Ошибка инициализации модуля: Обработка.ирПлатформа.МодульОбъекта
по причине:
: Значение не является значением объектного типа (ПолучитьТекст)
В этом месте находится строка
Причем в отладчике конструкция ПолучитьМакет("ТаблицаИменЭлементовКоллекций").ПолучитьТекст() отрабатывает.
В модуль менеджера обработки ирПлатформа добавили функции, возвращающие текст макета, который описан в коде функции как строковая переменная и заменили ПолучитьМакет().ПолучитьТекст на вызов соответствующих функций.
В модуле объекта обработки ирПлатформа заменили ПолучитьФорму("Служебная") на Обработки.ирПлатформа.ПолучитьФорму("Служебная").
Сейчас 8.3.5 в режиме совместимости 8.3.4, но то же самое было под 8.3.5 в режиме совместимости с 8.2.13.
Вообще глюк с ПолучитьТекст странный. Если сначала открыть консоль компоновки, а после этого консоль запросов, всё работает. Если после этого перезапустить 1С и сразу открыть консоль запросов, перестаёт открываться и консоль запросов, и консоль компоновки. И вроде в отладчике смотрели это место Обработка.ирПлатформа.МодульОбъекта(186) вызывается первый раз при какой-то инициализации, без открытия формы консолей, тогда всё нормально.
Там в модуле объекта ирПлатформа есть и в других местах такие ПолучитьТекст и ПолучитьФорму, также падает.
Кэш чистил. Эта ошибка у всех возникает и в разных базах.
То есть в панели все хорошо отрабатывает получение текста, а в коде реально при команды ПолучитьМакет("ТаблицаИменЭлементовКоллекций")
Просиходит не получение макета, а вызов функции из глобального модуля обычного приложения. В моем случае глПодключитьМенеджерЗвит1С.
Каким она боком сюда - непонимаю
Добавлено (04.09.2014, 18:26)
---------------------------------------------
Точно скажу что ошибка не во всех базах. В базе без совместимости работает.
Добавлено (04.09.2014, 18:33)
---------------------------------------------
Спасибо за Обработки.ирПлатформа.ПолучитьМакет, сижу заменяю.
Универсальная внешняя обработка для создания, редактирования и отладки запросов, с возможностью обработки таблицы результатов произвольными алгоритмами на языке 1С. Выгрузка результатов запроса в таблицу или дерево значений, включая временные таблицы и запросы пакета. Формирование запроса для консоли в отладчике, включая временные таблицы и параметры. Версия 1.1.0.77 от 02.12.2021
СДРКонсольЗапросовХ – инструмент для программиста, позволяющий создавать и отлаживать запросы для баз 1С 8.3, а также обрабатывать результаты запросов (тонкий, толстый, web клиент). Не зависит от конкретной конфигурации, никаких БСП.
Работает с современными конфигурациями 1С с запретом на использование модальности и синхронных вызовов. Для конфигураций, использующих БСП, есть возможность подключения обработки к справочнику "ДополнительныеОтчетыИОбработки".
Видео инструкции по работе с консолью можно посмотреть здесь
Если Вас заинтересовала эта обработка, то рекомендую обратить внимание на Навигатор по базе данных 1С 8.3
В плане интерфейса использована классическая схема: дерево запросов, запрос и результаты запроса.
Особенности
- Работает с современными конфигурациями 1С (с запретом на использование модальности и синхронных вызовов)
- Заточена на интерфейс «Такси» - мало место для работы по сравнению с неуправляемыми формами (поэтому экономим место: можно погасить дерево запросов, результаты запроса и вообще ничего лишнего стараемся не показывать)
- Оптимизирован обмен данными между клиентом и сервером
- Не содержит избыточного функционала, редко используемого в практической работе
- Для всех форм обработки установлен вариант масштаба "Компактный". Если кому то это не нравится и хочется использовать платформенную кнопку "Изменить масштаб", то надо в конфигураторе для всех форм обработки установить вариант масштаба "Авто".
Работа с деревом запросов
- Запросы хранятся в виде дерева (как обычно)
- Можно сохранить или загрузить все дерево запросов (в файл или из файла)
- Можно сохранить отдельную веточку запросов в файл
- Можно подгрузить в отдельную ветку запросов запросы из файла
- Можно копировать запросы (вместе с параметрами и таблицами МВТ) или перетаскивать их в другие ветки дерева
- ВАЖНО: корень дерева не предназначен для работы с запросом
Работа с текстом запроса
- Поддержка пакета запросов
- Можно выполнить весь пакет, либо только выделенную часть пакета
- В поля выборки можно вставить специальное поле, чтобы вместо ссылки выводился GUID
- В пакет запроса можно вставить специальный разделитель, чтобы выполнение пакета остановилось на этом месте
- Выделенную часть запроса можно закомментировать, раскомментировать или преобразовать в строку для вставки в код скрипта 1С
Параметры запроса
- В параметрах запроса кроме стандартных, может быть таблица значений, граница, момент времени, уникальный идентификатор
- В параметре можно указать битую ссылку (ссылку не несуществующий объект)
- В качестве параметру можно указать выражение на языке 1С, которое будет вычисляться перед выполнением запроса
- Можно скопировать выбранные параметры из одного запроса в другой
- Можно редактировать таблицу значений, являющуюся параметром запроса
Таблицы МВТ
- Здесь располагаются таблицы значений, которые перед выполнением запроса помещаются в менеджер временных таблиц
- В основном используется при перехвате сложных запросв из отладчика
- Можно скопировать выбранные таблицы из одного запроса в другой
- Т аблицы значений можно редактировать
Результаты запроса
- Результаты запроса оформляются в виде таблицы значений или дерева значений
- Временные таблицы пакета запроса также оформляются в виде таблицы значений (по желанию)
- Есть возможность показывать итоги по числовым колонкам таблицы результатов или временных таблиц
- Есть возможность показывать итоги для выделенных строк по числовым колонкам таблицы результатов или временных таблиц
- Кликнув мышкой по ячейки результирующей таблицы значений можно открыть значение в стандартной форме (если там находится ссылка на объект)
- Можно открыть значение ячейки таблицы в специальной форме, предоставляющей доступ ко всем реквизитам объекта (Редактор объектов информационной базы 8.3 – встроен в консоль запросов). Как самостоятельно встроить более новую версию "Редактора объектов" описано здесь.
- В специальной форме можно открыть не только ссылочный объект, но и хранилище значения (поддерживаются массив, список значений, структура, соответствие, таблица значений, табличный и текстовый документ)
- Можно загрузить таблицу результатов запроса в параметр запроса либо сохранить в файл
- Можно загрузить таблицу результатов запроса в менеджер временных таблиц запроса
- Можно выгрузить ссылочные объекты из произвольной колонки результатов запроса в формате XML (для последующей загрузки в базу). Для обмена данными можно использовать файлы или строку, передаваемую через буфер обмена.
Сохранение запросов из отладчика
- Есть возможность остановиться в отладчике и сохранить запрос с параметрами и временными таблицами в файл, который затем можно подгрузить в консоль для отладки.
- Есть возможность остановиться в отладчике и сформировать XML-представление запроса с параметрами и временными таблицами, из которго в консоли можно сформировать запрос для отладки (передается через буфер обмена без использования промежуточных файлов)
- Функция общего модуля для сохранения запроса из отладчика прилагается, пример вызова: омОтладка.СохранитьЗапросДляСДРКонсолиХ(Запрос, "D:\1Cv8\Запросы\000") или омОтладка.СохранитьЗапросДляСДРКонсолиХ(Запрос) - формирует XML-представление запроса
- В функцию сохранения запроса в качестве первого параметра можно передать Запрос или МакетКомпоновкиДанных
Функция для перехвата запроса из отладчика (актуальный текст функции приведен на закладке "Настройки" обработки)
Для обработки результатов запроса есть закладка «Алгоритмы»
- в Web клиенте выполнить алгоритм можно только на стороне сервера
- Алгоритм – это код на языке 1С
- Алгоритмы хранятся в виде дерева, функционал аналогичен дереву запросов
- ВАЖНО: корень дерева не предназначен для работы с алгоритмом
- Алгоритмы могут выполнятся как на стороне сервера, так и на стороне клиента; имеют доступ к результатам запроса, можно указать дополнительные параметры (число, дата, ссылка и т.д.)
- В консоль встроены примеры реализации алгоритмов на стороне сервера и клиента. В примере для клиента обратите внимание на строки «//--- Сервер:старт» и «//--- Сервер:финиш» - код между этими строками будет выполняться на сервере.
Видео инструкции по работе с консолью можно посмотреть здесь
Некоторые примеры скриншотов
Здесь в том числе приведен текст функции общего модуля для перехвата запроса в отладчике
Просмотр и редактирование параметра типа "ТаблицаЗначений"
Если использовать нестандартную форму для выбора типа параметра, то выбор организован более интелектуально - типы объектов не сваливаются в одну кучу, а разбиты по категориям
Просто в псевдониме поля надо добавить строку "__GUID__" (во временных таблицах и при выгрузке в дерево значений игнорируется)
Конструкторы в 1С – наше все :) Они “ведут нас за руку” в процессе разработки. Но не забывайте, что это все лишь навсего помощники. Не стоит теряться, если конструктор что-то не умеет. Все, что не умеет конструктор, можно реализовать самостоятельно вручную.
Вопрос
Добрый день, помогите разобраться! Почему в консоли запросов я не могу вызвать конструктор в месте, которое я указал на снимке экрана?
(нажмите, чтобы увеличить картинку)
Ответ
Добрый день! Судя по скриншоту, Вы используете новый, управляемый конструктор запроса. В нем нет возможности в редакторе произвольного выражения обратиться к вложенному конструктору запроса.
Что можно сделать для обхода:
- Написать фрагмент запроса в редакторе произвольного выражения вручную. Например, вот так:
- Открыть конструктор запроса в конфигураторе, там обычный конструктор запроса, эта возможность будет доступна.
- Воспользоваться консолью запросов, которая использует обычный, классический конструктор запросов. Правда работать такой вариант будет только в толстом клиенте.
Комментарии / обсуждение (2):
В самой свежей версии консоли с ИТС добавили эту команду, но работает она только при полностью пустом поле.
Добрый день!
Уточню. Здесь дело не только в самой консоли запросов с сайте ИТС, но и в используемой платформе.
Потому что, например, если консоль открыть в базе под платформой 8.3.13, то команда для открытия конструктора запроса будет просто недоступна в окне редактирования произвольного выражения:
Если же открыть эту же консоль, но в базе под более свежей платформой (для примера – 8.3.16), то эта команда появится в контекстном меню:
При этом в управляемом конструкторе запроса будет недоступен прием, возможный в конфигураторе или в обычном (не управляемом) конструкторе запроса, когда выделяем пробел и при помощи контекстного меню открываем вложенный конструктор запроса.
Не получится вот в такой ситуации открыть вложенный конструктор запроса:
Возникнет ошибка:
Во вложениях картинки моего сеанса с пустой консолью и картинка консоли сервера 1С Предприятия.
Что-то там на что-то влияет.
В общем, подобное поведение внешнего инструмента разработчика однозначно мешает работе наших пользователей
Добавлено (05.04.2019, 09:55)
---------------------------------------------
На картинке с консолью сервера видно мой вчерашний второй сеанс и видно, что он ничего не захватил.
в базе есть сеанс, в котором открыта обычная форма (например консоль запросов), удерживающая в себе объект МенеджерВременныхТаблиц. Для
такого сеанса показатель "Захвачено СУБД" будет расти до тех пор, пока
объект не будет уничтожен (например путем закрытия формы). При этом
содержимое менеджера временных таблиц контролируется прикладным кодом и
пользователем, т.е. нет бесконтрольного роста количества и размера
временных таблиц в нем. В среднем в этом менеджере временных таблиц
находится малый объем данных. Объект может жить целый рабочий день.
Будет ли в таком случае какое то негативное влияние на
производительность СУБД и каков его механизм?
Имеем базу, в которой работают 50 пользователей и периодически проводят 5 видов документов. В коде проведения этих документов создаются
и сразу уничтожаются разные по составу колонок временные таблицы.
Пользователь открыл толстую форму. Она создала постоянный менеджер
временных таблиц на клиенте.
Случай 1. Пользователь выполнил создание в нем простейшей пустой
временной таблицы, т.е. имеем постоянное удержание временной таблицы и
соответственно соединения с СУБД. Далее пользователь в том же сеансе
открывает другую форму и запускает в ней недолгое перепроведение тех же
типов документов (для ясности без явной транзакции. Таким образом в
удерживаемом постоянно соединении с СУБД образуется и удерживается набор
пустых временных таблиц всех используемых при проведении составов
колонок временных таблиц.
Работа соединения с SQL-сервером замедляется, если в этом соединении создаются и удаляются многочисленные временные таблицы. Чтобы
производительность 1С:Предприятия из-за этого не снижалась,
предусмотрено обновление соединений с SQL-сервером с течением времени. В
описанный сценарий препятствует обновлению, и это приводит к снижению
производительности. Длительное удерживание менеджеров временных таблиц
не рекомендуется.
Консоль запросов не видит регистры сведений и накоплений, добавленные в расширение конфигурации базы 1С:Предприятие 8.
В моем случае новые регистры сведений были добавлены в расширение конфигурации с назначением "дополнение". Они были выведены платформой в управляемый интерфейс, но не были доступны при попытке выбрать их в консоли запросов.
На практике по факту получается ситуация, что объекты конфигурации, добавленные в расширении с назначением "доработка" не будут доступны в основной конфигурации. В основной конфигурации становятся доступными объекты из расширений с назначением "Адаптация". Конечно, логически хочется, чтобы работало как дополнение, т.к. часто с этого и начинается создаваться расширение для реализации нужд клиента для доработки дополнительного функционала в базе. Но теория о назначениях расширений четко дает понять, что для новых объектов нужна адаптация.
Это же касается того случая, когда добавляется новый реквизит в расширении для документа, справочника или регистра. Чтобы потом можно было запросами обращаться к добавленным реквизитам в расширении - оно так же должно быть "Адаптацией":
Так же из теории по данным из книги "Разработка в системе 1С:Предприятие 8.3". Издание 2. Е. Ю. Хрусталева. Назначение для расширения "Исправление" используется для исправления ошибок в конфигурации. Оно первым по очередности из всех расширений применяется к конфигурации. Потом применяются расширения с назначением "Адаптация". Такие расширения содержат доработки конфигурации при внедрении под конкретные задачи клиента. И последними применяются расширения с назначением "Дополнение". Оно может содержать различные дополнительные сервисы для конфигурации (например, набор дополнительных отчетов, обработок).
Так же при работе с расширениями стоит внимательно относится к тому, стоит ли объединять данные одного расширения с данным другого расширения, если они имеют различные назначения. С пример, к чему это привело, можно ознакомиться в описании ошибки "Ошибка при выполнении операции с информационной базой Запись не найдена в менеджере имен базы данных"
Читайте также: